View mode: basic / threaded / horizontal-split · Log in · Help
January 04, 2013
Template news (2012+)
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
Re: Template news (2012+)
> 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
Re: Template news (2012+)
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
Re: Template news (2012+)
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
Re: Template news (2012+)
>
> 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
Re: Template news (2012+)
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
Re: Template news (2012+)
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
Re: Template news (2012+)
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
Re: Template news (2012+)
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