January 04, 2013
I've a tutorial on templates here:

https://github.com/PhilippeSigaud/D-templates-tutorial

For the past few days, I transformed the LaTeX files into markdown files, which can then generate pdf, epub and html. Everything works well, that's cool [1]. I'm following Walter's advice from a year ago to provide text for people using e-readers/tablets.

This post is not really an announce :) I'm correcting bugs & mistakes and seeing the good work the developers put into DMD. Several things that were flagged as impossible or buggy when I wrote the tutorial a year ago are now possible. Many other things have changed on the template front in 2012 and I need help to list them all, so as to update my doc.

So, here is my own small list:

- is(Type name = A!(Args), Args...) now exists. The Args... part is new.
- the new (a,b) => a+b syntax was introduced
- the eponymous trick works even when other non-eponymous members are defined
- error reporting got better
- CTFE got better.
- auto ref?
- __ctfe. I think it arrived just when I wrote the doc. I've now used it and it works great!
- UFCS: not a template feature per se, but quite useful in conjunction with templates.
- UDA. ditto, except I know zilch about them. But, type & value manipulation at compile-time, them I know.


Other changes I'm not sure and that should be tested:

- any change on __LINE__ and __FILE__?
- any change for mixin templates?


Do any of you see missing feature/modification that happened in 2012(-2013)?


Philippe

[1] I'm using pandoc to convert .md into .pdf, .epub, .mobi and .html and it works quite well. Also, its extended markdown syntax is nice. Here is an example of a real-world Haskell executable...

January 05, 2013
> So, here is my own small list:
>
> - is(Type name = A!(Args), Args...) now exists. The Args... part is new.
> - the new (a,b) => a+b syntax was introduced
> - the eponymous trick works even when other non-eponymous members are defined
> - error reporting got better
> - CTFE got better.
> - auto ref?
> - __ctfe. I think it arrived just when I wrote the doc. I've now used it and it works great!
> - UFCS: not a template feature per se, but quite useful in conjunction with templates.
> - UDA. ditto, except I know zilch about them. But, type & value manipulation at compile-time, them I know.


No one can help me complete my list? Has any other thing changed in template-land in 2012?

January 05, 2013
05-Jan-2013 22:58, Philippe Sigaud пишет:
>
>> So, here is my own small list:
>>
>> - is(Type name = A!(Args), Args...) now exists. The Args... part is new.
>> - the new (a,b) => a+b syntax was introduced
>> - the eponymous trick works even when other non-eponymous members are
>> defined
>> - error reporting got better
>> - CTFE got better.
>> - auto ref?
>> - __ctfe. I think it arrived just when I wrote the doc. I've now used
>> it and it works great!
>> - UFCS: not a template feature per se, but quite useful in conjunction
>> with templates.
>> - UDA. ditto, except I know zilch about them. But, type & value
>> manipulation at compile-time, them I know.
>
>
> No one can help me complete my list? Has any other thing changed in
> template-land in 2012?
>

Some new traits happened.
Not there is a way to peek at function parameter identifiers (!):
http://dlang.org/phobos/std_traits.html#.ParameterIdentifierTuple
+ something else I might forgot in std.traits, it's worth revisiting
+ isPOD in compiler's __traits


-- 
Dmitry Olshansky
January 05, 2013
06-Jan-2013 00:32, Dmitry Olshansky пишет:
> 05-Jan-2013 22:58, Philippe Sigaud пишет:
>>
>>> So, here is my own small list:
>>>
>>> - is(Type name = A!(Args), Args...) now exists. The Args... part is new.
>>> - the new (a,b) => a+b syntax was introduced
>>> - the eponymous trick works even when other non-eponymous members are
>>> defined
>>> - error reporting got better
>>> - CTFE got better.
>>> - auto ref?
>>> - __ctfe. I think it arrived just when I wrote the doc. I've now used
>>> it and it works great!
>>> - UFCS: not a template feature per se, but quite useful in conjunction
>>> with templates.
>>> - UDA. ditto, except I know zilch about them. But, type & value
>>> manipulation at compile-time, them I know.
>>
>>
>> No one can help me complete my list? Has any other thing changed in
>> template-land in 2012?
>>
>
> Some new traits happened.
> Not there is a way to peek at function parameter identifiers (!):

s/Not/Now

> http://dlang.org/phobos/std_traits.html#.ParameterIdentifierTuple
> + something else I might forgot in std.traits, it's worth revisiting
> + isPOD in compiler's __traits
>


-- 
Dmitry Olshansky
January 05, 2013
>
> Some new traits happened.
>

I'll have a look.


> Not there is a way to peek at function parameter identifiers (!): http://dlang.org/phobos/std_**traits.html#.**ParameterIdentifierTuple<http://dlang.org/phobos/std_traits.html#.ParameterIdentifierTuple>


I cannot find it.

Hmm, Jacob linked here:

http://dlang.org/traits.html#parameterNames

I cannot find it also. Undocumented?


>
> + something else I might forgot in std.traits, it's worth revisiting
>

I don't think I wrote something on std.traits per se (I dealt with
__traits), but I'll see.


> + isPOD in compiler's __traits


Ah yes. This one is quite new.


January 06, 2013
On 1/5/13, Philippe Sigaud <philippe.sigaud@gmail.com> wrote:
>> + isPOD in compiler's __traits
> Ah yes. This one is quite new.

Don't use this yet. It's in 2.061 in a half-unusable state and no clear definition of what a POD is. Everything about that trait is uncertain at this time.
January 06, 2013
On Sun, Jan 6, 2013 at 5:45 AM, Andrej Mitrovic <andrej.mitrovich@gmail.com>wrote:

> On 1/5/13, Philippe Sigaud <philippe.sigaud@gmail.com> wrote:
> >> + isPOD in compiler's __traits
> > Ah yes. This one is quite new.
>
> Don't use this yet. It's in 2.061 in a half-unusable state and no clear definition of what a POD is. Everything about that trait is uncertain at this time.
>

Duly noted. I saw a pull pass a few days ago (after 2.061), I thought that
was it.


January 06, 2013
06-Jan-2013 02:12, Philippe Sigaud пишет:
>     Some new traits happened.
>
>
> I'll have a look.
>
>     Not there is a way to peek at function parameter identifiers (!):
>     http://dlang.org/phobos/std___traits.html#.__ParameterIdentifierTuple <http://dlang.org/phobos/std_traits.html#.ParameterIdentifierTuple>
>
>
> I cannot find it.

The link is botched and I dunno why. The usual ctrl+F (command+F) ParameterIndentifier on std.tratis page reveals it for me.

>
> Hmm, Jacob linked here:
>
> http://dlang.org/traits.html#parameterNames
>
> I cannot find it also. Undocumented?
>
>
>     + something else I might forgot in std.traits, it's worth revisiting
>
>
> I don't think I wrote something on std.traits per se (I dealt with
> __traits), but I'll see.
>
>     + isPOD in compiler's __traits
>
>
> Ah yes. This one is quite new.


-- 
Dmitry Olshansky
January 06, 2013
Dmitry:
> The link is botched and I dunno why. The usual ctrl+F (command+F)
ParameterIndentifier on std.tratis page reveals it for me.

I swear I did that! OK, found it, and also ParameterDefaultValues.


Top | Discussion index | About this forum | D home