Size: a a a

IT KPI C/C++ ХВ (не UB)

2020 November 11

k

kvark in IT KPI C/C++ ХВ (не UB)
зайзоф 'a' - 'A' это 2
источник

k

kvark in IT KPI C/C++ ХВ (не UB)
но volatile char ct = b + ('a' - 'A'); считает как будто ('a' - 'A') это чар
источник

k

kvark in IT KPI C/C++ ХВ (не UB)
окей, инт на атмеге 2 байта
источник

k

kvark in IT KPI C/C++ ХВ (не UB)
но сгенерировало код выражения не как для 2х байтов
источник

k

kvark in IT KPI C/C++ ХВ (не UB)
если что асм для atmega328p
источник

V

Vsevolod in IT KPI C/C++ ХВ (не UB)
kvark
напомнило жопоскрипт
"2" + 2 == "22"
2 + "2" == 4
здесь как раз полностью логично)
источник

V

Vsevolod in IT KPI C/C++ ХВ (не UB)
это формально стринга с оператором+ инт и инт с оператом+ стринг
источник

k

kvark in IT KPI C/C++ ХВ (не UB)
ну так то да
источник

k

kvark in IT KPI C/C++ ХВ (не UB)
ну на счет чар + чар = инт. я не смог придумать код, котрый что-то сломал бы. и на мк компилятор может это так оптимизировать, что в реале юзается 1 байт
источник

k

kvark in IT KPI C/C++ ХВ (не UB)
Vladislav Tolstikov
лучше всегда писать static_cast<int>(s.size()) - 1
интересно.. возвращаясь к изначальному вопросу. в каких кейсах реально необходимо юзать статик каст? в голову приходит только такой код
const auto offset = static_cast<char>('a' - 'A');
... = offset + ...
источник

VT

Vladislav Tolstikov in IT KPI C/C++ ХВ (не UB)
например
источник

VT

Vladislav Tolstikov in IT KPI C/C++ ХВ (не UB)
источник

VT

Vladislav Tolstikov in IT KPI C/C++ ХВ (не UB)
class template argument deduction
источник

VT

Vladislav Tolstikov in IT KPI C/C++ ХВ (не UB)
это такое можно писать с с++17
источник

VT

Vladislav Tolstikov in IT KPI C/C++ ХВ (не UB)
источник

VT

Vladislav Tolstikov in IT KPI C/C++ ХВ (не UB)
хотя вот так меньше символов писать))
источник

VT

Vladislav Tolstikov in IT KPI C/C++ ХВ (не UB)
но потенциально возможность есть
источник

VD

Vlad Doc in IT KPI C/C++ ХВ (не UB)
У меня больше вопрос зачем мувить значение)
источник

VT

Vladislav Tolstikov in IT KPI C/C++ ХВ (не UB)
ну смотри, если ты его уже скопировал внутрь конструктора, можно сэкономить и не копировать еще раз
источник

VD

Vlad Doc in IT KPI C/C++ ХВ (не UB)
Vladislav Tolstikov
ну смотри, если ты его уже скопировал внутрь конструктора, можно сэкономить и не копировать еще раз
А зачем было копировать?)
источник