[May be a BUG] clang++ 14.0.0: "undefined reference error" for an inline consteval function. · Issue #54578 · llvm/llvm-project (original) (raw)
Navigation Menu
- Explore
- Pricing
Provide feedback
Saved searches
Use saved searches to filter your results more quickly
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