我有一些內聯函數包含在頭文件中的命名空間內,目前還沒有將它們移動到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
可用於包括Foo.h
任何CPP文件?有沒有辦法做到這一點,而不創建一個實施cpp文件?
這也是會議助推使用。只要你告訴每個人簡單的說,「永遠不要輸入詳細的命名空間」,這很好。 – GManNickG 2010-01-17 19:09:12