Thread overview
When do you use templates instead of CTFE?
Mar 24, 2012
Dan
Mar 24, 2012
Timon Gehr
Mar 25, 2012
Nick Sabalausky
Mar 25, 2012
Jonathan M Davis
Mar 25, 2012
James Miller
Mar 25, 2012
Jonathan M Davis
March 24, 2012
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
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
"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
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
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
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