使用IAR编译器时,出现以下错误:
Argument list for class template "CallbackInterface" is missing
但是使用VisualC ++时,它的编译就像一个魅力。
有什么可以解释的?
这是我的回调界面
template<typename DataModel, typename... ArgumentType>
class CallbackInterface : public DataModel
{
public:
CallbackInterface() {};
~CallbackInterface() {};
CallbackInterface(ArgumentType... arg) : DataModel(arg...) {};
protected:
///Callback methods
static bool AlwaysDisplayable(DataModel* baseInstance) { return true; };
};
这是我对该界面的专长:
template<typename DataModel, typename... ArgumentType>
class ThisCallbackInterface : public CallbackInterface<DataModel, ArgumentType...>
{
public:
ThisCallbackInterface() {};
~ThisCallbackInterface() {};
ThisCallbackInterface(ArgumentType... arg) : CallbackInterface(arg...) {};
最后一个孩子班:
using DataType = Something;
struct DataModel
{
DataModel(){};
DataModel(DataType dataArgs){};
};
class Child: public CallbackStore<DataModel>, public ThisCallbackInterface<DataModel,DataType>
{
public:
Child(DataType dataArgs) :
CallbackStore(this),
ThisCallbackInterface(dataArgs){};
Child():
CallbackStore(nullptr),
ThisCallbackInterface(){};
~Child(){};
};
答案 0 :(得分:2)
也许会复制CallbackInterface
的模板参数?
ThisCallbackInterface(ArgumentType... arg)
: CallbackInterface<DataModel, ArgumentType...>(arg...)
{ } // ..............^^^^^^^^^^^^^^^^^^^^^^^^^^^^