Шаблоны Variadic без параметров функции

Могу ли я использовать вариативные шаблоны без использования параметров шаблона в качестве параметров функции?

Когда я их использую, он компилируется:

#include <iostream>
using namespace std;

template<class First>
void print(First first)
{
    cout << 1 << endl;
}

template<class First, class... Rest>
void print(First first, Rest...rest)
{
    cout << 1 << endl;
    print<Rest...>(rest...);
}

int main()
{
    print<int,int,int>(1,2,3);
}

Но когда я их не использую, он не компилируется и жалуется на двусмысленность:

#include <iostream>
using namespace std;

template<class First>
void print()
{
    cout << 1 << endl;
}

template<class First, class... Rest>
void print()
{
    cout << 1 << endl;
    print<Rest...>();
}

int main()
{
    print<int,int,int>();
}

К сожалению, классы, которые я хочу указать в качестве параметров шаблона, не могут быть созданы (] у них есть статические функции, которые вызываются внутри шаблонной функции ). Есть ли способ сделать это?

8
задан deft_code 23 April 2012 в 06:21
поделиться