-
Notifications
You must be signed in to change notification settings - Fork 29
Labels
⬇️ affects: code (implementation)Affects implementation details of the codeAffects implementation details of the code💪 effort: small
Milestone
Description
Tried to update some old sources from 0.3.5 to the current release, but seems broken since https://github.com/aurora-opensource/au/releases/tag/0.4.0. Any ideas how to handle that?
In file included from <source>:2:0:
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh: In static member function 'static constexpr au::detail::StringConstant<1ul> au::detail::SignIfPositiveIs<false>::value()':
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:560:57: error: could not convert '(const char*)"-"' from 'const char*' to 'au::detail::StringConstant<1ul>'
static constexpr StringConstant<1> value() { return "-"; }
^
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh: In function 'constexpr uintmax_t au::detail::find_prime_factor(uintmax_t)':
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:2854:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (p * p > n) {
^
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh: At global scope:
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:5600:90: error: 'constexpr' is not allowed in declaration of friend template specialization 'au::AlwaysDivisibleQuantity<U, R> unblock_int_div<U, R>(au::Quantity<U, R>)'
friend constexpr AlwaysDivisibleQuantity<U, R> unblock_int_div<U, R>(Quantity<U, R> q);
^
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:5601:87: error: 'constexpr' is not allowed in declaration of friend template specialization 'au::AlwaysDivisibleQuantity<au::UnitProduct<>, R> unblock_int_div<R>(R)'
friend constexpr AlwaysDivisibleQuantity<UnitProductT<>, R> unblock_int_div<R>(R x);
^
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh: In instantiation of 'struct au::Prime<11ul>':
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:2981:65: required from 'struct au::detail::OrderByValue<au::Prime<7ul>, au::Prime<11ul> >'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:2355:8: required from 'struct au::LexicographicTotalOrdering<au::Prime<7ul>, au::Prime<11ul>, au::detail::OrderByValue>'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:2985:8: required from 'struct au::InOrderFor<au::Magnitude, au::Prime<7ul>, au::Prime<11ul> >'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:2512:8: required from 'struct au::PackProduct<au::Magnitude, au::Magnitude<au::Pow<au::Prime<7ul>, 1l> >, au::Magnitude<au::Prime<11ul> > >'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:2179:90: required by substitution of 'template<template<class ...> class Pack, class ... Ts> using PackProductT = au::detail::SimplifyBasePowersT<typename au::PackProduct<Pack, Ts>::type> [with Pack = au::Magnitude; Ts = {au::Magnitude<au::Pow<au::Prime<7ul>, 1l> >, au::Magnitude<au::Prime<11ul> >}]'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:3133:97: recursively required from 'struct au::detail::PrimeFactorization<77ul>'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:3133:97: required from 'struct au::detail::PrimeFactorization<231ul>'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:3119:65: required by substitution of 'template<long unsigned int N> using PrimeFactorizationT = typename au::detail::PrimeFactorization::type [with long unsigned int N = 231ul]'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:3140:43: required from 'constexpr auto au::mag() [with long unsigned int N = 231ul]'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:7258:56: required from here
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:2960:5: error: static assertion failed: Prime<N> requires that N is prime
static_assert(detail::is_prime(N), "Prime<N> requires that N is prime");
^
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh: In instantiation of 'struct au::Prime<463ul>':
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:2981:65: required from 'struct au::detail::OrderByValue<au::Prime<2ul>, au::Prime<463ul> >'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:2355:8: required from 'struct au::LexicographicTotalOrdering<au::Prime<2ul>, au::Prime<463ul>, au::detail::OrderByValue>'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:2985:8: required from 'struct au::InOrderFor<au::Magnitude, au::Prime<2ul>, au::Prime<463ul> >'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:2512:8: required from 'struct au::PackProduct<au::Magnitude, au::Magnitude<au::Pow<au::Prime<2ul>, 2l> >, au::Magnitude<au::Prime<463ul> > >'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:2179:90: required by substitution of 'template<template<class ...> class Pack, class ... Ts> using PackProductT = au::detail::SimplifyBasePowersT<typename au::PackProduct<Pack, Ts>::type> [with Pack = au::Magnitude; Ts = {au::Magnitude<au::Pow<au::Prime<2ul>, 2l> >, au::Magnitude<au::Prime<463ul> >}]'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:2937:52: required by substitution of 'template<class ... BPs> using MagProductT = au::PackProductT<au::Magnitude, BPs ...> [with BPs = {au::Magnitude<au::Pow<au::Prime<2ul>, 2l> >, au::detail::PrimeFactorization<463ul>::type}]'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:3133:97: required from 'struct au::detail::PrimeFactorization<1852ul>'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:3119:65: required by substitution of 'template<long unsigned int N> using PrimeFactorizationT = typename au::detail::PrimeFactorization::type [with long unsigned int N = 1852ul]'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:3140:43: required from 'constexpr auto au::mag() [with long unsigned int N = 1852ul]'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:7384:55: required from here
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:2960:5: error: static assertion failed: Prime<N> requires that N is prime
g++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
ASM generation compiler returned: 4
In file included from <source>:2:0:
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh: In static member function 'static constexpr au::detail::StringConstant<1ul> au::detail::SignIfPositiveIs<false>::value()':
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:560:57: error: could not convert '(const char*)"-"' from 'const char*' to 'au::detail::StringConstant<1ul>'
static constexpr StringConstant<1> value() { return "-"; }
^
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh: In function 'constexpr uintmax_t au::detail::find_prime_factor(uintmax_t)':
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:2854:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (p * p > n) {
^
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh: At global scope:
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:5600:90: error: 'constexpr' is not allowed in declaration of friend template specialization 'au::AlwaysDivisibleQuantity<U, R> unblock_int_div<U, R>(au::Quantity<U, R>)'
friend constexpr AlwaysDivisibleQuantity<U, R> unblock_int_div<U, R>(Quantity<U, R> q);
^
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:5601:87: error: 'constexpr' is not allowed in declaration of friend template specialization 'au::AlwaysDivisibleQuantity<au::UnitProduct<>, R> unblock_int_div<R>(R)'
friend constexpr AlwaysDivisibleQuantity<UnitProductT<>, R> unblock_int_div<R>(R x);
^
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh: In instantiation of 'struct au::Prime<11ul>':
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:2981:65: required from 'struct au::detail::OrderByValue<au::Prime<7ul>, au::Prime<11ul> >'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:2355:8: required from 'struct au::LexicographicTotalOrdering<au::Prime<7ul>, au::Prime<11ul>, au::detail::OrderByValue>'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:2985:8: required from 'struct au::InOrderFor<au::Magnitude, au::Prime<7ul>, au::Prime<11ul> >'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:2512:8: required from 'struct au::PackProduct<au::Magnitude, au::Magnitude<au::Pow<au::Prime<7ul>, 1l> >, au::Magnitude<au::Prime<11ul> > >'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:2179:90: required by substitution of 'template<template<class ...> class Pack, class ... Ts> using PackProductT = au::detail::SimplifyBasePowersT<typename au::PackProduct<Pack, Ts>::type> [with Pack = au::Magnitude; Ts = {au::Magnitude<au::Pow<au::Prime<7ul>, 1l> >, au::Magnitude<au::Prime<11ul> >}]'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:3133:97: recursively required from 'struct au::detail::PrimeFactorization<77ul>'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:3133:97: required from 'struct au::detail::PrimeFactorization<231ul>'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:3119:65: required by substitution of 'template<long unsigned int N> using PrimeFactorizationT = typename au::detail::PrimeFactorization::type [with long unsigned int N = 231ul]'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:3140:43: required from 'constexpr auto au::mag() [with long unsigned int N = 231ul]'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:7258:56: required from here
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:2960:5: error: static assertion failed: Prime<N> requires that N is prime
static_assert(detail::is_prime(N), "Prime<N> requires that N is prime");
^
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh: In instantiation of 'struct au::Prime<463ul>':
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:2981:65: required from 'struct au::detail::OrderByValue<au::Prime<2ul>, au::Prime<463ul> >'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:2355:8: required from 'struct au::LexicographicTotalOrdering<au::Prime<2ul>, au::Prime<463ul>, au::detail::OrderByValue>'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:2985:8: required from 'struct au::InOrderFor<au::Magnitude, au::Prime<2ul>, au::Prime<463ul> >'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:2512:8: required from 'struct au::PackProduct<au::Magnitude, au::Magnitude<au::Pow<au::Prime<2ul>, 2l> >, au::Magnitude<au::Prime<463ul> > >'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:2179:90: required by substitution of 'template<template<class ...> class Pack, class ... Ts> using PackProductT = au::detail::SimplifyBasePowersT<typename au::PackProduct<Pack, Ts>::type> [with Pack = au::Magnitude; Ts = {au::Magnitude<au::Pow<au::Prime<2ul>, 2l> >, au::Magnitude<au::Prime<463ul> >}]'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:2937:52: required by substitution of 'template<class ... BPs> using MagProductT = au::PackProductT<au::Magnitude, BPs ...> [with BPs = {au::Magnitude<au::Pow<au::Prime<2ul>, 2l> >, au::detail::PrimeFactorization<463ul>::type}]'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:3133:97: required from 'struct au::detail::PrimeFactorization<1852ul>'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:3119:65: required by substitution of 'template<long unsigned int N> using PrimeFactorizationT = typename au::detail::PrimeFactorization::type [with long unsigned int N = 1852ul]'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:3140:43: required from 'constexpr auto au::mag() [with long unsigned int N = 1852ul]'
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:7384:55: required from here
/app/aurora-opensource.github.io/au/0.4.0/au_all_units.hh:2960:5: error: static assertion failed: Prime<N> requires that N is prime
g++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
Execution build compiler returned: 4
Build failed
Examples on Goldbolt
Broken one using 0.4.0: https://godbolt.org/z/e3PcfefEx
Last working 0.3.5: https://godbolt.org/z/dd6cbn6a5
Metadata
Metadata
Assignees
Labels
⬇️ affects: code (implementation)Affects implementation details of the codeAffects implementation details of the code💪 effort: small