У меня есть этот простой класс шаблона:
template<typename T>
class property
{
// ...
};
и этот класс шаблона переменной:
template<typename... factory_args>
class type_t
{
// …
, и в этом классе я хотел бы иметь конструктор, который расширяется до этого:
type_t (property<first_type>&, property<second_type>& etc.)
, где first_type
, second_type
и т. Д. Должны исходить из factory_args
.
Тогда я мог бы вызвать конструктор следующим образом:
property<int> first = etc...;
property<void*> second = ...;
auto some_type = type_t<int, void*>(first, second);
В идеале, вывод аргументов шаблона тоже будет работать, поэтому я мог бы также назвать его так:
auto some_other_type = type_t(first, second);
Как мне написать конструктор type_t
?Это выполнимо в C ++ 17?