How to wrap SDL?

Sean Eskapp eatingstaples at gmail.com
Sat Jan 22 12:53:12 PST 2011


== Quote from Andrej Mitrovic (andrej.mitrovich at gmail.com)'s article
> You can use scoped!() from std.typecons:
> import std.stdio;
> import std.typecons;
> class A
> {
>     ~this()
>     {
>         writeln("A destructor");
>     }
> }
> void foo()
> {
>     auto a1 = scoped!A();
> }
> void main()
> {
>     foo();
>     writeln("exiting..");
> }
> You must not escape a reference to the object outside of the foo()
> scope. Note that you will get a runtime error if you try to do
> something like this:
> import std.stdio;
> import std.typecons;
> class A
> {
>     ~this()
>     {
>         writeln("A destructor");
>     }
> }
> auto foo()
> {
>     auto a1 = scoped!A();
>     return a1;
> }
> void main()
> {
>     auto result = foo();
>     writeln("exiting..");
> }
> Illegal call to Scoped this(this)
> A destructor
> core.exception.AssertError at std.typecons(2506): Assertion failure

But these can't be passed to functions either, meaning I can't pass a Screen,
Text, or Font wrapper around, all of which I use in my project!


More information about the Digitalmars-d-learn mailing list