我有这个模板类:
template<typename T, T F(const std::string&)>
struct Builder
{
T operator()(const std::string& s) const { return F(s); }
typedef T type;
};
因为我需要一个保存函数和函数返回的值的类(因为我需要对它的引用)。
如您所见,我有两个模板参数,但实际上第一个是多余的。是否可以以某种方式删除它?模板别名?比宏更好的东西
无论如何,第二个模板参数的返回类型 T
必须在其第一次使用之前定义(因为 C++ 规则规定任何实体只能在其声明之后使用),并且声明的唯一方法是使用前面的类型模板参数(就像您所做的那样),因此不能省略第一个参数。