• [^] # Re: le defer est pavé de bonnes exceptions

    Posté par (site web personnel) . En réponse au journal Une 20-aine de lignes de code pour le defer de Go en C++. Évalué à 7.

    Prend l'exemple de la SDL.

    Tu serais obligé de créer des unique_ptr<SDL_Window> et unique_ptr<SDL_Renderer> avec les deleters appropriés. Tu devras aussi encapsuler dans une classe l'appel à SDL_Init avec son destructeur qui appelle SDL_Quit. Tout plein de code qui complexifie une fonction pourtant toute bête.

    Je t'avouerai en plus ne pas connaître suffisamment la spec pour te garantir dans quel ordre les destructeurs seront appelés. Ici, au moins, c'est explicite.

    RAII c'est un design pattern parmi d'autres. Si tu utilises une lib C en C++ (SDL, lua, ...), c'est parfois plus simple et plus clair d'avoir un simple defer.

    https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg