我想使用现代版本的 GCC 和 MSVC 附带的 TR1 库,但存在细微差别:在 GCC 中,我不得不说
#include <tr1/memory>
std::tr1::shared_ptr<int> X;
在 MSVC 中我不得不说
#include <memory>
std::shared_ptr<int> X;
我有两个问题:1)MSVC 是自动在 C++0x 模式下运行(相当于 GCC 的 std=c++0x),还是默认在 C++98/03 模式下运行?2)如何统一包含和命名空间?我正在考虑“INCLUDE_TR1(内存)”之类的预处理器宏或类似的东西。
澄清一下,我想使用传统的标准 C++98/03;不是C++0x(否则不会有问题)。
我将不胜感激任何建议!