次のようなクラス定義があります。
template <class Impl>
FullO3CPU<Impl>::FullO3CPU(DerivO3CPUParams *params)
class DerivO3CPU : public FullO3CPU<O3CPUImpl>
{
public:
DerivO3CPU(DerivO3CPUParams *p)
: FullO3CPU<O3CPUImpl>(p)
{ }
};
DerivO3CPU *
DerivO3CPUParams::create()
{
...
return new DerivO3CPU(this);
}
私が変更したのは、FullO3CPU に別の引数を追加することでした
template <class Impl>
FullO3CPU<Impl>::FullO3CPU(DerivO3CPUParams *params, My_param *mp)
class DerivO3CPU : public FullO3CPU<O3CPUImpl>
{
public:
DerivO3CPU(DerivO3CPUParams *p, My_param *mp)
: FullO3CPU<O3CPUImpl>(p, mp)
{ }
};
DerivO3CPU *
DerivO3CPUParams::create()
{
...
return new DerivO3CPU(this);
}
しかし、私は何をすべきかわかりません
return new DerivO3CPU(this);
このエラーが発生するため:
error: no matching function for call to 'DerivO3CPU::DerivO3CPU(DerivO3CPUParams* const)'
note: candidates are:
note: DerivO3CPU::DerivO3CPU(DerivO3CPUParams*, My_param*)
note: candidate expects 2 arguments, 1 provided