с кортежами и boost.fusion, есть ли причина использовать struct?

кортежи похожи на структуры (обсуждается здесь: Boost :: Tuples vs Struct для возвращаемых значений). кажется, что единственным преимуществом является то, что удобнее писать struct, потому что она короче и по ключу, а не по числу.

можно также использовать карту слияния и структуры для доступа по ключу Boost :: Tuples vs Struct для возвращаемых значений моделировать конструкции. это немного больше писать.

Кажется, что в исполнении также нет никакого штрафа. ну, слияние может быть быстрее, так как он использует представления.

так что единственная причина использовать структуры — если вы не хотите писать еще несколько строк кода и сохранять код читабельным?

0

Решение

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

Кроме того, есть расширяемость / ремонтопригодность — было бы довольно трудно поместить / изменить / удалить любой дополнительный позиционный аргумент в кортеже, но это намного проще с поиском структуры «ключ-значение».

Качество кода это сочетание производительности, читабельности, четкости, расширяемости и т. д. Игнорирование любых этих значений ухудшит ваш код. И это плохо.

3

Другие решения

Структуры могут быть разделены на подклассы и могут содержать методы, виртуальные функции, перечисления, определения типов, подструктуры и многое другое.

Кортежи могут представлять только самые тривиальные функции structэто коллекция значений. И это даже не может дать им имена. Они очень плохая замена.

2