我的类有一个重载operator&
,如果参数是指针,我会在其中执行静态断言。
class test {
public:
template<typename T>
friend inline test& operator&(test& so, T const& t) {
std::cout << "is_pointer : " << std::is_pointer<T>::value << std::endl;
static_assert(std::is_pointer<T>::value, "no operator overloaded for pointers.");
// some stuff
}
};
如果我使用此运算符,即使类型绝对不是指针,我也总是会得到断言。std::cout << "is_pointer : " << std::is_pointer<T>::value << std::endl;
正在打印零...
int main() {
test t;
t & 123;
return 0;
}
例子。