Changeset 1776

Show
Ignore:
Timestamp:
07/22/10 15:33:04 (4 years ago)
Author:
andrei
Message:

Simplified scoped()

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/phobos/std/typecons.d

    r1775 r1776  
    22852285        alias Scoped_payload this; 
    22862286 
    2287         this(Args...)(Args args) if (is(typeof(T.init.__ctor(args)))) 
    2288         { 
    2289             emplace!T(cast(void[]) Scoped_store, args); 
    2290         } 
    2291  
    22922287        @disable this(this) { writeln("Scoped this(this)"); assert(false); } 
    22932288 
     
    23012296    } 
    23022297 
     2298    byte[__traits(classInstanceSize, T)] result; 
    23032299    static if (Args.length == 0) 
    23042300    { 
    2305         byte[__traits(classInstanceSize, T)] result; 
    23062301        result[] = typeid(T).init[]; 
    23072302        static if (is(typeof(T.init.__ctor()))) 
     
    23092304            (cast(T) result.ptr).__ctor(); 
    23102305        } 
    2311         return cast(Scoped) result; 
    23122306    } 
    23132307    else 
    23142308    { 
    2315         return Scoped(args); 
    2316     } 
     2309        emplace!T(cast(void[]) result, args); 
     2310    } 
     2311    return cast(Scoped) result; 
    23172312} 
    23182313