Aussie AI
consteval functions
-
Book Excerpt from "Generative AI in C++"
-
by David Spuler, Ph.D.
consteval functions
Use consteval for functions that are always constant.
A consteval function is strictly declared
so that every invocation of the function must return a compile-time constant.
The consteval keyword is a subset of constexpr functions (and also implies inline on a function).
Although a constexpr function is constant if its arguments are constant,
it can also return a dynamic return value for non-constant arguments.
When would you use consteval versus constexpr functions?
I mean, when you ask your boss to make you a cup of coffee,
do you like to ask politely or do you issue commands?
Supposedly constexpr is optional for the C++ compiler,
whereas consteval is mandating compile-time evaluation.
Personally, I can't see much difference in general usage, since the compiler will
probably optimize a constexpr function at compile-time if it's capable enough.
Hence, for regular functions
I don't see much benefit to consteval over constexpr.
There are some complicated places in C++ where it helps to guarantee
a compile-time constant, such as reflexive types and other tricks in compile-time template usage.
|
• Next: • Up: Table of Contents |
|
The new AI programming book by Aussie AI co-founders:
Get your copy from Amazon: Generative AI in C++ |