我有如下所示的 C++03 代码:
#include <boost/tr1/unordered_map.hpp>
...
std::tr1::unordered_map<std::string, int> mystuff;
...
我开始怀疑如果/当我将我的代码转换为 C++11 时,我以后会受苦,(我猜)C++11 没有,std::tr1::unordered_map
而是有std::unordered_map
。所以我想出了以下技巧:
namespace std
{
using namespace ::std::tr1;
}
...
std::unordered_map<std::string, int> mystuff; // no tr1 now!
...
合法吗(也许禁止进口东西std
)?它会让移植/与 C++11 代码互操作变得更容易吗?