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