Здравствуйте, _NN_, Вы писали:
_NN>При чём здесь перегрузки ?
_NN>Для каждого выражения просто задаём желаемое поведение.
_NN>А в случае переполнения скажем вызывать std::integer_overflow, который можно переопределить как хотим.
_NN>К примеру C#:
В этом варианте тоже есть проблемы. Знак + для невстроенных типов превращается в op_Add, так?
Но она одна для checked и unchecked контекста. А почему? Получается, для таких типов надо указывать режим в общих свойствах типов, или в типах операций? Неаккуратненько
Уточню: я категорически "за" разделение checked/unchecked; это уже колоссальный прогресс даже в варианте, как сейчас.
Но и тут есть куда двигаться дальше.