0
考慮以下C++ 11方案:使用命名空間標準,然後包括提升?
#include <stdhdr1>
#include <stdhdr2>
#include <stdhdr3>
using namespace std;
#include <boost1>
#include <boost2>
#include <boost3>
int main()
{
}
凡stdhdrn
是一個標準庫的頭,和boostn
是升壓報頭。
有沒有這種情況下,這不會編譯?
此外,如果在main中添加了一些額外的用戶代碼,是否會打開無法通過顯式限定含糊(或錯誤)實體來解決的std名稱空間導致的歧義(或其他錯誤)?
(例如,由於ADL的考慮開放STD命名空間或以其他方式?)
(換句話說,可以提高第一把手包含開放std名字空間後?)
顯然,它的確提出了一個問題:爲什麼不在boost包含之後放置'using namespace'呢? – nneonneo 2013-02-21 19:26:10
爲什麼不刪除'使用命名空間標準;'完全忘了它? – GManNickG 2013-02-21 19:26:16
簡單的答案,根本不用'命名空間'。 – 111111 2013-02-21 19:27:14