Информация об изменениях

Сообщение Re[2]: количество аргументов из шаблона от 21.11.2019 12:10

Изменено 21.11.2019 13:07 rg45

Re[2]: количество аргументов из шаблона
Здравствуйте, ArtDenis, Вы писали:

AD>Для этого больше подходит препроцессор (например BOOST_PP_ENUM_PARAMS), а не шаблоны


AD>Хотя... с std::index_sequence, предложенный выше, вполне себе вариант


Я еще могу согласиться с тем, что этот способ более привычен (и то с натяжкой). Но вот насчет того, что он лучше — никак. Судите сами, нам так или иначе придется определить макрос содержащий в себе болванку базового класса. Потом нам нужно будет как-то это определение растиражировать — либо вручную, либо при помощи все того же препроцессора (BOOST_PP_REPEAT_). В результате вместо шаблона мы получаем то же самое определение, только помещенное внутрь монстровидного макроса, с BOOST_PP_ENUM_PARAMS и кучей слешей. Плюс фиксированное количество воплощений, которое практически наверняка будет избыточным. Ну и сам факт использования макросов. Так чем же это лучше?
Re[2]: количество аргументов из шаблона
Здравствуйте, ArtDenis, Вы писали:

AD>Для этого больше подходит препроцессор (например BOOST_PP_ENUM_PARAMS), а не шаблоны


AD>Хотя... с std::index_sequence, предложенный выше, вполне себе вариант


Я еще могу согласиться с тем, что этот способ более привычен (и то с натяжкой). Но вот насчет того, что он лучше — никак. Судите сами, нам так или иначе придется определить макрос содержащий в себе болванку базового класса. Потом нам нужно будет как-то это определение растиражировать — либо вручную, либо при помощи все того же препроцессора (BOOST_PP_REPEAT_). Причем, отдельно для каждого типа параметра (не забываем, что среди параметров шаблона Foo, помимо "size_t N", есть еще "typename Arg"). В результате вместо шаблона мы получаем то же самое определение, только помещенное внутрь монстровидного макроса, с BOOST_PP_ENUM_PARAMS и кучей слешей. Плюс фиксированное количество воплощений, которое практически наверняка будет и избыточным и недостаточным одновременно (избыточным по поддерживаемому числу параметров и потенциально недостаточным по типу аргумента). Ну и плюс сам факт использования макросов. Так чем же это лучше?