私の質問を説明する例があります:
#include <utility>
class Foo {
public:
Foo(int i) {}
};
template<typename T, typename ...Args>
class Bar {
public:
T t;
Bar(Args &&... args) : t(std::forward<Args>(args)...) {}
};
このテンプレートをインスタンス化する場合:
Bar<Foo> foo(1);
コンパイラはエラーをスローします:
no matching function for call to ‘Bar<Foo>::Bar(int)’
だから私はこれに書く必要があります:
Bar<Foo, int> foo(1);
特に、パラメータの長いリストを持ついくつかのクラスを取得した場合、これは面倒です。
パラメータパックで型を明示的に表示することを取り除く方法はありますか