Wie kann man feststellen, ob der Ausdruck zur Kompilierungszeit oder zur Laufzeit ausgewertet wird?C++

Programme in C++. Entwicklerforum
Anonymous
 Wie kann man feststellen, ob der Ausdruck zur Kompilierungszeit oder zur Laufzeit ausgewertet wird?

Post by Anonymous »

Ich habe ein ziemlich großes Kartenobjekt und möchte eine separate Liste mit sortierten Schlüsseln haben. Dies wird in vielen anderen Quelldateien meines Projekts verwendet.
Die Frage ist, woher ich weiß, wann eine Deklaration/Definition ein Job zur Kompilierungszeit ist. Wo sollte ich suchen, um herauszufinden, ob dies der Fall ist? Ich meine, wie kann ich das erkennen?
Ist die Liste in der Quelldatei im folgenden Beispiel ein Job zur Kompilierungszeit oder geschieht sie zur Laufzeit?
Gibt es außerdem eine Möglichkeit, den Sortiervorgang zur Kompilierungszeit durchzuführen?

Code: Select all

// global.h
extern QMap G_MAP;
extern QList G_MAP_SKEYS_SORTED;

// global.cpp
QMap G_MAP = { /* some hand filled (static) data */ };
QList G_MAP_SKEYS_SORTED = G_MAP.keys();

// main.cpp
int main() {
// Somewhere I do the sort
std::sort(G_ListRegistersSorted.begin(), G_ListRegistersSorted.end());
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post