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

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

Сообщение Anonymous »

Я хочу иметь специальный квалификатор/описатель функции на уровне компиляции "intg", который будет работать так же, как const или noException в C++: он выдает автоматические ошибки прекомпиляции/время компиляции при нарушении двух правил: >
  • Функция, отличная от «intg», не может вызывать функции «intg». (Точно так же, как мы не можем вызывать неконстантные функции в константных функциях)
  • Переменные «intg» можно изменять только в функциях «intg» (переменные intg действуют как константы внутри других функций)
Этот квалификатор типа не должен изменять результат компиляции , просто выступаю в качестве дополнительного барьера безопасности.
Как бы я это сделал это на 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

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