我想使用现代版本的GCC和MSVC附带的TR1库,但有一些细微的差别:在GCC中,我不得不说
#include <tr1/memory>
std::tr1::shared_ptr<int> X;
Run Code Online (Sandbox Code Playgroud)
而在MSVC我不得不说
#include <memory>
std::shared_ptr<int> X;
Run Code Online (Sandbox Code Playgroud)
我有两个问题:1)MSVC是否自动在C++ 0x模式下运行(相当于GCC的std = c ++ 0x),或者默认情况下它是否也在C++ 98/03模式下运行?2)如何统一包含和命名空间?我正在考虑"INCLUDE_TR1(内存)"之类的预处理器宏或类似的东西.
为了澄清,我想使用传统的标准C++ 98/03; 不是 C++ 0x(否则没有问题).
对于任何建议我都非常感激!