When do you use templates instead of CTFE?

2012-03-23 Thread Dan
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...





Re: When do you use templates instead of CTFE?

2012-03-24 Thread Timon Gehr

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)


Re: When do you use templates instead of CTFE?

2012-03-25 Thread Nick Sabalausky
"Timon Gehr"  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."




Re: When do you use templates instead of CTFE?

2012-03-25 Thread Jonathan M Davis
On Sunday, March 25, 2012 17:55:56 Nick Sabalausky wrote:
> "Timon Gehr"  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


Re: When do you use templates instead of CTFE?

2012-03-25 Thread James Miller
On 26 March 2012 12:35, Jonathan M Davis  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


Re: When do you use templates instead of CTFE?

2012-03-25 Thread Jonathan M Davis
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