私はこのようなことをしようとしています:
template <class ... Required>
class Base
{
template <class First, class ... Rest>
void bar(First f, Rest ... r)
{
[...]
return bar(r...);
}
void bar()
{
return;
}
public:
template <class ... Optional>
void foo(Required ... r, Optional ... o)
{
[...]
bar(r...); //separate the required from the optional
bar(o...);
}
};
class Child : Base<Foo1, Foo2>
{
public:
Child()
{
[...]
foo(foo1,foo2,foo3);
}
}
ただし、最初のbar
呼び出しはパラメーターのみではなくすべてのパラメーターを受け取りRequired
、2 番目の呼び出しはパラメーターをまったく受け取りません。複数の可変パラメータについて何か見逃していましたか? コンパイラはそれが であり、残りは であることを認識すべきではありませRequired...
んFoo1,Foo2
かOptional
?