【发布时间】:2012-12-31 04:54:01
【问题描述】:
一元 + 运算符是为了与一元 - 运算符对称而包含的,还是在 C++ 代码中找到了一些实际用途?
在这里搜索,我遇到了What is the purpose of the unary '+' operator in C?,但那里唯一有用的场景涉及预处理器宏。这些很高兴知道,但它们似乎是一些不太常见的情况,并且涉及宏。有没有涉及更常见的 C++ 代码的用例?
【问题讨论】:
-
数学?不,但它可能会在使用类的运算符重载中找到用途。
-
@ValekHalfHeart:是的,但是除了
return *this;之外的任何重载都将被视为滥用。 -
@rodrigo 但仍然会对
this产生副作用,不是吗?如果这是好的或有用的 DSL 设计是另一个问题。 -
@ArneMertz:尽管 Boost.Spirit 很好,但它肯定是一种语言滥用。并不是说它有任何优点,但是运算符重载并不是为了做这种事情而设计的,因为当您意识到您无法更改运算符优先级并且您对旧运算符的花哨的新含义有点松散时,这一点很明显(@ 987654326@,有人吗?)。
-
@ApproachingDarknessFish:它可能会在类的运算符重载中找到用途。你能举个例子来解释一下吗?
标签: c++ operators unary-operator