【发布时间】:2020-01-23 15:25:08
【问题描述】:
为什么第一次调用没有编译?
auto get1 = []<int B>() { return B; };
auto get2 = []<typename B>(B b) { return b; };
int main()
{
get1<5>(); // error: no match for operator<
get2(5); // ok
}
我之所以使用这个,是因为一个表达式在代码中重复了很多次。
我当然可以使用真正的函数模板,但我只是好奇为什么。
【问题讨论】:
标签: c++ templates lambda c++20