ana*_*lyg 14 c++ compatibility tr1
我有C++ 03代码,如下所示:
#include <boost/tr1/unordered_map.hpp>
...
std::tr1::unordered_map<std::string, int> mystuff;
...
Run Code Online (Sandbox Code Playgroud)
我开始想知道如果/当我将我的代码转换为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!
...
Run Code Online (Sandbox Code Playgroud)
它是否合法(可能std是禁止进口的东西)?是否可以更容易地使用C++ 11代码进行端口/互操作?
::stdC++ 11中禁止导入内容17.6.4.2.1:
如果C++程序将声明或定义添加到命名空间
std或命名空间中的命名空间std,则除非另有说明,否则C++程序的行为是未定义的.
| 归档时间: |
|
| 查看次数: |
755 次 |
| 最近记录: |