是否可以定义两个具有相同名称的不同模板(按模板参数数量)?
这是我想要做的:
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++不确定.有人可以在这里说清楚吗?
是否可以继承如下的专用结构/类?
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声明错误而抱怨声明的模板参数太少。