我被模板和范围解析运算符困住了。我在文件中找到了这些行,我无法弄清楚为什么我们在模板函数调用前面使用 :: ,据我所知,当引用全局变量时,我们只能在变量前面使用 :: 。任何想法都会有帮助
#define CREATE_AND_DECODE_TYPE(Type, buffer, pType) \
::CreateAndDecodeType<Type>(buffer, pType, throwVarBindExceptions, static_cast<Type *>(NULL))
作用域解析运算符 ::(在开头)强制编译器从全局作用域中查找标识符,如果没有它,则将相对于当前作用域找到标识符。
namespace X
{
namespace std
{
template<typename T>
class vector {};
}
std::vector<int> x; // This is X::std::vector
::std::vector<int> y; // This is the std::vector you normally expect (from the STL)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)