jjzjj

FooValueT

全部标签

c++ - 同级友元运算符似乎不参与重载决议

在编写使类能够根据模板参数为operator+提供重载的CRTP模板时,我发现类内友元运算符似乎不参与重载决议,如果没有的话arguments是它在其中定义的类的类型。归结:enumclassFooValueT{zero,one,two};classFoo{FooValueTval_;public:Foo(FooValueTx):val_(x){};Foo&operator+=(Fooother){val_=(FooValueT)((int)val_+(int)other.val_);return*this;}//overloadforFoo+Foo,FooValueT+FooandF