Size: a a a

2019 November 25

VK

Valentin Kornienko in C++ Together 2.0
Что reinterpret_cast<T*> (pVoid); вернет нормальный указатель?
источник

'#

'_' #_~ in C++ Together 2.0
Valentin Kornienko
Вы гарантируете, что под void* лежит тип, который вы ожидаете и что этот адрес выровнян ?
я гарантирую что в том коде который я скинул, и в его расширенной (юзаемой) версии не может быть ситуации, когда в instance будет лежать что либо отличное от ожидаемого типа... (для больших систем с тоннами людей и кода это к сожалению проблема)
источник

'#

'_' #_~ in C++ Together 2.0
Valentin Kornienko
Что reinterpret_cast<T*> (pVoid); вернет нормальный указатель?
что значит нормальный? и почему не static_cast?
источник

VK

Valentin Kornienko in C++ Together 2.0
'_' #_~
что значит нормальный? и почему не static_cast?
Потому что Статик каст из войдпоинтера не отработает ( тут могу ошибаться).
источник

VK

Valentin Kornienko in C++ Together 2.0
'_' #_~
я гарантирую что в том коде который я скинул, и в его расширенной (юзаемой) версии не может быть ситуации, когда в instance будет лежать что либо отличное от ожидаемого типа... (для больших систем с тоннами людей и кода это к сожалению проблема)
Хорошо, тогда не удивляйтесь, когда другие, кому вы показываете код будут первым делом смотреть на указатели и спрашивать те же вопросы, что и я.
источник

'#

'_' #_~ in C++ Together 2.0
главную багу пока что никто не заметил....
https://ideone.com/IaoP7v

при расширении юзеркода выясняется, что там есть проблемка
источник

'#

'_' #_~ in C++ Together 2.0
хер сним... так и знал что будет только заCPP
источник

VK

Valentin Kornienko in C++ Together 2.0
Ну, как бы. Такие баги никто не будет искать в коде с void*. Себе дороже.
источник

'#

'_' #_~ in C++ Together 2.0
ну как бы там дело не в void...
https://ideone.com/vDTqbh
источник

'#

'_' #_~ in C++ Together 2.0
Valentin Kornienko
Ну, как бы. Такие баги никто не будет искать в коде с void*. Себе дороже.
а в том что инстанс управляемого обьекта вообще не создавался.. но эт ладно. на то оно и беспланое ревью...
источник

VK

Valentin Kornienko in C++ Together 2.0
Есть хорошее правило. Если не знаете как протестировать написанное- надо переосмыслить что то.
источник

VK

Valentin Kornienko in C++ Together 2.0
Вот в вашем случае стоит подумать, как бы Вы тестировали вашу машину состояний. Позволяет ли она это сделать?
источник

'#

'_' #_~ in C++ Together 2.0
Valentin Kornienko
Есть хорошее правило. Если не знаете как протестировать написанное- надо переосмыслить что то.
почему не знаю.. я не просил тестировать тут никого ничего. просто интересны были мнения
источник

VK

Valentin Kornienko in C++ Together 2.0
'_' #_~
почему не знаю.. я не просил тестировать тут никого ничего. просто интересны были мнения
Протестировать в смысле автоматическими тестами покрыть:)
источник

VK

Valentin Kornienko in C++ Together 2.0
Чтобы юнит тестов на модуль напилить, например
источник

'#

'_' #_~ in C++ Together 2.0
яж просто паттерн запилил на скору руку. ща доберемся. гуглотестом...
источник

'#

'_' #_~ in C++ Together 2.0
Valentin Kornienko
Протестировать в смысле автоматическими тестами покрыть:)
стейт машине, как и автомату, на вход проще строки со словами скормить, предварительно сконфигурировав язык. а то варианты от контекста зависят
источник

'#

'_' #_~ in C++ Together 2.0
еще есть варианты? но как это в ртосе с прерываниями и многопоточностью затестить... вот это уже да
источник

u

uint128_t in C++ Together 2.0
Valentin Kornienko
Вообще. Если есть возможность использовать С++- надо использовать С++. Гарантий больше дает в итоге.
что именно дает гарантии?
источник

u

uint128_t in C++ Together 2.0
Valentin Kornienko
Убирать его нельзя. Куча системного апи сломается. А вот использовать в своем коде не надо.
тоже почему очень хотелось бы выслушать аргументы.
источник