小编use*_*762的帖子

具有重复名称的类模板?

是否可以定义两个具有相同名称的不同模板(按模板参数数量)?

这是我想要做的:

namespace MyNamespace
{

template<class TRet>
class FunctionObject
{
    typedef typename TRet ReturnType;
    virtual ReturnType const operator()() const = 0;
};


template<class TRet, class TArg0>
class FunctionObject
{
    typedef typename TRet ReturnType;
    typedef typename TArg0 FirstArgumentType;
    virtual ReturnType const operator()(FirstArgumentType const &arg) const = 0;
};

}
Run Code Online (Sandbox Code Playgroud)

我在第二个FunctionObject结构定义的右括号末尾提到了太多模板参数的错误.

我知道这可以在C#中完成,但对C++不确定.有人可以在这里说清楚吗?

c++ templates

9
推荐指数
3
解决办法
311
查看次数

从专门的模板结构/类继承

是否可以继承如下的专用结构/类?

template<class TKey, class TData>
struct Container
{
    virtual void Add(TKey key, TData data) = 0;
};

template<class TData>
struct Container<int, TData>
{
    virtual void Add(int key, TData data) = 0;
};

struct TicketContainer : public Container<std::string>
{
    void Add(int key, std::string data)
    {
    }
};
Run Code Online (Sandbox Code Playgroud)

我在TicketContainer声明错误而抱怨声明的模板参数太少。

c++ inheritance template-specialization

3
推荐指数
1
解决办法
1980
查看次数