本文介绍了Lambda是否有不同类型?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

每个lambda都应具有唯一的未知类型.是否保证同一作用域中的两个lambda具有不同的类型?

Every lambda should have a unique unknown type.. is it guaranteed that two lambdas into the same scope have different types?

int main() {
   auto l1 = [](){};
   auto l2 = [](){};
  static_assert(std::is_same<decltype(l1), decltype(l2)>::value == false, "Types cannot be equal!");
}

这可行,但是我想知道是否可以保证断言永远不会触发.

This works but I'd like to know if it's guaranteed that the assert will never fire.

推荐答案

是的,每个lambda表达式都会产生一个唯一的类型([expr.prim.lambda]/3):

Yes, each lambda expression produces a unique type ([expr.prim.lambda]/3):

[已添加重点]

这篇关于Lambda是否有不同类型?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-14 04:11