Cub*_*bbi 6 c++ operator-overloading
鉴于前缀一元运算符可以" 由一个没有参数的非静态成员函数或一个参数的非成员函数实现 "(§13.5.1[over.unary]/1),除了通常之外还有区别吗封装/代码重用设计原理适用于任何成员/非成员函数选择?
对于二元运算符,存在语义差异,因为非成员允许对其左侧操作数进行隐式转换.对于一元运算符似乎没有类似的东西,但标准将std::complex一元否定运算符定义为非成员(第26.4.6节[complex.ops]),而一元std::valarray和std::duration一元否定运算符是成员(§26.6.2.6[valarray.unary],§20.11.5.3[time.duration.arithmetic]).有细微差别吗?