Hi,
N3515 uses the following syntax to change the return type and to
delete some non-member operator
using energy = protected double {
energy operator+ (energy , energy) = default;
energy& operator*=(energy&, double) = default;
energy operator* (energy , energy) = delete;
energy operator* (energy , double) = default;
energy operator* (double , energy) = default;
};
How the compiler would make the difference between member and
non-member functions?
BTW,
energy& operator*=(energy&, double) = default;
should be
energy& operator*=(double) = default;
As operator*= can be overloaded only inside a class.
I see thatsome parts have been removed from the previous version, as
". How shall OT’s unary type traits be defined?
Proposed answer: for each category and property defined by TR1,
is_category(OT) ==
is_category(UT) shall be true, and
has_property(OT) == has_property(UT) shall also be true"
substitutability and casts. There were some opposition to these
parts from the comitte? Could you explain why you removed them?
Best,
Vicente