, , , , , constrained<T>, .
(=, + =, - =, * =,/=,% =, & =, | =, ^ =, <= lt; =, → = pre post ++, pre post -) T:
template<typename T>
class constrained {
...
public:
operator T() const {
return value;
}
};
, , constrained<T> (, x + y, x int y constrained<int>), rvalue T, . , - constrained<T> - , T constrained<T>, constrained<T> .