昨天晚上写代码的时候遇到了这样一个问题:
如此代码本以为编译应该没有什么问题,不过现实却是残酷的,一个compiler error毫不犹豫的出现在了输出信息框内
(本人是在VS2008下编译):
1>e:/work/test/test_solution001/test_2010_06_08_template/main.cpp(11) : error C2912: 显式专用化;“const char *debugger::EnumString<int>(const int)”不是函数模板的专用化
这是怎么一个情况?按照道理说我使用了using namespace util;语句已经使得util命名空间里面的东西暴露在debugger命名空间里面了?为什么编译器还是找不到。
经过我的再次测试我发现只要将特化函数与其对应的模板函数放到同一个命名