{namespace}::{user_literal}

Yuri Pechatnov
Yuri Pechatnov

Пользовательские литералы лаконичны, но для удобного пользования требуют using namespace, что делать не очень хорошо, особенно в хедерах

Кажется, возможность писать std::3_sec могла бы немного улучшить ситуацию

NTime::2018_y, NTime::"2018.09.01"_date, NTime::"18:05:59"_hhmmss, NTime::17_min, NTime::"10:30"_mmss,  NData::0xA12BD023_bytes... да что угодно, так как явно указан неймспейс

0
рейтинг
4 комментария
yndx-antoshkka

Выглядит страшненько...

yndx-antoshkka
asschool

В этом случае можно даже разрешить пустые литералы NTime::"FOOBAR".
Аргумент против: в этом случае лучше вызывать конструктор или фабрику

asschool
Обновлено 
smertigdon

Логичнее ввести unusing namespace, но с введением модулей проблема должна в принципе пропасть, так что нет смысла ее чинить

smertigdon
Андрей Руссков

необязательно писать using namespace в шапке файла, можно указывать в начале функции, использующей литерал:

auto foo() {
   using namespace bar;
   return "abc"_def;
}

Ну или using bar::operator ""_def;

Андрей Руссков
Другие идеи
Группа создана, чтобы собирать предложения к стандарту C++, организовывать их внутренние обсуждения, помогать готовить их для отправки в комитет и защищать на общих собраниях в рабочей группе по С++ Международной организации по стандартизации (ISO).
Все предложения