Size: a a a

2020 August 08

АР

Андрей Руссков... in pro.cxx
потому что такого кода тьма
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
Андрей Руссков
смотри. Сейчас мы имеем UB. А хочется чтобы код а-ля int(some_float) вел себя детерминированно
Уб хуже переполнения. Но это выбор из говна и говна
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
Я не один считаю, что дефолт округление это не решение проблемы
источник

АР

Андрей Руссков... in pro.cxx
при этом обрабатывать переполнение насыщением кажется наиболее хорошим решением по умолчанию
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
Не согласен
источник

АР

Андрей Руссков... in pro.cxx
Artöm Bakri Al-Sarmini
Я не один считаю, что дефолт округление это не решение проблемы
а вот если надо скастить и проверить переполнение можно ввести отдельную функцию
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
А хотя согласен
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
Но к этому нужны гайдлайны, которые не позволят делать тупо каст там, где насыщение не ожидаемое поведение
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
А гайдлайны тонну старого кода автомаиически не исправят
источник

АР

Андрей Руссков... in pro.cxx
ну сейчас в старом коде тьма UB
источник

АР

Андрей Руссков... in pro.cxx
просто потому что никто еще не подавал таких входных данных на которых он будет крашиться
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
Андрей Руссков
а вот если надо скастить и проверить переполнение можно ввести отдельную функцию
Эта функция должна быть дефолт выбором при касте, что сложно форсить
источник

АР

Андрей Руссков... in pro.cxx
ну мне кажется "какое-нибудь определенное поведение" всяко лучше UB. И тут уже вопрос что лучше оставить поведением по умолчанию а что выносить в функции
источник

АР

Андрей Руссков... in pro.cxx
мне кажется поведение по умолчанию должно быть максимально производительным
источник
2020 August 09

m

magras in pro.cxx
Андрей Руссков
мне кажется поведение по умолчанию должно быть максимально производительным
UB это и есть максимально производительное решение. То что на x86 есть SIMD инструкция которая использует переполнение с насыщением еще не значит что это так на всех платформах. Более того разработчики компилятора могут добавить преобразование неэффективного кода явно реализующего насыщение при переполнении в ту самую ассемблерную инструкцию.

Мне кажется что в большинстве случаев переполнение при конвертации float к int это логическая ошибка и с точки зрения пользователя разницы между UB и насыщением нет.
источник

f

fulcanelly in pro.cxx
Wild_Wind
Для полей - нормальные имена, а для методов с постфиксом.

К примеру:

class mail(){
   /*_*/
   std::string mailbox;
   std::string hostname;
   static constexpr const char separator = '@';
   mail(std::string_view mailbox_, std::string_view hostname_)
   : mailbox(mailbox_), hostname(hostname_) {}
   /*_*/
};
ты плюсы с котлином смешал
источник

d

d7d1cd in pro.cxx
Народ, возможно ли в С++ написать код, в котором метод класса вызывается по его имени, если имя метода хранится в строке?
источник

KO

Konstantin Osipov in pro.cxx
В целом да, но потребуется заморочиться
источник

d

d7d1cd in pro.cxx
Konstantin Osipov
В целом да, но потребуется заморочиться
А можете рассказать как это сделать?
источник

CD

Constantine Drozdov in pro.cxx
d7d1cd
А можете рассказать как это сделать?
Как и всегда, генерировать таблицу сопоставления методов (искать по словам рефлексия C++)
источник