const Propagation

Julian Kranz via Digitalmars-d digitalmars-d at puremagic.com
Mon Dec 29 12:01:59 PST 2014


Thanks again for all answers :-).

On Monday, 29 December 2014 at 19:57:20 UTC, ketmar via 
Digitalmars-d wrote:
> On Mon, 29 Dec 2014 15:36:57 +0000
> Julian Kranz via Digitalmars-d <digitalmars-d at puremagic.com> 
> wrote:
>
>> Uuuhm, you're right, it works :-D I don't completely 
>> understand why the compiler does not require the function to 
>> be sonst any longer...
> we must get our big red letters and write somewhere: "template 
> is not
> XXX", where XXX is anything of function, method, struct, class, 
> etc. ;-)
>
> eponymous template syntax make people believe that `a()() 
> {...}` is a
> function, while it's not. this is template, and it has template 
> magic in
> in.
>
> this is not your fault though. this is not a fault of anyone 
> for that
> matter: it was designed to look like function, so it does. 
> alas, we
> can't have it looking as a function and not confusing newcomers 
> in the
> same time.
>
> eventually you will start to easily recognize such "non-XXX" 
> templates.
> i daresay that D is all about templates, so you have no other
> choice. ;-)

Well, of course you're right; but the thing is - does it really 
make sense to have a less powerful semantic for functions here? 
Does it help in any way? I mean, if something works just because 
you're using a template, it should maybe also work if you're 
not...


More information about the Digitalmars-d mailing list