www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Why if(__ctfe)?

reply "Ilya Yaroshenko" <ilyayaroshenko gmail.com> writes:
Why not "static if(__ctfe)" ?
Sep 16 2014
parent reply "Adam D. Ruppe" <destructionator gmail.com> writes:
On Tuesday, 16 September 2014 at 13:11:50 UTC, Ilya Yaroshenko 
wrote:
 Why not "static if(__ctfe)" ?
ctfe is a runtime condition. The function has the same code when run at compile time, it is just being run in a different environment.
Sep 16 2014
parent reply "Rene Zwanenburg" <renezwanenburg gmail.com> writes:
On Tuesday, 16 September 2014 at 13:17:28 UTC, Adam D. Ruppe 
wrote:
 On Tuesday, 16 September 2014 at 13:11:50 UTC, Ilya Yaroshenko 
 wrote:
 Why not "static if(__ctfe)" ?
ctfe is a runtime condition. The function has the same code when run at compile time, it is just being run in a different environment.
Note that if(__ctfe) does not incur a runtime performance penalty. Even in debug builds will the branch be removed.
Sep 16 2014
parent "Ilya Yaroshenko" <ilyayaroshenko gmail.com> writes:
On Tuesday, 16 September 2014 at 13:28:17 UTC, Rene Zwanenburg 
wrote:
 On Tuesday, 16 September 2014 at 13:17:28 UTC, Adam D. Ruppe 
 wrote:
 On Tuesday, 16 September 2014 at 13:11:50 UTC, Ilya Yaroshenko 
 wrote:
 Why not "static if(__ctfe)" ?
ctfe is a runtime condition. The function has the same code when run at compile time, it is just being run in a different environment.
Note that if(__ctfe) does not incur a runtime performance penalty. Even in debug builds will the branch be removed.
It is a kind of magic ;)
Sep 16 2014