Contoh-contoh yang saya temukan yang menangkap thisdalam lambda menggunakannya secara eksplisit; misalnya:
capturecomplete = [this](){this->calstage1done();};
Tetapi tampaknya juga memungkinkan untuk menggunakannya secara implisit; misalnya:
capturecomplete = [this](){calstage1done();};
Saya menguji ini di g ++, dan dikompilasi.
Apakah ini standar C ++? (dan jika ya, versi yang mana), atau apakah itu suatu bentuk ekstensi?
thisdan menggunakannya dalam lambda yang mungkin juga menjadi alasan untuk menggunakannya secara eksplisit
this->secara eksplisit, yaitu untuk memastikan bahwa nilai yang ditangkap secara eksplisit digunakan secara eksplisit. Catatan yang[](){ calstage1done(); }tidak sah, karenathistidak akan ditangkap; tapi ketika menangkapthissecara eksplisit, itu mengejutkan bagi tubuh fungsi untuk tampil sekilas tidak benar-benar menggunakan nilai ditangkap:[this](){ calstage1done(); }.