Информация об изменениях

Сообщение вопросы по chrono::duration от 10.08.2019 9:47

Изменено 12.08.2019 7:49 sergii.p

вопросы по chrono::duration
накопилось несколько вопросов по реализации chrono::duration. Может кто видел в стандарте, или знает почему именно так?
  • почему дефолтный конструктор не инициализирует count нулём? Пишешь std::chrono::seconds s{} и получаешь UB, потому как не понятно что вернёт s.count(). Такая реализация в gcc и msvc — не похоже на ошибку. Это притом, что есть функция zero(), которую можно вполне использовать для инициализации. И даже если не хочется инициализировать нулём, почему просто не убрать этот небезопасный конструктор?
  • почему не переопределена функция хеширования? То есть не могу написать std::unordered_set<std::chrono::seconds>.
вопросы по chrono::duration
накопилось несколько вопросов по реализации chrono::duration. Может кто видел в стандарте, или знает почему именно так?
  • почему дефолтный конструктор не инициализирует count нулём? Пишешь std::chrono::seconds s и получаешь UB, потому как не понятно что вернёт s.count(). Такая реализация в gcc и msvc — не похоже на ошибку. Это притом, что есть функция zero(), которую можно вполне использовать для инициализации. И даже если не хочется инициализировать нулём, почему просто не убрать этот небезопасный конструктор?
  • почему не переопределена функция хеширования? То есть не могу написать std::unordered_set<std::chrono::seconds>.