Je me demandais si quelque chose comme ceci est possible. J'ai également essayé en déclarant une classe et un constructeur ci-dessus, puis en dessous juste en construisant un objet et en demandant au constructeur d'exécuter toutes les lignes. Il n'accepte pas la définition du constructeur dans la fonction, à savoir, myclass::myclass() { /*definition*/}
Puis-je transférer un lambda afin que le code au-dessus puisse l'appeler?
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;
};
no. Un lambda a un "type indicible" et n'est pas constructible. Vous devez le définir là où vous le déclarez. –
Qu'est-ce que vous essayez d'accomplir en faisant cela, par opposition à simplement définir et transmettre une fonction normale? –
Vous pouvez utiliser 'std :: function' dans ce but. –