Добавьте свой собственный псевдоним к std::chrono
, внешний к std
:
namespace chrono = std::chrono;
И затем используйте chrono::milliseconds
.
Можно свернуть слои пространств имен, добавив псевдоним внутреннего пространства имен. Стандартная библиотека делает это:
namespace std {
namespace ranges::views { /* views stuff */ }
namespace views = ranges::views;
}
Так что std::ranges::views::filter
также может быть доступен как std::views::filter
.
Но здесь это не помогает, потому что milliseconds
- это тип, не пространство имен. Единственный способ свернуть содержимое пространства имен - использовать директиву using (или, что то же самое, целое множество объявлений using):
namespace std {
namespace chrono { /* chrono things */ }
using namespace chrono;
}
Что на самом деле не очень хорошая идея, потому что это может просто прервать поиск по имени для вещей - особенно если что-либо в std::chrono
названо так же, как что-то в std
. Это также полностью лишает смысла начинать с вложенного пространства имен.
Таким образом, эквивалентом псевдонима внутреннего пространства имен будет просто псевдоним внешнего пространства имен:
namespace std {
namespace chrono { /* chrono things */ }
}
namespace chrono = std::chrono;
И теперь вы пишете chrono::milliseconds
вместо std::chrono::milliseconds
, не нарушая ничего в любом из этих пространств имен.
В качестве альтернативы, если вы действительно хотите просто засунуть все в одно и то же пространство имен, сделайте это в другое:
namespace all {
using namespace std;
using namespace std::chrono;
}
Хотя, как я уже сказал, сомнительно.