首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c++中具有特殊字符的自定义运算符

c++中具有特殊字符的自定义运算符
EN

Stack Overflow用户
提问于 2016-03-20 15:10:00
回答 1查看 1.3K关注 0票数 2

我知道自定义操作符不受c++的官方支持。我已经知道可以定义自定义操作符了。但是,由于这似乎不适用于包含特殊字符的自定义运算符,我想知道在<-中创建具有特殊字符(如##)的自定义运算符是否有任何安全的方法或黑客。

EN

回答 1

Stack Overflow用户

发布于 2016-03-20 15:22:01

代码语言:javascript
复制
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';
}

实例化

一般情况下,不。我只需使用其他操作符就可以破解这个特定的<-示例。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36115471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档