natknąłem się na ten kod, który jest przy użyciu C++ lambda:C++ statyczne wydajność lambda
qreal defaultDpiScale()
{
static qreal scale = []() {
if (const QScreen *screen = QGuiApplication::primaryScreen())
return screen->logicalDotsPerInchX()/96.0;
return 1.0;
}();
return scale;
}
Dlaczego ktoś miałby napisać tę funkcję za pomocą lambda vs coś takiego:
qreal defaultDpiScale()
{
if (const QScreen *screen = QGuiApplication::primaryScreen())
return screen->logicalDotsPerInchX()/96.0;
else
return 1.0;
}
Czy istnieje wydajność korzyść? Po prostu próbuję zrozumieć użyteczność lambda w tym kontekście.
Czy zdajesz sobie sprawę, że robią różne rzeczy? – juanchopanza
Wskazówka: sprawdź, czym naprawdę jest "qreal". Darmowa wskazówka: nie, to nie jest "podwójne". –
@SamVarshavchik brzmi jak to [jest prawie zawsze] (http://doc.qt.io/qt-4.8/qtglobal.html#qreal-typedef) a 'double' though. Ale jak to jest wskazówka? – Quentin