Frage

In C or C++, is it possible to declare a const with global scope, but the definition is set inside a function?

War es hilfreich?

Lösung

What about doing something like (live sample)

const int& MyConstValue(int x) {
    static const int myConstValue = x;
    return myConstValue;
}

int main() {
    std::cout << MyConstValue(5) << std::endl; // This is the 1st call and "wins"
    std::cout << MyConstValue(8) << std::endl;

    return 0;
}

Output is

5
5

At least for this is even guaranteed to be thread safe.

Andere Tipps

No, that is impossible. The declaration must be in the same scope as the definition. Otherwise, it's not the same name.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top