문제

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