#c
#c
Вопрос:
Я пытаюсь создать экземпляр шаблона класса с целым набором различных комбинаций параметров шаблона, которые будут определяться некоторой информацией о времени выполнения: https://github.com/ITKTools/ITKTools/blob/newpixeltypeselector/src/binarythinning/binarythinning.cxx . Эта система работает нормально (строки 169-190), но она довольно подробная. И это только 2 и 3 измерения, что, если бы я хотел 2-10? Это были бы страницы кода!
Есть ли какой-либо способ сократить это, чтобы сказать «создать экземпляры всех пар [этих типов] и [этих измерений]» или что-то в этом роде?
Я видел нечто подобное в Boost, но, к сожалению, использование Boost не подходит для этого проекта.
Какие-либо указатели?
Спасибо!
Дэвид
Комментарии:
1. Если вы видели это в Boost, тогда прочитайте исходный код Boost. Это должно достаточно хорошо объяснить, как это сделать.
2. Ха-ха «прочитайте исходный код Boost» — это на самом деле не тот ответ, который поможет кому-либо, кроме элитных программистов.
3. хах, я собирался привести вам пример того, как это делается с помощью Boost, когда заметил это. Ну что ж. Почему вы хотите изобретать велосипед?
4. Поиск в Google «typelist» должен дать некоторые разумные отправные точки. Loki также включает в себя такого рода возможности, и он намного меньше (хотя и более мозговой), чем Boost.
5. Я думаю, вы можете сделать это (или, по крайней мере, часть измерений) с помощью Boost.PP. И использование Boost. PP — это опция практически для любого проекта, поскольку вам нужно будет только включить Boost. Заголовки PP, и это все. И поскольку для этого требуется только препроцессор, совместимость с компилятором не является проблемой (хотя совместимость с препроцессором может быть проблемой :)).
Ответ №1:
Я предполагаю, что консенсус заключается в «использовании Boost».