- Notifications
You must be signed in to change notification settings - Fork14.5k
Closed
Description
inline consteval unsigned char operator""_UC(const unsigned long long n){ return static_cast<unsigned char>(n);}inline consteval char f1(auto const octet){ return char(octet >> 4_UC);}inline constexpr char f2(auto const octet){ return char(octet >> 4_UC);}int main(){ auto c1 = f1('A'); // ok auto c2 = f2('A'); // error return c1 + c2;}
Compiled with:clang++-14 -std=c++20 -stdlib=libc++
, and the error message is:
undefined reference to `operator"" _UC(unsigned long long)'
See online demo:https://godbolt.org/z/WarbWYcfP
StackOverflow question link:https://stackoverflow.com/questions/71634835/why-does-consteval-not-behave-as-expected