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++ |