Re[10]: Приведение константного числа к нужному типу в точке
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 09.10.19 11:49
Оценка:
Здравствуйте, qaz77, Вы писали:

КД>>Значительно позже прикрутил поддержку для нуля.


Q>Вот это имеется в виду под "поддержкой для нуля"?

Q>
Q>static t_numeric_initializator<0> zero;
Q>


Q>Почему не const или даже constexpr?


Неаккуратный _пример_.

У меня оно определено как const.

constexpr пока не юзаю — в настоящий момент времени это для меня не актуально
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[8]: Приведение константного числа к нужному типу в точке использ
От: rg45 СССР  
Дата: 09.10.19 12:40
Оценка: 1 (1)
Здравствуйте, qaz77, Вы писали:

Q>Просто слово numeric намекает именно на числа и там не обязательно ноль, а t_numeric_initailizer<42> может быть.


А bool можно инициализировать не только нулем, но и единицей. Обычный целочисленный тип, просто с очень маленьким диапазоном значений. Принципиально это не отличается от того, что не каждое значение int может быть представлено, например, типом char. Другое дело, что bool не нужен — это действительно решающий аргумент.
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[9]: Приведение константного числа к нужному типу в точке использ
От: qaz77  
Дата: 09.10.19 13:35
Оценка: +1
Здравствуйте, rg45, Вы писали:

R>А bool можно инициализировать не только нулем, но и единицей. Обычный целочисленный тип, просто с очень маленьким диапазоном значений. Принципиально это не отличается от того, что не каждое значение int может быть представлено, например, типом char. Другое дело, что bool не нужен — это действительно решающий аргумент.


Согласен.

Но ТС хотел забивать память байтами 0xFF при инициализации -1ей.
В случае bool память забьется 0x01 для любого ненулевого значения.
Получается не очевидное отклонение от memset-подобного поведения...
Re[10]: Приведение константного числа к нужному типу в точке использ
От: rg45 СССР  
Дата: 09.10.19 14:34
Оценка:
Здравствуйте, qaz77, Вы писали:

Q>Но ТС хотел забивать память байтами 0xFF при инициализации -1ей.


Да, верно. До этого места мое внимание уже притупилось.
--
Не можешь достичь желаемого — пожелай достигнутого.
Re: Приведение константного числа к нужному типу в точке использ
От: Molchalnik  
Дата: 08.11.19 03:40
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>Visual Studio (2013-2019).

КД>[/ccode]
КД> std::fill(std::begin(chs),std::end(chs),structure::zero);
КД>[/ccode]
КД>Все, предупреждений нет.

странно. ладно для -1. но для нуля — чем плохи старые добрые суффиксы? я несколько недопонял вопрос. нужен char — пиши '/0'
нужен флоат — пиши 0f, беззнаковый long long — пиши 0ull

табличка суффиксов для запамятовавших

собственно об этом и вопят предупреждения — укажи явно суффикс, автоматический каст опасен

Оккам плачет и разрезал себе вены скальпелем...
Re[2]: Приведение константного числа к нужному типу в точке использ
От: Molchalnik  
Дата: 08.11.19 04:46
Оценка:
более того, 0 по умолчанию, без суффиксов — это int. int пихают в char — отсюда и протест, каст с потенциальной потерей данных
Re[3]: Приведение константного числа к нужному типу в точке использ
От: Chorkov Россия  
Дата: 08.11.19 07:36
Оценка:
Здравствуйте, Molchalnik, Вы писали:

M>более того, 0 по умолчанию, без суффиксов — это int. int пихают в char — отсюда и протест, каст с потенциальной потерей данных


Это работает, только когда тип заранее известен.
Для шаблонов какой суфикс указывать?
Re[4]: Приведение константного числа к нужному типу в точке использ
От: Molchalnik  
Дата: 08.11.19 21:21
Оценка:
Здравствуйте, Chorkov, Вы писали:

C>Здравствуйте, Molchalnik, Вы писали:


M>>более того, 0 по умолчанию, без суффиксов — это int. int пихают в char — отсюда и протест, каст с потенциальной потерей данных


C>Это работает, только когда тип заранее известен.

C>Для шаблонов какой суфикс указывать?

Оккам режет вены своей бритвой. Автор темы спросил не про шаблонный вариант, а про обычный. Какой вопрос, такой и ответ. Но да, для шаблонов велосипед автора вполне себе интересен.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.