Скрытие приватных констант во встроенном заголовке пространства имен

У меня есть некоторые встроенные функции, содержащиеся в пространстве имен в заголовочном файле, и в настоящее время я не могу переместить их в файл cpp. Некоторые из этих встроенных функций используют магические константы, например:

// Foo.h
namespace Foo
{
    const int BAR = 1234;

    inline void someFunc()
    {
        // Do something with BAR
    }
}

Тем не менее, я хочу сделать эти магические константы приватными - есть идеи как? Моей первой мыслью было использовать анонимное пространство имен таким образом:

// Foo.h
namespace Foo
{
    namespace
    {
        // 'private' constants here
        const int BAR = 1234;
    }

    inline void someFunc()
    {
        // Do something with BAR
    }
}

Тем не менее, это не работает иFoo::BAR доступен для любого файла cpp, который включаетFoo.h? Есть ли способ сделать это без создания файла cpp реализации?

Ответы на вопрос(3)

Ваш ответ на вопрос