Question

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

Était-ce utile?

La solution

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.

Autres conseils

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top