Я был ведущим автором предложения по хронологии. Подпространство имен не было моим первым выбором только из-за многословия. Я ловлю себя на том, что пишу using namespace std::chrono
почти каждый раз, когда использую это средство.
Однако это было очень спорное предложение. И многие люди, в том числе некоторые из моих соавторов, считали подпространство имен уместным. Я не возражал сильно против подпространства имен, потому что мы были в ситуации необходимости идти на компромисс или оказаться в таком же тупике, как Конгресс США. :-) Результатом такого тупика, вероятно, был бы timespec
C11.
Boost экспериментировал с подпространствами имен гораздо более агрессивно, чем std, и один из ключевых авторов этой статьи также является автором библиотеки даты и времени boost, на основе которой развился chrono. Так что это, очевидно, будет иметь сильное влияние в направлении использования подпространства имен.
Забегая вперед, вполне возможно, что подпространство имен станет абсолютно необходимым. Представьте, если мы добавим календарные службы, которые включают аббревиатуру декабря: dec
. Это будет напрямую противоречить:
ios_base& dec(ios_base& str);
в <ios>
. В общем, я, вероятно, был не прав, не настаивая на подпространстве имен с самого начала. :-) В будущем будет интересно посмотреть, где комитет создает и не создает подпространства имен.
Обновление (6 лет спустя...)
Правда всегда удивительнее вымысла...
Поэтому я действительно предложил std::chrono::dec
в качестве сокращения для December
, думая, что это будет безопасно из-за вложенного пространства имен chrono
. Но нет, комитет решил переименовать std::chrono::dec
в std::chrono::December
в процессе стандартизации из-за потенциальных конфликтов.
Так стоят ли вложенные пространства имен?
Я не знаю. Это обновление является точкой данных, а не мнением.
person
Howard Hinnant
schedule
18.11.2012
namespace sc = std::chrono;
- person KitsuneYMG   schedule 19.11.2012