У меня есть код С++ 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
запрещен)? Будет ли проще переносить/взаимодействовать с кодом С++ 11?