编译器是否可以/是否内联 lambda 函数以提高效率,就像使用简单的标准函数一样?
例如
std::vector<double> vd;
std::for_each(vd.begin(), vd.end(), [](const double d) {return d*d;});
还是由于缺乏优化而导致效率损失?
第二个问题:我在哪里可以检查我使用的编译器是否优化了内联函数的调用,这些调用被发送到算法?我的意思是,如果一个函数——而不是函数对象——被发送到一个算法,最后一个得到一个指向函数的指针,一些编译器优化了指向内联函数的指针,而另一些则没有。