Was the unary +
operator only included for symmetry with the unary -
operator, or does it find some practical use in C++ code?
Searching h
Since for arithmetic variables operator+ generates a new value, I use it in general to generate value copies of reference-like (proxy) types.
template class ref_of{
T* impl_; // or a more complicated implementation
public:
T operator+() const{return *impl_;}
operator T&()&{return *impl_;}
}
...
ref_of r = t;
auto s = +r; // this forces a copy
Another option is to use operator*
but then the ref_of
can be confused with a pointer-like object.