# Pastebin ELYfqsZA namespace foo { template struct Handle { Handle(int a, T* t) : t(t) {} T* t; }; template foo::Handle CreateHandle(int a, T* t) { return foo::Handle(a, t); } template struct Wrappable {}; } namespace bar { struct MyBar : public foo::Wrappable { static foo::Handle Create(int a) { return CreateHandle(a, new MyBar); // How does this call resolve? } }; }