sando as bibliotecas TR1 no GCC e no MSVC

Gostaria de usar as bibliotecas TR1 fornecidas com versões modernas do GCC e MSVC, mas há diferenças sutis: no GCC, devo dizer

#include <tr1/memory>
std::tr1::shared_ptr<int> X;

enquanto estiver no MSVC, tenho que dizer

#include <memory>
std::shared_ptr<int> X;

Tenho duas perguntas: 1) O MSVC opera automaticamente no modo C ++ 0x (equivalente ao std = c ++ 0x do GCC) ou também funciona no modo C ++ 98/03 por padrão? 2) Como posso unificar os espaços de nomes e inclusões? Eu estava pensando em uma macro de pré-processador do tipo "INCLUDE_TR1 (memória)" ou algo assim.

Para esclarecer, quero usar o padrão C ++ 98/03 tradicional;nã C ++ 0x (caso contrário, não haveria problema

Ficaria muito grato por todas as sugestões!

questionAnswers(4)

yourAnswerToTheQuestion