Jul 11, 2025

[c++] why consteval since we have constexpr?

Reference:
https://vsdmars.blogspot.com/2022/06/cc20-consteval-constexpr.html

Use case: https://godbolt.org/z/a7v15TrWK

#include <type_traits>

constexpr bool ConstExpr() {
    return std::is_constant_evaluated();
}

consteval bool ConstEval() {
    return std::is_constant_evaluated();
}

void Fun(bool b) {}

int main() {
  const bool cbool = ConstExpr(); // True
  ConstExpr(); // False; here we can't force ConstExpr() to run as const expression.
  bool cbool_2 = ConstEval(); // True
  ConstEval(); // True
  Fun(ConstEval());
}

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.