Создание специального квалификатора типа C++C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Создание специального квалификатора типа C++

Сообщение Anonymous »

Я хочу иметь собственный квалификатор типа под названием «интеграция». Спецификатор типа, который действует как const, в том смысле, что он не делает ничего, кроме добавления ограничений. Полезные ограничения, позволяющие избежать конкретных ошибок. На самом деле это может быть что угодно: макрос, шаблон, класс.
Единственное, что должна иметь интеграция, это следующие возможности:
  • Не меняет операторы базового типа вообще, за исключением того, что они принимают версию интеграции и возвращают версию интеграции.
  • Если возможно, удалено из окончательной версии .exe.
Должна выдаваться ошибка компиляции, если:
  • Попытка установить интеграционную переменную с неинтегрируемой переменной
  • Попытка создать или установить неинтегрируемую переменную с помощью интеграционной переменной
  • Попытка создать или установить интеграционную переменную в неинтеграционной функции
  • Попытка передать переменную интегрирования в качестве аргумента неинтегрирующей функции
  • Попытка вызова функции интеграции в неинтеграционной функции
Первые два требования к ошибке компиляции: довольно легко создать: (хотя для этого необходимо переделать каждый оператор)
https://onlinegdb.com/l9xEe4o_r
Требования к функции кажется невозможным, очевидно, я мог бы иметь функцию проверки контекста, но эту проверку нужно добавить вручную, вместо того, чтобы компилятор понял, что что-то пропущено. Может быть, это возможно с помощью макросов? Хотя понятия не имею.

Подробнее здесь: https://stackoverflow.com/questions/791 ... -qualifier
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»