Pregunta

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

¿Fue útil?

Solución

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.

Otros consejos

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top