9
我有一個頂級lambda函數,然後在這個lambda內部有幾個嵌套lambda函數。嵌套Lambda函數 - 性能影響
將lambda嵌入其他lambda中是一個好主意嗎?是否有任何性能影響?
例如,
auto Multiplier1 = []() -> int
{
auto Multiplier2 = [](int i) -> int
{
auto Multiplier3 = [](int i) -> int
{
return i * 2;
};
std::cout << "Calling another lambda 2\n";
return Multiplier3(i * 100);
};
int i = 10;
std::cout << "Calling another lambda 1\n";
int ret = Multiplier2(i);
return ret;
};
int ret = Multiplier1();
std::cout << ret << "\n";
在上面的例子中,我可以將Multiplier2和Multiplier3重新分解爲單獨的函數。與此相比,這是更好的方法嗎?
我正在修改已經在生產中的代碼,因此,我是在一個兩難的問題,是否將它重新分解爲單獨的函數或管理使用lambda函數。
「*是否有任何性能影響?*」對於無捕食lambdas,因爲你有,絕對不是。 – ildjarn
誠實的問題:爲什麼不圍繞你有時間的罐頭示例進行循環。那麼重構和時間呢?正如@ildjarn所指出的那樣,您需要確保這些lambda的簽名與您生產中的真正lambda相同。 – Hal
@Hal你說得對。最好的事情是時間和檢查性能。 –