digitalmars.D - Voldemort command structures
- Gor Gyolchanyan (57/57) Apr 22 2012 Voldemort types (coined by Andrei Alexandrescu) are types, which can't
- Andrei Alexandrescu (3/4) Apr 22 2012 Walter did.
- Gor Gyolchanyan (7/12) Apr 22 2012 Sorry. In any case this allows to effectively specify the parameters
Voldemort types (coined by Andrei Alexandrescu) are types, which can't be named. Like so: auto getMisteriousData(int i) { struct Mysterious { int i; } return Mysterious(i); } The only way to use mysterious structure is to either do this: auto m = getMysteriousData(12); or ReturnTypeOf!getMysteriousData m; Here's a very handsome use case of this setup: class Set(T) { public: auto opIndex(T datum_) { struct Command { public: alias _datum this; bool contains() property { return (_datum in _set) !is null; } void add() { _set._data[_datum] = false; } void remove() { _set._data.remove(_datum); } private: Set _set; T _datum; } } private: bool[T] _data; } this will allow you do use Set class like this: auto s = new Set!int; assert(!s[6].contains); s[6].add(); assert(s[6].contains); s[6].remove(); assert(!s[6].contains); This will get even better if the voldemort Command structure, returned by opIndex would include the same pattern, allowing to chain the parameters and actions in any way desirable. -- Bye, Gor Gyolchanyan.
Apr 22 2012
On 4/22/12 5:24 AM, Gor Gyolchanyan wrote:Voldemort types (coined by Andrei Alexandrescu)Walter did. Andrei
Apr 22 2012
Sorry. In any case this allows to effectively specify the parameters before the method being called. On Sun, Apr 22, 2012 at 5:23 PM, Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> wrote:On 4/22/12 5:24 AM, Gor Gyolchanyan wrote:-- Bye, Gor Gyolchanyan.Voldemort types (coined by Andrei Alexandrescu)Walter did. Andrei
Apr 22 2012