Variadic template i zmienna

0

Witam
Stworzyłem mniej więcej taką funkcję:

template<template<class...> class T, class First, class... Next>
void jakasfunkcja(T<First, Next...> arg){ ... }

I bez problemu przyjmuje obiekty klas typu:

template<class T1, class T2, class T3>
class Jakasklasa{ ... };

Jednakże, chciałbym, aby przyjmowała też obiekty klas z szablonami ze zmiennymi. Np.:

template<class T1, int N>
class Jakasinnaklasa{ ... };

W szablonie, zawsze pierwszy będzie typ i tylko on mnie obchodzi, reszta już mnie nie interesuję. Tzn. chcę otrzymać pierwszy typ szablonu klasy obiektu, którego funkcja dostała jako argument.
Czy jest to możliwe?

0

O ile mi wiadomo nie jest to obecnie możliwe - nie masz sposobu na wydedukowanie typu parametru szablonu niebędącego typem.

Czyli możesz sobie napisać:

template<typename T, template<class, T...> class U, class First, T... Others>
void jakasfunkcja(U<First, Others...>&& arg){
	jakasfunckjaimpl<First>(arg);
}

ale w wywołaniu będziesz musiał podać pierwszy parametr szablonu:

jakasfunkcja<unsigned>(array<int,10>{}); // OK
jakasfunkcja(array<int,10>{}); // compile error

1 użytkowników online, w tym zalogowanych: 0, gości: 1