缺少类模板的参数列表,但 VisualC++ 中缺少参数列表

Argument list for class template is missing, but not with VisualC++

本文关键字:参数 列表 VisualC++      更新时间:2023-10-16

使用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(){};
};
也许解释

CallbackInterface的模板参数?

  ThisCallbackInterface(ArgumentType... arg)
     : CallbackInterface<DataModel, ArgumentType...>(arg...)
   { } // ..............^^^^^^^^^^^^^^^^^^^^^^^^^^^^