2
我想知道是否有這樣的事情是可能的。我也試過通過聲明上面的類和構造函數,然後在下面構造一個對象並讓構造函數運行所有行。它不接受構造函數定義的函數,即myclass::myclass() { /*definition*/}
我可以轉發聲明一個lambda,以便它上面的代碼可以調用它嗎?
void present();
// I was hoping this would let the below code know of the lambda.
if (GFX::bFPSLimitOn) {
if (frameLatency > 1.0/GFX::FPSLimit) present();
else return;
} else present();
auto present = [&]() {
GFX::clearScreen();
GFX::renderScene(activeCamera);
GUI::renderGUI();
GFX::presentScreen();
lastFramePresentTimestamp = currentTime;
};
沒有。 lambda具有「不可改變的類型」並且不可構造。你必須在你聲明的地方定義它。 –
通過這樣做你想達到什麼目的,而不是僅僅定義和向前聲明一個正常的函數? –
你可以使用'std :: function'來達到這個目的。 –