The following code generates a compile error in Xcode:
template struct Foo { Foo(T Value) { } }; int main() { Foo MyFoo(123);
It's not a bug, it's non-existing feature. You have to fully specify class/structure template arguments during instantiation, always, the types are not inferred as they can be for function templates.