Bonjour tout le monde,

J'ai une petite question dont je n'arrive pas à trouver de réponse sur le net: comment/peut-on utiliser std::enable_if avec les variadic templates pour activer ou non tel constructeur en fonction du nombre de paramètre?

Voici un petit exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
template<size_t SIZE = 3>
class Test
{
   public:
     template<typename... Args>
     Test(typename<std::enable_if<sizeof...(Args) <= SIZE, Args...>::type args) // J'ai essayé différentes syntaxe mais ça ne semble pas fonctionner
     {
      // blabla
     }
};
A l'heure actuelle, pour avoir le comportement voulu, j'utilise static_assert:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
template<size_t SIZE = 3>
class Test
{
   public:
     template<typename... Args>
     Test(Args... args)
     {
        static_assert(sizeof...(Args) <= SIZE, "Trop d'arguments");
     }
};
C'est plus une question pour satisfaire ma curiosité sur tout ce qui tourne autour des variadic template qu'une réelle nécessité.

Merci d'avance