[cfe-dev] constexpr with builtin

fil fil at pobox.com
Mon Sep 9 19:20:00 PDT 2013


Sebastian Redl wrote
> I believe the simple test that makes the code above not compile does not
> evaluate potential results of conditional expressions: only one branch
> needs to be a constant expression, and the test does not reason about
> "value == value" always taking one branch. So the version with the
> tautological test will compile by itself, but you'll never be able to use
> it in a constexpr context, versus the simple function above is recognized
> as not being constexpr.
> 
> Making built-in functions with simple arithmetic meanings constexpr is a
> different issue.

Thanks for the reply. Two questions:

1. know of a way to use builtin functions (like clz) in a constexpr context?
I am figuring I need to re-implement it, no way to use the CPU instruction
at compile time (?)
2. why does a branch allow it to be compiled? I would have thought that the
compiler would inspect both branches and insist they both be a const
friendly.

So, I should expect the branched version compile to fail if I actually use
it in a constexpr context? Should have tried that..

Regards, Fil.




--
View this message in context: http://clang-developers.42468.n3.nabble.com/constexpr-with-builtin-tp4034336p4034354.html
Sent from the Clang Developers mailing list archive at Nabble.com.



More information about the cfe-dev mailing list