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