Есть ли способ, в C ++ 17, указать вариант, в котором каждая запись в варианте каким-либо образом изменялась из шаблона с переменными параметрами?
В частности, я хочу объявитьшаблон, который может выглядеть примерно так, объявляя элемент std::variant
, что-то вроде:
template<typename... Args> class Contains {
...
std::variant<...> choices;
...
}
Такой, что, например, Contains<Type1, Type2, Type3,....>
будет иметь choices
член std::variant<const Type1 *, const Type2 *, const Type3 *, ....>
. где поставляемые типы не обязательно имеют общий базовый класс. То есть каждый предоставленный тип в шаблон становится указателем const в std :: варианте.
Я знаю, что потенциально мог бы вручную указать каждую запись, передаваемую в шаблон, как необходимый тип указателя напрямую, мне интересноесли есть какой-то способ использования шаблонов с переменными значениями, чтобы упростить ввод объявления, используя только имена базовых типов для шаблона Contains
?