Language
C++
Compiler
clang HEAD 19.0.0git (https://github.com/llvm/llvm-project.git 2aaec48d883b2550f053dc5c07b2400d725e77b5)
Options
Warnings
Don't Use Boost
C++2b(GNU)
no pedantic
$ clang++ prog.cc -Wall -Wextra -std=gnu++2b In file included from prog.cc:5:
./dpp.hpp:519:24: error: constexpr variable cannot have non-literal type 'const dpp<short, signed char>'
519 | static constexpr dpp eps{sig2_t(1), -detail::maxpow10e<T, exp2_t>()};
| ^
./dpp.hpp:760:40: note: in instantiation of template class 'dpp::dpp<short, signed char>' requested here
760 | decltype(std::begin(s), std::end(s), T())
| ^
./dpp.hpp:826:1: note: while substituting explicitly-specified template arguments into function template 'to_decimal'
826 | DPP_LITERAL__(16)
| ^
./dpp.hpp:823:10: note: expanded from macro 'DPP_LITERAL__'
823 | return to_decimal<d ## ID>(std::initializer_list<char>{c...});\
| ^
./dpp.hpp:519:24: note: incomplete type 'const dpp<short, signed char>' is not a literal type
519 | static constexpr dpp eps{sig2_t(1), -detail::maxpow10e<T, exp2_t>()};
| ^
./dpp.hpp:164:7: note: definition of 'dpp::dpp<short, signed char>' is not complete until the closing '}'
164 | class dpp
| ^
./dpp.hpp:520:24: error: constexpr variable cannot have non-literal type 'const dpp<short, signed char>'
520 | static constexpr dpp max{direct, mmax, emax};
| ^
./dpp.hpp:521:24: error: constexpr variable cannot have non-literal type 'const dpp<short, signed char>'
521 | static constexpr dpp min{direct, mmin, emax};
| ^
./dpp.hpp:826:1: error: no matching function for call to 'to_decimal'
826 | DPP_LITERAL__(16)
| ^~~~~~~~~~~~~~~~~
./dpp.hpp:823:10: note: expanded from macro 'DPP_LITERAL__'
823 | return to_decimal<d ## ID>(std::initializer_list<char>{c...});\
| ^~~~~~~~~~~~~~~~~~~
./dpp.hpp:759:16: note: candidate template ignored: substitution failure [with T = d16]
759 | constexpr auto to_decimal(auto const& s) noexcept ->
| ^
./dpp.hpp:679:13: note: candidate function template not viable: requires 2 arguments, but 1 was provided
679 | constexpr T to_decimal(std::input_iterator auto i,
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
680 | decltype(i) const end) noexcept
| ~~~~~~~~~~~~~~~~~~~~~
./dpp.hpp:519:24: error: constexpr variable cannot have non-literal type 'const dpp<intt<unsigned char, 3>, signed char>'
519 | static constexpr dpp eps{sig2_t(1), -detail::maxpow10e<T, exp2_t>()};
| ^
./dpp.hpp:760:40: note: in instantiation of template class 'dpp::dpp<intt::intt<unsigned char, 3>, signed char>' requested here
760 | decltype(std::begin(s), std::end(s), T())
| ^
./dpp.hpp:827:1: note: while substituting explicitly-specified template arguments into function template 'to_decimal'
827 | DPP_LITERAL__(24)
| ^
./dpp.hpp:823:10: note: expanded from macro 'DPP_LITERAL__'
823 | return to_decimal<d ## ID>(std::initializer_list<char>{c...});\
| ^
./dpp.hpp:519:24: note: incomplete type 'const dpp<intt<unsigned char, 3>, signed char>' is not a literal type
519 | static constexpr dpp eps{sig2_t(1), -detail::maxpow10e<T, exp2_t>()};
| ^
./dpp.hpp:164:7: note: definition of 'dpp::dpp<intt::intt<unsigned char, 3>, signed char>' is not complete until the closing '}'
164 | class dpp
| ^
./dpp.hpp:520:24: error: constexpr variable cannot have non-literal type 'const dpp<intt<unsigned char, 3>, signed char>'
520 | static constexpr dpp max{direct, mmax, emax};
| ^
./dpp.hpp:521:24: error: constexpr variable cannot have non-literal type 'const dpp<intt<unsigned char, 3>, signed char>'
521 | static constexpr dpp min{direct, mmin, emax};
| ^
./dpp.hpp:827:1: error: no matching function for call to 'to_decimal'
827 | DPP_LITERAL__(24)
| ^~~~~~~~~~~~~~~~~
./dpp.hpp:823:10: note: expanded from macro 'DPP_LITERAL__'
823 | return to_decimal<d ## ID>(std::initializer_list<char>{c...});\
| ^~~~~~~~~~~~~~~~~~~
./dpp.hpp:759:16: note: candidate template ignored: substitution failure [with T = d24]
759 | constexpr auto to_decimal(auto const& s) noexcept ->
| ^
./dpp.hpp:679:13: note: candidate function template not viable: requires 2 arguments, but 1 was provided
679 | constexpr T to_decimal(std::input_iterator auto i,
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
680 | decltype(i) const end) noexcept
| ~~~~~~~~~~~~~~~~~~~~~
./dpp.hpp:519:24: error: constexpr variable cannot have non-literal type 'const dpp<int, short>'
519 | static constexpr dpp eps{sig2_t(1), -detail::maxpow10e<T, exp2_t>()};
| ^
./dpp.hpp:760:40: note: in instantiation of template class 'dpp::dpp<int, short>' requested here
760 | decltype(std::begin(s), std::end(s), T())
| ^
./dpp.hpp:828:1: note: while substituting explicitly-specified template arguments into function template 'to_decimal'
828 | DPP_LITERAL__(32)
| ^
./dpp.hpp:823:10: note: expanded from macro 'DPP_LITERAL__'
823 | return to_decimal<d ## ID>(std::initializer_list<char>{c...});\
| ^
./dpp.hpp:519:24: note: incomplete type 'const dpp<int, short>' is not a literal type
519 | static constexpr dpp eps{sig2_t(1), -detail::maxpow10e<T, exp2_t>()};
| ^
./dpp.hpp:164:7: note: definition of 'dpp::dpp<int, short>' is not complete until the closing '}'
164 | class dpp
| ^
./dpp.hpp:520:24: error: constexpr variable cannot have non-literal type 'const dpp<int, short>'
520 | static constexpr dpp max{direct, mmax, emax};
| ^
./dpp.hpp:521:24: error: constexpr variable cannot have non-literal type 'const dpp<int, short>'
521 | static constexpr dpp min{direct, mmin, emax};
| ^
./dpp.hpp:828:1: error: no matching function for call to 'to_decimal'
828 | DPP_LITERAL__(32)
| ^~~~~~~~~~~~~~~~~
./dpp.hpp:823:10: note: expanded from macro 'DPP_LITERAL__'
823 | return to_decimal<d ## ID>(std::initializer_list<char>{c...});\
| ^~~~~~~~~~~~~~~~~~~
./dpp.hpp:759:16: note: candidate template ignored: substitution failure [with T = d32]
759 | constexpr auto to_decimal(auto const& s) noexcept ->
| ^
./dpp.hpp:679:13: note: candidate function template not viable: requires 2 arguments, but 1 was provided
679 | constexpr T to_decimal(std::input_iterator auto i,
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
680 | decltype(i) const end) noexcept
| ~~~~~~~~~~~~~~~~~~~~~
./dpp.hpp:519:24: error: constexpr variable cannot have non-literal type 'const dpp<intt<unsigned short, 3>, short>'
519 | static constexpr dpp eps{sig2_t(1), -detail::maxpow10e<T, exp2_t>()};
| ^
./dpp.hpp:760:40: note: in instantiation of template class 'dpp::dpp<intt::intt<unsigned short, 3>, short>' requested here
760 | decltype(std::begin(s), std::end(s), T())
| ^
./dpp.hpp:829:1: note: while substituting explicitly-specified template arguments into function template 'to_decimal'
829 | DPP_LITERAL__(48)
| ^
./dpp.hpp:823:10: note: expanded from macro 'DPP_LITERAL__'
823 | return to_decimal<d ## ID>(std::initializer_list<char>{c...});\
| ^
./dpp.hpp:519:24: note: incomplete type 'const dpp<intt<unsigned short, 3>, short>' is not a literal type
519 | static constexpr dpp eps{sig2_t(1), -detail::maxpow10e<T, exp2_t>()};
| ^
./dpp.hpp:164:7: note: definition of 'dpp::dpp<intt::intt<unsigned short, 3>, short>' is not complete until the closing '}'
164 | class dpp
| ^
./dpp.hpp:520:24: error: constexpr variable cannot have non-literal type 'const dpp<intt<unsigned short, 3>, short>'
520 | static constexpr dpp max{direct, mmax, emax};
| ^
./dpp.hpp:521:24: error: constexpr variable cannot have non-literal type 'const dpp<intt<unsigned short, 3>, short>'
521 | static constexpr dpp min{direct, mmin, emax};
| ^
./dpp.hpp:829:1: error: no matching function for call to 'to_decimal'
829 | DPP_LITERAL__(48)
| ^~~~~~~~~~~~~~~~~
./dpp.hpp:823:10: note: expanded from macro 'DPP_LITERAL__'
823 | return to_decimal<d ## ID>(std::initializer_list<char>{c...});\
| ^~~~~~~~~~~~~~~~~~~
./dpp.hpp:759:16: note: candidate template ignored: substitution failure [with T = d48]
759 | constexpr auto to_decimal(auto const& s) noexcept ->
| ^
./dpp.hpp:679:13: note: candidate function template not viable: requires 2 arguments, but 1 was provided
679 | constexpr T to_decimal(std::input_iterator auto i,
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
680 | decltype(i) const end) noexcept
| ~~~~~~~~~~~~~~~~~~~~~
./dpp.hpp:519:24: error: constexpr variable cannot have non-literal type 'const dpp<long, short>'
519 | static constexpr dpp eps{sig2_t(1), -detail::maxpow10e<T, exp2_t>()};
| ^
./dpp.hpp:760:40: note: in instantiation of template class 'dpp::dpp<long, short>' requested here
760 | decltype(std::begin(s), std::end(s), T())
| ^
./dpp.hpp:830:1: note: while substituting explicitly-specified template arguments into function template 'to_decimal'
830 | DPP_LITERAL__(64)
| ^
./dpp.hpp:823:10: note: expanded from macro 'DPP_LITERAL__'
823 | return to_decimal<d ## ID>(std::initializer_list<char>{c...});\
| ^
./dpp.hpp:519:24: note: incomplete type 'const dpp<long, short>' is not a literal type
519 | static constexpr dpp eps{sig2_t(1), -detail::maxpow10e<T, exp2_t>()};
| ^
./dpp.hpp:164:7: note: definition of 'dpp::dpp<long, short>' is not complete until the closing '}'
164 | class dpp
| ^
./dpp.hpp:520:24: error: constexpr variable cannot have non-literal type 'const dpp<long, short>'
520 | static constexpr dpp max{direct, mmax, emax};
| ^
./dpp.hpp:521:24: error: constexpr variable cannot have non-literal type 'const dpp<long, short>'
521 | static constexpr dpp min{direct, mmin, emax};
| ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
Exit Code:
1