テンプレート パラメーターを関数パラメーターとして使用せずに、可変個引数テンプレートを使用できますか?
それらを使用すると、コンパイルされます:
#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>();
}
残念ながら、テンプレート パラメーターとして指定したいクラスはインスタンス化できません (テンプレート関数内で呼び出される静的関数があります)。これを行う方法はありますか?