fork download
  1. import std.stdio;
  2.  
  3. struct A
  4. {
  5. private float[3] values;
  6.  
  7. ref float opIndex(size_t i) { return values[i]; }
  8.  
  9. }
  10.  
  11. struct S
  12. {
  13. A[3] values;
  14.  
  15. this(float)
  16. {
  17. for(int i = 0; i < 3; ++i)
  18. {
  19. values[i][0] = 0;
  20. values[i][1] = 0;
  21. values[i][2] = 0;
  22. }
  23.  
  24. values[0][0] = 1;
  25. values[1][1] = 2;
  26. values[2][2] = 3;
  27. }
  28.  
  29. ref A opIndex(size_t i) { return values[i]; }
  30. }
  31.  
  32. int main(string[] argv)
  33. {
  34.  
  35. enum v = S(1.0f);
  36.  
  37. for(int i = 0; i < 3; ++i)
  38. {
  39. for(int j = 0; j < 3; ++j)
  40. {
  41. write(v[i][j], " ");
  42. }
  43. write("\n");
  44. }
  45.  
  46. auto s = S(1.0f);
  47.  
  48. for(int i = 0; i < 3; ++i)
  49. {
  50. for(int j = 0; j < 3; ++j)
  51. {
  52. write(s[i][j], " ");
  53. }
  54. write("\n");
  55. }
  56.  
  57.  
  58. return 0;
  59. }
Success #stdin #stdout 0s 2648KB
stdin
Standard input is empty
stdout
1 2 3 
1 2 3 
1 2 3 
1 0 0 
0 2 0 
0 0 3