【发布时间】:2013-08-04 16:47:26
【问题描述】:
尝试使用 lambda 覆盖 map::compare 函数,似乎以下解决方案有效。
auto cmp = [](const int&a, const int& b) { return a < b; };
std::map<int, int, decltype(cmp)> myMap(cmp);
但是,我必须先定义cmp,然后再使用它。
我可以在不定义“cmp”的情况下执行此操作吗?
【问题讨论】:
-
cmp不是函数指针。 -
做什么?
ints 已经相互比较了。你想做什么?为什么不想使用函数? -
是的,函数指针不是一个准确的术语。编辑问题以使问题更清晰。
-
那么你使用什么方法失败了?我们知道您想要的不是您的榜样,而是您的最终目标。
-
但是不能将无捕获的lambas转换为函数指针吗?