我见过这样的代码:
std::sort(x, x + N,
// Lambda expression begins
[](float a, float b) {
return std::abs(a) < std::abs(b);
});
显然,std::sort
的第三个参数是能够容纳lambda表达式的类型。但是这种类型是什么? std::sort
有很多重载形式,我无法理解。
(我在考虑建立一个函数列表:打算使用lambda而不是函数指针,因为后者必须具有大致相同的参数列表。)
我想我可以写成:
auto letTheComplerSortOutTheType =
[](float a, float b) {
return std::abs(a) < std::abs(b);
});
但是这对我使用容器来说并没有帮助。
std::cout << typeid(foo).name();
- OMGtechy