Я хотел бы использовать библиотеки TR1, которые поставляются с современными версиями GCC и MSVC, но есть небольшие различия: в GCC я должен сказать
#include <tr1/memory>
std::tr1::shared_ptr<int> X;
в MSVC я должен сказать
#include <memory>
std::shared_ptr<int> X;
У меня есть два вопроса: 1) MSVC автоматически работает в режиме C ++ 0x (эквивалентно std = c ++ 0x в GCC) или по умолчанию работает в режиме C ++ 98/03? 2) Как мне объединить пространства включений и имен? Я думал о макросе препроцессора типа "INCLUDE_TR1 (memory)" или о чем-то в этом роде.
Чтобы уточнить, я хочу использовать традиционный, стандартный C ++ 98/03; не C ++ 0x (иначе проблем не было бы).
Буду очень признателен за любые предложения!