Как получить доступ к переменной в своём namespace

Рейтинг: 0Ответов: 1Опубликовано: 29.06.2023
// vars.cpp
namespace fo {
    int value = 10;
}


// u8.cpp
#include <iostream>

extern int fo::value;

int main() {
    std::cout << fo::value << std::endl;
    return 0;
}

Программа не компилируется, ошибка:

..\src\u8.cpp:4:12: error: 'fo' has not been declared

Если убрать namespace, то всё работает.

Ответы

▲ 3Принят

Например, так:

namespace fo
{
    extern int value;
}

int main() {
    std::cout << fo::value << std::endl;
    return 0;
}

Компилятор же не знает, что такое fo...