Folding similar templates into one
Meta
jared771 at gmail.com
Fri Jun 28 15:40:13 PDT 2013
On Friday, 28 June 2013 at 13:25:54 UTC, monarch_dodra wrote:
> Just because the arguments are known 99% of the time at compile
> time, doesn't mean they should be parameters. Parameters
> shouldn't be used to just mean "compile time" anyways, but
> *specifically* to create different versions of a function or
> code, which in this case, is not the case at all.
That was probably the idea when templates were conceived of for
C++, but I think their usage has evolved far beyond that now,
especially in D. With the advent of CTFE, there's an enormous
amount that we can do at compile-time, a lot of which isn't
strictly related to characterizing a function/struct/class/etc.
on a type. Though I suppose it could be argued that with CTFE,
doing compile-time template stuff isn't as important.
> Besides, there are scenarios where you could pass these as
> runtime parameters from higher functions, if you want the
> exception to "look" like it came from a higher level call.
I was just using assertNotThrown as an example to illustrate my
point.
> Making these parameters would mean that *any* function that
> handles lines or filenames would have to be parameterized on
> that.
I don't think there's anything stopping you from passing __FILE__
and __LINE__ as template parameters to some functions, and as
function parameters to other functions.
More information about the Digitalmars-d
mailing list