Erstellen eines benutzerdefinierten C++-TypqualifizierersC++

Programme in C++. Entwicklerforum
Anonymous
 Erstellen eines benutzerdefinierten C++-Typqualifizierers

Post by Anonymous »

Ich möchte einen benutzerdefinierten Typqualifizierer/Funktionsspezifizierer auf Kompilierungsebene „intg“ haben, der genauso funktioniert wie const oder noexclusive in C++: Es gibt automatische Vorkompilierungs-/Kompilierungszeitfehler, wenn seine beiden Regeln verletzt werden:
  • Eine „intg“-Funktion kann keine Nicht-„intg“-Funktionen aufrufen. (Dasselbe gilt, wenn wir nicht-konstante Funktionen nicht in konstanten Funktionen aufrufen können)
  • „intg“-Variablen können nur in „intg“-Funktionen geändert werden („intg“-Variablen fungieren als Konstante, wenn sie sich in anderen Funktionen befinden)
Dieser Typqualifizierer sollte das Kompilierungsergebnis nicht ändern , dienen nur als zusätzliche Sicherheitsbarriere.
Wie würde ich vorgehen? Tun Sie dies in C++ oder fügen Sie es einem Compiler hinzu?
Beispiel:

Code: Select all

    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!
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post