我知道自定义操作符不受c++的官方支持。我已经知道这可以定义自定义操作符了。但是,由于这似乎不适用于包含特殊字符的自定义运算符,我想知道在<-中创建具有特殊字符(如#或#)的自定义运算符是否有任何安全的方法或黑客。
发布于 2016-03-20 15:22:01
struct A {
int x;
};
template<class T>
struct dashed {
T t;
template<class U>
operator U()&&{ return -std::move(t); }
};
template<class T>
dashed<T> operator-(T&& t){return {{std::forward<T>(t)}};}
template<class T>
A& operator<( A& lhs, dashed<T> rhs ) {
lhs.x = rhs.t.x;
return lhs;
}
int main() {
A a{1}, b{2};
std::cout << a.x << '\n';
a <- b;
std::cout << a.x << '\n';
}实例化。
一般情况下,不。我只需使用其他操作符就可以破解这个特定的<-示例。
https://stackoverflow.com/questions/36115471
复制相似问题