{"body":"namespace foo {\n\ntemplate<typename T>\nstruct Handle {\n  Handle(int a, T* t) : t(t) {}\n  T* t;\n};\n\ntemplate<typename T>\nfoo::Handle<T> CreateHandle(int a, T* t) {\n  return foo::Handle<T>(a, t);\n}\n\ntemplate<typename T>\nstruct Wrappable {};\n\n}\n\nnamespace bar {\n\nstruct MyBar : public foo::Wrappable<MyBar> {\n  static foo::Handle<MyBar> Create(int a) {\n    return CreateHandle(a, new MyBar); // How does this call resolve?\n  }\n};\n\n}","name":"","extension":"","url":"https://www.irccloud.com/pastebin/ELYfqsZA","modified":1416940880,"id":"ELYfqsZA","size":428,"lines":27,"own_paste":false,"theme":"","date":1416940880}