Шаблон методика шаблона и длинные списки параметров в C ++
-
01-10-2019 - |
Вопрос
После полезных ответов на мой последний вопрос Я начал использовать шаблон метода метода для класса с большим количеством различных вариантов. Не внесло их всех, мои нынешние объявления на объекты этого класса теперь выглядят так:
pc < prg, tc, 9, 0, 4, 4, test, true, true, true, true, false, true, true, 10, 0, -1, 3, 3 > mp;
Как вы справляетесь с длинными списками параметров шаблонов? Должен ли я использовать enums / определять вместо True / false и номеров? Есть ли часто используемые альтернативы?
Решение
Да, используйте enums (не определяют) вместо true / false. Таким образом, если вы получите параметры из строя, то компилятор будет жаловаться. Кроме того, для читателей гораздо яснее.
Что касается решения с длинными списками параметров в целом --- скрыть их за Typedef, или генератор, который исправляет некоторые из параметров шаблона, и позволяет вам варьироваться другим.
Другие советы
Я бы предпочел пересмотреть свой дизайн, если бы у меня был список параметров шаблона, который так долго. Многие параметры часто являются указанием плохого дизайна.
Я не делаю C ++, и это может не применять хорошо к шаблону, но то, что я бы попытался сделать с нормальным методом с длинным списком параметров, находит связанные параметры и попытаться сгруппировать их разумно и внедрять объекты параметра, отражающие группировку, Так что у вас есть более короткий список более сложных параметров.
Я бы пропустил один аргумент, который является коллекцией типа варианта, например, STD :: Vector.