سؤال

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

هل كانت مفيدة؟

المحلول

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.

نصائح أخرى

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top