У меня есть код C++03, который выглядит так:
#include <boost/tr1/unordered_map.hpp>
...
std::tr1::unordered_map<std::string, int> mystuff;
...
Я начал задаваться вопросом, что я буду страдать позже, если/когда я конвертирую свой код на С++ 11, который (я думаю) не имеет std::tr1::unordered_map
, но вместо этого имеет std::unordered_map
. Итак, я придумал следующий хак:
namespace std
{
using namespace ::std::tr1;
}
...
std::unordered_map<std::string, int> mystuff; // no tr1 now!
...
Это законно (может быть, импортировать что-то в std
запрещено)? Упростит ли это перенос/взаимодействие с кодом C++11?