タイプリストの各クラスにメソッドを提供する可変個引数テンプレート クラスを作成しようとしています。print
タイプリスト内のすべてのクラスのメソッドを作成する例を以下に示します。
#include <iostream>
#include <string>
// Helper class providing a function call
template <typename T>
class PrintHelper
{
public:
void print(const T& t) { std::cout << t << std::endl; }
};
// Provides a print method for each type listed
template <typename... Ts>
class Printer : public PrintHelper<Ts>...
{};
int main()
{
Printer<int, std::string> p;
p.print(std::string("Hello World")); // Ambiguous Call
}
コメント行は、コメント行で GCC 4.6.3 からのエラーになります。あいまいさを解決する正しい方法は何ですか、または別の設計を検討する必要がありますか?