<div dir="ltr">Hey,<div><br></div><div>I've noticed that evaluating expressions involving templated classes seems to have some unexpected behavior.</div><div><br></div><div>I've created the following sample code to reproduce the issue: <br><div><br></div><div>template <typename T> class foo<br>{ <br>  uint32_t data;<br>};<br><br>foo<int> test;<br><br>int main() {<br>  foo<void> test2;<br>  return 0;<br>}<br></div></div><div><br></div><div>I've set a breakpoint on main and evaluated the following expressions:</div><div>(lldb) p sizeof(foo<void>)<br>(unsigned long) $0 = 4<br>(lldb) p sizeof(foo<int>)<br>error: implicit instantiation of undefined template 'foo<int>'<br>template is declared here<br></div><div><br></div><div>It seems like expression evaluation can only find the specialized templated classes that were used in the current scope. Running the same example using GDB works as expected (both expressions are evaluated correctly).</div><div><br></div><div>Is this a known issue?<br>Does anybody have any insight, or familiarity with expression evaluation that would be able to point me in the right direction?</div><div><br></div><div>Thanks,</div><div>Scott</div></div>