id summary reporter owner description type status milestone component version severity resolution keywords cc 2938 [operators] BOOST_OPERATOR2_LEFT prevents builtin types from being used as first template parameter Arne Mertz Daniel Frey "Minimal code example: #include class X : public boost::subtractable2_left { public: friend double& operator-= (double& lhs, X const&) { return lhs; } operator double() const {return 1.0;} }; int main() { X x; double d = x - 0.5; //ERROR: left operand of op-= has to be l-value } #defines BOOST_NO_NRVO and BOOST_FORCE_SYMMETRIC_OPERATORS are not set, so the short implementation in line 240 (as of Sat April 4th, 2009) is used: return T( lhs ) -= rhs; on msvc 2008 express this does not work with T being a builtin type." Bugs closed Boost 1.39.0 operators Boost 1.38.0 Problem invalid