Size: a a a

2020 July 12

f&

fox.py &>/dev... in C++ Together 2.0
это уже сказали, а почему UB?
источник

IL

Ilya L in C++ Together 2.0
Лично я уже не помню, где-то в книжке читал и забыл почему. Но в инетах пишут такое.
Страуструп пишет:
«Например, что это значит выражение — x = (T)y;. Мы не знаем. Это зависит от типа T, типов x и y. T может быть названием типа, typedef или может быть параметр template-а. Может быть, х и у являются скалярными переменными и Т представляет собой значение преобразования. Может быть, х объекта класса, производного от класса Y и Т — нисходящее преобразование. По этой причине программист может не знать, что он делает на самом деле.»
Вторая причина нежелательного использования приведения типов в C-style — трудоемкость процесса поиска мест приведения типов.
источник

f&

fox.py &>/dev... in C++ Together 2.0
Ilya L
Лично я уже не помню, где-то в книжке читал и забыл почему. Но в инетах пишут такое.
Страуструп пишет:
«Например, что это значит выражение — x = (T)y;. Мы не знаем. Это зависит от типа T, типов x и y. T может быть названием типа, typedef или может быть параметр template-а. Может быть, х и у являются скалярными переменными и Т представляет собой значение преобразования. Может быть, х объекта класса, производного от класса Y и Т — нисходящее преобразование. По этой причине программист может не знать, что он делает на самом деле.»
Вторая причина нежелательного использования приведения типов в C-style — трудоемкость процесса поиска мест приведения типов.
ну, я сишник, поэтому написал в C-style кастах.
источник

f&

fox.py &>/dev... in C++ Together 2.0
все равно не вижу, где тут UB.
источник

EP

Evgeniy Pichuzhkin in C++ Together 2.0
.py
сишник
🤔🤔🤔
источник

IL

Ilya L in C++ Together 2.0
fox.py &>/dev/null
все равно не вижу, где тут UB.
Надеюсь дяди поопытнее точно скажут, я лишь запомнил рекомендацию использовать С++ касты
источник

IL

Ilya L in C++ Together 2.0
Возможно там UB не во всех случаях, а лишь в ряде приведений
источник

IL

Ilya L in C++ Together 2.0
Особенно если это приведение от дочерних к родительским
источник

AB

Artöm Bakri Al-Sarmi... in C++ Together 2.0
Ilya L
Возможно там UB не во всех случаях, а лишь в ряде приведений
Именно
источник

f&

fox.py &>/dev... in C++ Together 2.0
Ilya L
Надеюсь дяди поопытнее точно скажут, я лишь запомнил рекомендацию использовать С++ касты
потому что C++ - слишком сложный язык для сишных кастов.
источник

IL

Ilya L in C++ Together 2.0
Ilya L
Особенно если это приведение от дочерних к родительским
Не уверен что Си-стайл каст возьмет данные которые лежат рядом
источник

f&

fox.py &>/dev... in C++ Together 2.0
Ilya L
Возможно там UB не во всех случаях, а лишь в ряде приведений
у меня тут все типы описаны, поэтому мы рассматриваем только одно приведение.
источник

IL

Ilya L in C++ Together 2.0
Ilya L
Не уверен что Си-стайл каст возьмет данные которые лежат рядом
А, не, тут херню сказал
источник

f&

fox.py &>/dev... in C++ Together 2.0
Ilya L
Не уверен что Си-стайл каст возьмет данные которые лежат рядом
классов тут нет.
источник

IL

Ilya L in C++ Together 2.0
fox.py &>/dev/null
у меня тут все типы описаны, поэтому мы рассматриваем только одно приведение.
Ну если ты пишешь в Си-стиле то мб и нормально
источник

f&

fox.py &>/dev... in C++ Together 2.0
только два скалярных типа, указатель и инт.
источник

IL

Ilya L in C++ Together 2.0
А какие приведения вызывают UB?
источник

AB

Artöm Bakri Al-Sarmi... in C++ Together 2.0
Ilya L
А какие приведения вызывают UB?
Легче перечислить те, что не вызывают
источник

f&

fox.py &>/dev... in C++ Together 2.0
Ilya L
Ну если ты пишешь в Си-стиле то мб и нормально
не, ребята, давайте тогда уж считать, что это просто C.
я не пишу в C-стиле, я просто пишу на C и собираю компилятором C.
источник

f&

fox.py &>/dev... in C++ Together 2.0
:)
источник