Closed apolukhin closed 3 years ago
yndx-antoshkka, 3 мая 2018, 14:44 Идея хорошая, но стоит ещё сделать и другие типы данных (физические типы данных, например скорость, ускорение, масса и т.д.)
Artalus, 3 мая 2018, 17:08 В качестве отправной точки можно также взять вот такое чудо.
neondev9, 3 мая 2018, 17:16 Artalus, отличная библиотека. Используется та же концепция, но объём впечатляет)
Сегодня еще искал в boost подобные штуки, нашёл boost::units, суть практически та же, но подход другой и внешний вид не впечатляет.
Andrey Davydov, 4 мая 2018, 20:48 Обновлено 3 мая 2018, 17:19
Это ж можно будет писать
std::byte buffer[4mb / 1byte];
вообще красота!
А 1byte / 1bit
предлагаете сделать платформозависимой константой?
И еще, если сама идея такой библиотеки продвинется до обсуждения в комитете, то по поводу именования суффиксов будут очень жаркие дебаты.
A, 6 июля 2018, 14:52 Есть красивая реализация https://github.com/nholthaus/units
Mateusz Pusz сейчас работает над этой проблемой. Попрбуйте его библиотеку, дайте feedback если что-то не так https://github.com/mpusz/units
Закрываю в пользу #356 , там более говорящий заголовок
Перенос предложения: голоса +4, -3 Автор идеи: neondev9
По мотивам std::chrono::duration и по мотивам календаря (С++20), шаблонный тип memory::unit, представляющий собой единицу измерения количества информации, предоставляющий удобные литералы и преобразования в другие размерности, а также арифметику в удобочитаемом виде. Представленный пример работы типа основан на рабочем концепте (С++14). Изменения в ядре никакие не требуются. Имена типов и литералов можно поменять. В арифметике общий тип вычисляется по принципу наименьшей размерности: Кбайт + байт -> байт; Мбайт + Кбайт -> Кбайт.