<div dir="ltr">I'm not sure if this has been reported, but I have come across an issue with trying to view data that is within a union Xcode's debug view, specifically when the data type is templated. Please consider the following:<div>
<br></div><div><div>template <typename T></div><div>struct vec2 {</div><div><span class="" style="white-space:pre">     </span>union { T x, r; };</div><div><span class="" style="white-space:pre"> </span>union { T y, g; };</div>
<div>};</div><div><br></div><div>int main()</div><div>{</div><div><span style="white-space:pre">  </span>vec2<float> foo = { 2.0f, 3.0f };</div><div>  return 0;</div><div>}</div></div><div><br></div><div>If I place a breakpoint on the return statement and exam foo, I see two tabs with no name. Clicking on either tab shows an array of 'y = 3, g = 3', while there is no sign of x (or r). Something is going wrong here.</div>
<div><br></div><div>However if I remote the templating:</div><div><br></div><div><div>struct vec2 {</div><div><span class="" style="white-space:pre"> </span>union { float x, r; };</div><div><span class="" style="white-space:pre">     </span>union { float y, g; };</div>
<div>};</div><div><br></div><div>int main()</div><div>{</div><div><span style="white-space:pre">  </span>vec2 foo = { 2.0f, 3.0f };</div><div>  return 0;</div><div>}</div></div><div><br></div><div>and example the data in the same manner, I see that one tab has an array of 'x = 2, r = 2', and the other is 'y = 3, g = 3'.  Is this a known issue? I discovered this while trying to make use of the popular glm math library (<a href="http://glm.g-truc.net/">http://glm.g-truc.net/</a>), which uses unions in this manner to follow the GLSL types spec.</div>
<div><br></div><div>As an aside, I think the display of unions in general (even without the templates) is not ideal, at first glance it is difficult to make out what the data is at all, given that it is a) hidden underneath tabs with no names and b) duplicated. Has there been any thought towards how to better represent this data in the debugger?</div>
<div><br></div><div>Thanks,</div><div>Rich</div><div><br></div></div>