2011-01-17 7 views
3

Ich versuche, eine Vorlage mit dem Namen Unconst zu schreiben, die etwas wie const(int) in int verwandeln würde; mit anderen Worten"Un-const" -ing ein Typ in D

Unconst!(const(int)) 

sollte

int 

ich herausfinden, kann es nicht geben, wie, aber ... alle kreativen Ideen für diese Arbeit zu machen?

(Erweiterung: Es wäre toll, wenn das Verfahren auch mit shared und anderen Typkonstruktoren erweitert werden könnte, um zu arbeiten.)

+2

Wenn Das ist nur eine Übung, großartig. Ansonsten, wenn Sie so etwas für den allgemeinen Gebrauch möchten, würde ich die eingebaute 'Unqual!()' Vorlage ausprobieren: http://digitalmars.com/d/2.0/phobos/std_traits.html#Unqual –

+0

@Justin : Haha danke. :) Tatsächlich erinnerte ich mich tatsächlich, dass es so etwas gab, und ich fand die Lösung, indem ich die Definition für 'Unqual' ansah. Es passt nicht genau zu meinen Bedürfnissen, weil ich nur einen Qualifier entfernen wollte, aber danke für den Link. :] – Mehrdad

Antwort

2

Es macht nichts, fand ich die Antwort mich ...

template Unconst(T) 
{ 
    static if (is(T U == const U)) 
     alias U Unconst; 
} 
Verwandte Themen