On Mon, 29 Dec 2014 20:07:08 +0000 evenex via Digitalmars-d <[email protected]> wrote:
> > Is that really cool? I mean, is wise to have the compiler treat > > templates and non-templates differently? C++ has tons of such > > inconsistencies which is the main reason I don't really like > > C++... > > Well, it is reasonable in light of the fact that templates > require the source to be available (which guarantees the compiler > can analyze it) while regular functions might not be (e.g. if > they are in a precompiled library). In this sense, making a > function into a zero-param template is equivalent to telling the > compiler that it is free to analyze the source. > That being said, I sympathize with the sentiment - it would be > more consistent if all functions whose source was available could > be auto-annotated. I'm not sure what the technical impediments to > this might be, though. Still, adding an extra () to the function > signature is not too inconvenient, and carries some additional > benefits. > I find annotations and qualifiers to be part of the "ugly" side > of D, and try to avoid using them (took me awhile to figure out > that C++ style const-correctness doesn't work in D, due to > transitivity) but I'm afraid don't know enough about compilers to > make a more informed judgement than "that's just how it is." > Maybe someone with more experience in this area could weigh in? you get it right. ;-)
signature.asc
Description: PGP signature
