[问题] 模板 特化 与 Compiler Error C2888

楼主: Caesar08 (Caesar)   2014-12-05 07:22:40
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++ 12
问题(Question):
我不想让别的file使用某file的specialization of class template
解法:
我想到的办法就是把template specialization放进unnamed namespace
但是编译器会有symbol cannot be defined within namespace 'anonymous-namespace'
的错误讯息
我有测过,如果不放进unnamed namespace,在别的file进行specialization会发生什么
事情
结果是会导致执行的结果不固定
只要将HeaderImpl.cpp重新编译,并将main.cpp的15或16行其中一个注解,或都不注解
重新编译后会有神奇的现象,没有的话就多试几次
这样我也很难确保,不放进unnamed namespace能不能达到我的效果,难道我现在该放弃
我的目的吗?
底下是测试code
程式码(Code):(请善用置底文网页, 记得排版)
http://codepad.org/qEPWEHt5 //main.cpp
http://codepad.org/hMuDzNPG //Header.h
http://codepad.org/jN9Exbya //Source.cpp
http://codepad.org/Q9LHrIbc //HeaderImpl.cpp

Links booklink

Contact Us: admin [ a t ] ucptt.com