我用模板和专业编写了一个简单的代码:
#includetemplate int HelloFunction(const T& a) { std::cout << "Hello: " << a << std::endl; return 0; } template <> int HelloFunction(const char* & a) { std::cout << "Hello: " << a << std::endl; return 0; } int main() { HelloFunction(1); HelloFunction("char"); return 0; }
我认为char*的专业化是正确的,但是g ++报告:
D:\work\test\HelloCpp\main.cpp:11:5: error: template-id 'HelloFunction<>' for 'int HelloFunction(const char*&)' does not match any template declaration
请帮我找到这个bug.