View mode: basic / threaded / horizontal-split · Log in · Help
March 24, 2012
When do you use templates instead of CTFE?
Since there is CTFE, I keep running into, do I really need this 
as a template parameter?  Why not put this in a constructor.  And 
so on...
March 24, 2012
Re: When do you use templates instead of CTFE?
On 03/24/2012 07:42 AM, Dan wrote:
> Since there is CTFE, I keep running into, do I really need this as a
> template parameter? Why not put this in a constructor. And so on...
>
>

You use templates in combination with CTFE if

- You have to perform computations on types.
- You want template instantiation syntax.
  (If this is the only reason, the template will just wrap a CTFE 
computation)
March 25, 2012
Re: When do you use templates instead of CTFE?
"Timon Gehr" <timon.gehr@gmx.ch> wrote in message 
news:jkkbqv$2pvu$3@digitalmars.com...
> On 03/24/2012 07:42 AM, Dan wrote:
>> Since there is CTFE, I keep running into, do I really need this as a
>> template parameter? Why not put this in a constructor. And so on...
>>
>>
>
> You use templates in combination with CTFE if
>
> - You have to perform computations on types.
> - You want template instantiation syntax.
>   (If this is the only reason, the template will just wrap a CTFE 
> computation)

Yea, the general rule of thumb is "If you can do it with CTFE, then do so, 
otherwise use templates."
March 25, 2012
Re: When do you use templates instead of CTFE?
On Sunday, March 25, 2012 17:55:56 Nick Sabalausky wrote:
> "Timon Gehr" <timon.gehr@gmx.ch> wrote in message
> news:jkkbqv$2pvu$3@digitalmars.com...
> 
> > On 03/24/2012 07:42 AM, Dan wrote:
> >> Since there is CTFE, I keep running into, do I really need this as a
> >> template parameter? Why not put this in a constructor. And so on...
> > 
> > You use templates in combination with CTFE if
> > 
> > - You have to perform computations on types.
> > - You want template instantiation syntax.
> > 
> >   (If this is the only reason, the template will just wrap a CTFE
> > 
> > computation)
> 
> Yea, the general rule of thumb is "If you can do it with CTFE, then do so,
> otherwise use templates."

Generally, you end up having to use templates for stuff that operates on 
types, whereas CTFE works for stuff that can be normal functions.

- Jonathan M Davis
March 25, 2012
Re: When do you use templates instead of CTFE?
On 26 March 2012 12:35, Jonathan M Davis <jmdavisProg@gmx.com> wrote:
> On Sunday, March 25, 2012 17:55:56 Nick Sabalausky wrote:
>> Yea, the general rule of thumb is "If you can do it with CTFE, then do so,
>> otherwise use templates."
>
> Generally, you end up having to use templates for stuff that operates on
> types, whereas CTFE works for stuff that can be normal functions.
>
> - Jonathan M Davis

Often I end up using the same function in CTFE and runtime.

--
James Miller
March 25, 2012
Re: When do you use templates instead of CTFE?
On Monday, March 26, 2012 12:39:36 James Miller wrote:
> Often I end up using the same function in CTFE and runtime.

That's pretty much the idea behind CTFE in the first place.

- Jonathan M Davis
Top | Discussion index | About this forum | D home