【发布时间】:2019-07-08 16:42:19
【问题描述】:
所以我有一个模板函数,它有一个默认的 2nd 参数。可以推导出它的 1st 参数,因此类似于:
template <typename F, typename S = int>
void foo(const F param)
这在一般情况下可以正常工作,我只需致电foo(bar)。但是在我想指定第二个参数的情况下,我不能这样做:foo<char>(bar),因为char 被视为F。显然情况并非如此,因为bar 不是char,所以F 应该是可推导出的。
有没有一种方法可以在这里只传递一个模板参数,该参数将应用于S,仍然推导出F,并且在一般情况下仍然默认S?
【问题讨论】:
标签: c++ templates parameter-passing template-argument-deduction default-arguments