2012年(158)
分类: C/C++
2012-11-20 11:11:41
网友评论2012-11-20 11:12:39
anonymous
用VC7试了一下
namespace test1{
using namespace test;
template<>
void foo<int>( void ) {
}
}
会给error不等同你给的例子, 全局空间和名字空间好像并没有一事同人的处理.
对于为什么特化就不能这样写, 我自己猜想可能是这样:
因为namespace是属于mangling的一部分, 而当编绎器遇到特化调用时需要在当前指的名域表内找一个对应的原型mangling的名字,.
如:template<typename T> void foo();可能是fo