4 ms·
This compiles in clang 21.1.2 with c++26. #include <cstdint> #include <print> constexpr uint8_t f(char ch) { return static_cast<uint8_t>(ch);
by lbhdc 1y ago
This compiles in clang 21.1.2 with c++26.
#include <cstdint>
#include <print>
constexpr uint8_t f(char ch) {
return static_cast<uint8_t>(ch);
}
int main() {
constexpr uint8_t r = f('a');
std::print("{}", r);
}
- psyclobe 1y agoTry consteval , constexpr is a hint. No static casts allowed in constexpr scopes that evaluate as constexpr in c++17 and above (works in c11). Could be wrong I am no expert…
- pjmlp 1y agoIt works perfectly fine with consteval, https://godbolt.org/z/sjGcsh3KP https://godbolt.org/z/sjGcsh3KP What is possible in constexpr contexts has been improving in each revision, the end goal is to support the whole language, eventually. Naturally introducing everything at once would be too hard in a language with such a big ecosystem like C++.
- deleted 1y ago[deleted]
- psyclobe 1y agoGood to know thanks for the correction