【发布时间】:2016-06-10 13:04:30
【问题描述】:
我试图看看这在 C++14 通用 lambda 中是否可行,但我找不到正确的方式来表达它(或者可能是不可能的)。简化的例子是:
auto confirmOperation = [](auto pr){
assert(pr.second);
};
这个想法是,如果你向它传递一个std::pair,其中second 是一个bool(例如从emplace 函数返回的内容),它可以查看这个布尔值。
如果这是一个模板参数,我可以将 pair 显式显示为通用类型,但我认为这不可能使用 lambda?因此,我将整个参数标记为泛型,因此编译器似乎无法推断出我正在将映射的 emplace() 返回传递给它。
有什么办法吗?
【问题讨论】:
-
能否请您显示周围的代码(即包含地图位置)?
-
你在这里要求什么?
auto是可以表示pair的泛型类型。你想通过返回中的类型来改变函数的行为吗? -
所以,很多人点赞并收藏了这个。如果您能阅读以上内容并解释您认为 OP 在说什么,您能帮我翻译一下吗?
-
您发布的代码没有问题。它在哪些方面无法满足您的需求?