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

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

Сообщение Anonymous »

Я хочу иметь специальный квалификатор/описатель функции на уровне компиляции "intg", который будет работать так же, как const или noException в C++: он выдает автоматические ошибки прекомпиляции/время компиляции при нарушении двух правил: >
  • Функция, отличная от «intg», не может вызывать функции «intg». (Точно так же, как мы не можем вызывать неконстантные функции в константных функциях)
  • Переменные «intg» можно изменять только в функциях «intg» (переменные intg действуют как константы внутри других функций)
Этот квалификатор типа не должен изменять результат компиляции , просто выступаю в качестве дополнительного барьера безопасности.
Как бы я это сделал это в C++ или добавить его в компилятор?
ПРИМЕЧАНИЕ:
Я также готов редактировать компилятор, если у C++ нет собственных решений для этого. это
Пример:
intg float a = 0;
float b = 0;

void DoStuff() intg
{
// Doing stuff...
}

void Foo() intg
{
DoStuff() // Allowed!
DoThings() // Allowed!

a = 2; // Allowed!
b = 2; // Allowed!

// And other stuff...
}

void DoThings()
{
// Doing thing...
}

void Bar()
{
DoStuff() // Compilation error!
DoThings() // Allowed!

a = 2; // Compilation error!
b = 2; // Allowed!
}


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

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

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

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

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

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