Здравствуйте, netch80, Вы писали:
N>Тьюринг-полнота ни при чём.
Да неужели. Когда сравнивают два языка, один из которых хорошо подходит для некоторой фичи, а второй — плохо, а потом кто-то говорит, что оба они, В ПРИНЦИПЕ, одно и то же, то этот "принцип" есть принцип Тьюринга и ничто другое.
N>Шаблон вида
N>N>template <int _T_min, int _T_max>
N>RangedInteger& operator=(int new_value) {
N> if (new_value < _T_min || new_value > _T_max) { throw range_error(); }
N> mValue = new_value;
N> return *this;
N>}
N>
И к чему тут этот ужас? Думаешь, никто не знает, как это программировать при помощи сиплюсплюсных шаблонов?
Есть языки, где ты можешь САМ сделать синтаксис вида a : int 1..100 (или более интуитивный) с генерацией алиаса на тип с чекерами, даже если bounds на уровне языка никак не представлены. Я удивился, почему было не предложить открыть для себя именно такой язык. Почему C++, где всё подтыкают шаблонами (за неимением синтаксических макросов). Будем по третьему разу мусолить, или хватит уже, наконец?