how to create an array of scoped objects ?
Mike Parker
aldacron at gmail.com
Tue Jul 3 10:00:00 UTC 2018
On Tuesday, 3 July 2018 at 07:29:12 UTC, Flaze07 wrote:
>
> class RenderWindow {
> private sfRenderWindow* _window;
> public {
> this() {
> _window = sfRenderWindow_create(/*parameters*/);
> }
> //couple of other functions
> ~this() {
> sfRenderWindow_destroy( window );
> }
> }
> }
> //not a very accurate representation, but should get the
> message pretty clear
>
> which I am very concerned about leaking resources, the tutorial
> did just not use scoped!, instead it directly use new, but what
> about leaking resources ?
The only way you're going to be leaking resources is if the app
is long running and the resource objects are never collected. I'd
be more concerned about the nondeterministic nature of the
destructor calls, particularly what happens at app shut down if
the render window destructor is called before any thing that
depends on the graphics context. If the library doesn't account
for that, you'll get random crashes when the app exits.
If you need to release resources while the app is running, just
use resource.destroy(). This will make sure the destructor is
called and the object is reset to its init state, and you can
maintain determinism.
More information about the Digitalmars-d-learn
mailing list