Re[10]: Box2D
От: so5team https://stiffstream.com
Дата: 05.07.18 10:56
Оценка: +2
Здравствуйте, lpd, Вы писали:

lpd>Я сторонник того, чтобы оптимизировать алгоритм, а код оставлять максимально простым и понятным.


Ну надо же. В какую сторону вы еще разговор уведете вместо того, чтобы показать type-safe union без шаблонов на полиморфизме?

lpd>Для оптимизации все равно union и ассемблер сильнее, чем шаблоны и компилятор.


Правда?

lpd>Я имел ввиду либо базовый result_t, либо базовый reply_t — не обязательно оба вместе.


Это понятно. Только вы, очевидно, не отдаете себе отчет о том, как будет меняться код в одном и другом случае. Приходится вам это объяснять.

lpd>Отличие только в том, что с использованием полиморфизма для result_successful_t и result_failure_t нужно будет добавить один базовый класс: result_t. Мне такой путь нравится больше шаблонов, хотя похоже, что это вопрос предпочтений.


Ну так напишите хотя бы приблизительный код. Сразу станет видно и его объем, и его надежность, и его понятность.

S>>И передавать их как? Через unique_ptr?

lpd>Умные указатели я считаю только усложняющими управление памятью, хотя это оффтоп. Передавать просто через указатель "result_t *" — это самое простое.

Т.е. мы создаем result в динамической памяти? Дергаем хип и создаем лишнюю косвенность там, где можно было обойтись передачей/перемещением значения.

А потом, что вообще прекрасно, отдаем кому-то владеющий голый указатель в надежде на то, что кто-то когда-то его удалит?
Етить-колотить, казалось, что в мире C++ подобные взгляды на управление памятью уже в дикой природе не встречаются, только в каких-то особых замкнутых заповедниках. А поди ж ты.

lpd>reply_t и result_t обычно простые классы.


Кто вам это сказал?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.