tengo código C++ 03 que tiene este aspecto:Importación de std :: tr1 en std: ¿es legal? ¿Mejora la portabilidad?
#include <boost/tr1/unordered_map.hpp>
...
std::tr1::unordered_map<std::string, int> mystuff;
...
me empecé a preguntar que iba a sufrir más tarde si/cuando convierto mi código a 11 C++, que (supongo) doesn' t tiene std::tr1::unordered_map
pero tiene std::unordered_map
en su lugar. Así me ocurrió con este truco:
namespace std
{
using namespace ::std::tr1;
}
...
std::unordered_map<std::string, int> mystuff; // no tr1 now!
...
¿Es legal (está prohibida la importación de tal cosas en std
)? ¿Hará más fácil el puerto/interoperar con el código C++ 11?
Mi compilador (VS2010) todavía entiende 'std :: tr1' aunque ahora todo también existe en' std'. – Benj