我想寫這將使用外部工具命名空間探測
使圖書館更自然的使用日誌庫,我想能夠檢測在使用COUT的命名空間。
較具體來說結果應該這樣來使用
namespace A
{
void foo()
{
cout << "Something went very wrong" << endl;
}
}
namespace B
{
void bar()
{
cout << "C should equal 3" << endl;
}
}
int main()
{
B::bar();
A::foo();
}
,並輸出結果應該是這樣的
MODULE::B : C should equal 3
MODULE::A : Something went very wrong
我已經使用了std::streambuf
某些關鍵字添加到COUT的輸出,所有我需要能夠做的是指定在哪個命名空間中使用哪個streambuf。
我該如何做到這一點?
另外,我正在製作的庫將被集成到一個項目中,該項目具有多個使用using namespace
聲明的命名空間。我需要一個解決方案,不需要刪除這些聲明。
EDIT1:我不在乎具有由命名空間相關聯,其字符串或將對象添加到任何使用的命名空間(當然除了std
)
編譯器不是已經告訴過你'A :: bar()'和'B :: foo()'有問題嗎? – 2013-04-09 12:38:27
可能的重複 - http://stackoverflow.com/q/10657711/2065121 – 2013-04-09 12:39:02
@AndyProwl這是一個錯字,感謝您注意它 – tiridactil 2013-04-09 12:43:20