1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include <iostream> namespace foo { struct Foo {}; template <typename T> void func(T t) { std::cout << "namespace function\n"; } } template <typename T> void func(T t) { std::cout << "global function\n"; } int main() { foo::Foo f; func(f); } |
I2luY2x1ZGUgPGlvc3RyZWFtPgoKbmFtZXNwYWNlIGZvbyB7CiAgICBzdHJ1Y3QgRm9vIHt9OwogICAgCiAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KICAgIHZvaWQgZnVuYyhUIHQpIHsKICAgICAgICBzdGQ6OmNvdXQgPDwgIm5hbWVzcGFjZSBmdW5jdGlvblxuIjsKICAgIH0KfQoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CnZvaWQgZnVuYyhUIHQpIHsKICAgIHN0ZDo6Y291dCA8PCAiZ2xvYmFsIGZ1bmN0aW9uXG4iOwp9CgppbnQgbWFpbigpIHsKICAgIGZvbzo6Rm9vIGY7CiAgICBmdW5jKGYpOwp9Cg==
prog.cpp: In function ‘int main()’: prog.cpp:19: error: call of overloaded ‘func(foo::Foo&)’ is ambiguous prog.cpp:13: note: candidates are: void func(T) [with T = foo::Foo] prog.cpp:7: note: void foo::func(T) [with T = foo::Foo]
-
result: Compilation error (maybe you wish to see an example for C++ 4.7.2)


