【发布时间】:2016-12-25 08:26:27
【问题描述】:
我发现拥有像这样的简洁语法并非易事:
std::function<int(float, bool)>
如果我将函数声明为:
template <class RetType, class... Args>
class function {};
定义函数的模板类型是一种普通的语法:
function<int,float,bool> f;
但它使用部分模板专业化的奇怪技巧
template <class> class function; // #1
template <class RV, class... Args>
class function<RV(Args...)> {} // #2
这是为什么呢? 为什么我需要给模板一个带有空类型参数(#1)的空通用表单,否则它就不会编译
【问题讨论】:
标签: c++ templates std-function