| Thread overview | |||||
|---|---|---|---|---|---|
|
April 22, 2012 Voldemort command structures | ||||
|---|---|---|---|---|
| ||||
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.
| ||||
April 22, 2012 Re: Voldemort command structures | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Gor Gyolchanyan | On 4/22/12 5:24 AM, Gor Gyolchanyan wrote:
> Voldemort types (coined by Andrei Alexandrescu)
Walter did.
Andrei
| |||
April 22, 2012 Re: Voldemort command structures | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Andrei Alexandrescu | 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: >> >> Voldemort types (coined by Andrei Alexandrescu) > > > Walter did. > > Andrei > -- Bye, Gor Gyolchanyan. | |||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply