Rant after trying Rust a bit
Jacob Carlborg via Digitalmars-d
digitalmars-d at puremagic.com
Wed Jul 22 23:56:21 PDT 2015
On 2015-07-22 21:52, Alex Parrill wrote:
> You can make a `conformsToSomeInterface!T` template, and use `static
> assert`. D ranges, and the upcoming std.allocator, already use this sort
> of 'interfaces without polymorphism'.
>
> Ex. `static assert(isInputRange!(MyCoolRange));`
I would be a lot more cleaner to be able to do this:
void foo (T : MyCoolRange) (T range);
Or just:
void foo (MyCoolRange range);
> Most of what macros in C were used for are now done with templates,
> static if, etc. (I don't know how Rust's macros work). Tools could
> theoretically execute `mixin`, but it effectively requires a D
> interpreter. A library to do that would be really nice.
Macros in C have nothing to do with macros in Rust, which are called AST
macros or syntax macros. It's unfortunate that they use the same word,
"macro".
If D macros you could do something like this:
auto person = Person.where(e => e.name == 'Foo');
Where the lambda would be translated do an SQL string and performs a
query in a database.
--
/Jacob Carlborg
More information about the Digitalmars-d
mailing list