<div dir="ltr"><div><div><div><div><div><div><br></div>Hi all,<br><br></div>This is with respect to the following TC. <br><br>struct S;<br><br>template <typename T><br>static bool fn (S *s)<br>{<br>  return typeid (*s) == typeid (T);<br>
}<br><br>struct S<br>{<br>};<br><br>bool x = fn<S> (__null);<br><br><br></div>The standard says:<br>If the type of the type-id is a class type or a reference to a class type, the class shall be completely-defined.<br>
<br><br></div>This "shall" is kind of confusing. Is this a valid TC. Is forward declaration allowed while using the typeid operator? <br><br></div><div>Any clarification on the same would be appreciated.<br><br>
</div>Thanks,<br></div>Rahul<br></div>