title: struct initialization / assignment with braces
body: <p>I have defined a struct as follows:</p>
  
  <pre><code>struct float3 {
  float x; 
  float y;
  float z;
  
  float3 () : x(0), y(0), z(0) {}
  float3 (float a, float b, float c) : x(a), y(b), z(c) {}
  };
  </code></pre>
  
  <p>But i have trouble when it comes to understanding the different ways of initializing / assigning values to its members. For instance:</p>
  
  <pre><code>//Initialization
  float3 3Dvec = {1.0, 1.0, 1.0};
  float3 3Dvec2 {1.0, 1.0, 1.0};
  float3 3Dvec3 (1.0, 1.0, 1.0);
  
  //Assignment
  3Dvec = {2.0, 2.0, 2.0};
  3Dvec = float3 (2.0, 2.0, 2.0);
  </code></pre>
  
  <p>All of these options do work with -std=c++11. However on an older compiler with -std=c++0x braces initialization / assignment does not work. Is usign braces a bad practice? Which option is better to get used to?</p>