Untitled diff

Created Diff never expires
148 removals
195 lines
50 additions
99 lines
https://raw.githubusercontent.com/nholthaus/units/v3.x/include/units.h:45:9: warning: #pragma once in main file [-Wpragma-once-outside-header]
https://raw.githubusercontent.com/johelegp/units/strong_type_alias/include/units.h:45:9: warning: #pragma once in main file [-Wpragma-once-outside-header]


#pragma once
#pragma once


^
^


<source>:7:33: error: no viable conversion from 'unit<unit_conversion<[...], dimension_t<dim<[...], ratio<1, [...]>>>>>' to 'unit<unit_conversion<[...], dimension_t<dim<[...], ratio<__safe_multiply<(ratio<1, 1>::num / __gcd1), (ratio<2, 1>::num / __gcd2)>::value aka 2, [...]>>>>>'
<source>:7:27: error: no viable conversion from 'unit<units::length::meter>' to 'unit<units::area::square_meter>'


units::area::square_meter_t area = 42_m; // Incompatible assignment.
units::square_meter_t area = 42_m; // Incompatible assignment.


^ ~~~~
^ ~~~~


https://raw.githubusercontent.com/nholthaus/units/v3.x/include/units.h:2090:13: note: candidate constructor not viable: no known conversion from 'length::meter_t' (aka 'unit<unit_conversion<ratio<1>, units::dimension_t<units::dim<units::dimension::length_tag, std::ratio<1, 1> > > > >') to 'const units::unit<units::unit_conversion<std::ratio<1, 1>, units::dimension_t<units::dim<units::dimension::length_tag, std::ratio<2, 1> > >, std::ratio<0, 1>, std::ratio<0, 1> >, double, linear_scale> &' for 1st argument
https://raw.githubusercontent.com/johelegp/units/strong_type_alias/include/units.h:2139:13: note: candidate constructor not viable: no known conversion from 'length::meter_t' (aka 'unit<units::length::meters>') to 'const units::unit<units::area::square_meters, double, linear_scale> &' for 1st argument


constexpr unit(const unit&) = default;
constexpr unit(const unit&) = default;


^
^


https://raw.githubusercontent.com/nholthaus/units/v3.x/include/units.h:2113:13: note: candidate template ignored: requirement 'traits::is_dimensionless_unit<unit_conversion<ratio<1, 1>, dimension_t<dim<length_tag, ratio<2, 1> > >, ratio<0, 1>, ratio<0, 1> > >::value' was not satisfied [with Ty = units::unit<units::unit_conversion<std::ratio<1, 1>, units::dimension_t<units::dim<units::dimension::length_tag, std::ratio<1, 1> > >, std::ratio<0, 1>, std::ratio<0, 1> >, double, linear_scale>]
https://raw.githubusercontent.com/johelegp/units/strong_type_alias/include/units.h:2162:13: note: candidate template ignored: requirement 'traits::is_dimensionless_unit<square_meters>::value' was not satisfied [with Ty = units::unit<units::length::meters, double, linear_scale>]


constexpr unit(const Ty value) noexcept : nls(value)
constexpr unit(const Ty value) noexcept : nls(value)


^
^


https://raw.githubusercontent.com/nholthaus/units/v3.x/include/units.h:2124:13: note: candidate template ignored: could not match 'duration' against 'unit'
https://raw.githubusercontent.com/johelegp/units/strong_type_alias/include/units.h:2173:13: note: candidate template ignored: could not match 'duration' against 'unit'


constexpr unit(const std::chrono::duration<Rep, Period>& value) noexcept
constexpr unit(const std::chrono::duration<Rep, Period>& value) noexcept


^
^


https://raw.githubusercontent.com/nholthaus/units/v3.x/include/units.h:2137:13: note: candidate template ignored: requirement 'detail::is_non_lossy_convertible_unit<unit<units::unit_conversion<std::ratio<1, 1>, units::dimension_t<units::dim<units::dimension::length_tag, std::ratio<1, 1> > >, std::ratio<0, 1>, std::ratio<0, 1> >, double, linear_scale>, units::unit<units::unit_conversion<std::ratio<1, 1>, units::dimension_t<units::dim<units::dimension::length_tag, std::ratio<2, 1> > >, std::ratio<0, 1>, std::ratio<0, 1> >, double, linear_scale> >' was not satisfied [with UnitTypeRhs = units::unit_conversion<std::ratio<1, 1>, units::dimension_t<units::dim<units::dimension::length_tag, std::ratio<1, 1> > >, std::ratio<0, 1>, std::ratio<0, 1> >, Ty = double, NlsRhs = linear_scale]
https://raw.githubusercontent.com/johelegp/units/strong_type_alias/include/units.h:2186:13: note: candidate template ignored: requirement 'detail::is_non_lossy_convertible_unit<unit<units::length::meters, double, linear_scale>, units::unit<units::area::square_meters, double, linear_scale> >' was not satisfied [with UnitTypeRhs = units::length::meters, Ty = double, NlsRhs = linear_scale]


constexpr unit(const unit<UnitTypeRhs, Ty, NlsRhs>& rhs) noexcept
constexpr unit(const unit<UnitTypeRhs, Ty, NlsRhs>& rhs) noexcept


^
^


https://raw.githubusercontent.com/nholthaus/units/v3.x/include/units.h:2311:13: note: candidate template ignored: requirement 'traits::is_dimensionless_unit<unit_conversion<ratio<1, 1>, dimension_t<dim<length_tag, ratio<1, 1> > >, ratio<0, 1>, ratio<0, 1> > >::value' was not satisfied [with Ty = units::unit<units::unit_conversion<std::ratio<1, 1>, units::dimension_t<units::dim<units::dimension::length_tag, std::ratio<2, 1> > >, std::ratio<0, 1>, std::ratio<0, 1> >, double, linear_scale>]
https://raw.githubusercontent.com/johelegp/units/strong_type_alias/include/units.h:2360:13: note: candidate template ignored: requirement 'traits::is_dimensionless_unit<meters>::value' was not satisfied [with Ty = units::unit<units::area::square_meters, double, linear_scale>]


constexpr operator Ty() const noexcept
constexpr operator Ty() const noexcept


^
^


https://raw.githubusercontent.com/nholthaus/units/v3.x/include/units.h:2336:13: note: candidate template ignored: could not match 'duration' against 'unit'
https://raw.githubusercontent.com/johelegp/units/strong_type_alias/include/units.h:2385:13: note: candidate template ignored: could not match 'duration' against 'unit'


constexpr operator std::chrono::duration<Rep, Period>() const noexcept
constexpr operator std::chrono::duration<Rep, Period>() const noexcept


^
^


<source>:8:25: error: invalid operands to binary expression ('length::meter_t' (aka 'unit<unit_conversion<ratio<1>, units::dimension_t<units::dim<units::dimension::length_tag, std::ratio<1, 1> > > > >') and 'time::second_t' (aka 'unit<unit_conversion<ratio<1>, units::dimension_t<units::dim<units::dimension::time_tag, std::ratio<1, 1> > > > >'))
<source>:8:25: error: invalid operands to binary expression ('length::meter_t' (aka 'unit<units::length::meters>') and 'time::second_t' (aka 'unit<units::time::seconds>'))


auto velocity = 3_m + 4_s; // Incompatible addition.
auto velocity = 3_m + 4_s; // Incompatible addition.


~~~ ^ ~~~
~~~ ^ ~~~


/opt/compiler-explorer/gcc-7.2.0/lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/7.2.0/bits/stl_bvector.h:297:3: note: candidate function not viable: no known conversion from 'length::meter_t' (aka 'unit<unit_conversion<ratio<1>, units::dimension_t<units::dim<units::dimension::length_tag, std::ratio<1, 1> > > > >') to 'std::ptrdiff_t' (aka 'long') for 1st argument
https://raw.githubusercontent.com/johelegp/units/strong_type_alias/include/units.h:2842:57: note: candidate template ignored: requirement 'traits::is_convertible_unit_v<units::unit<units::length::meters, double, linear_scale>, units::unit<units::time::seconds, double, linear_scale> >' was not satisfied [with UnitTypeLhs = units::unit<units::length::meters, double, linear_scale>, UnitTypeRhs = units::unit<units::time::seconds, double, linear_scale>]

operator+(ptrdiff_t __n, const _Bit_iterator& __x)

^

/opt/compiler-explorer/gcc-7.2.0/lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/7.2.0/bits/stl_bvector.h:387:3: note: candidate function not viable: no known conversion from 'length::meter_t' (aka 'unit<unit_conversion<ratio<1>, units::dimension_t<units::dim<units::dimension::length_tag, std::ratio<1, 1> > > > >') to 'std::ptrdiff_t' (aka 'long') for 1st argument

operator+(ptrdiff_t __n, const _Bit_const_iterator& __x)

^

https://raw.githubusercontent.com/nholthaus/units/v3.x/include/units.h:2780:57: note: candidate template ignored: requirement 'traits::is_convertible_unit_v<units::unit<units::unit_conversion<std::ratio<1, 1>, units::dimension_t<units::dim<units::dimension::length_tag, std::ratio<1, 1> > >, std::ratio<0, 1>, std::ratio<0, 1> >, double, linear_scale>, units::unit<units::unit_conversion<std::ratio<1, 1>, units::dimension_t<units::dim<units::dimension::time_tag, std::ratio<1, 1> > >, std::ratio<0, 1>, std::ratio<0, 1> >, double, linear_scale> >' was not satisfied [with UnitTypeLhs = units::unit<units::unit_conversion<std::ratio<1, 1>, units::dimension_t<units::dim<units::dimension::length_tag, std::ratio<1, 1> > >, std::ratio<0, 1>, std::ratio<0, 1> >, double, linear_scale>, UnitTypeRhs = units::unit<units::unit_conversion<std::ratio<1, 1>, units::dimension_t<units::dim<units::dimension::time_tag, std::ratio<1, 1> > >, std::ratio<0, 1>, std::ratio<0, 1> >, double, linear_scale>]


constexpr std::common_type_t<UnitTypeLhs, UnitTypeRhs> operator+(
constexpr std::common_type_t<UnitTypeLhs, UnitTypeRhs> operator+(


^
^


https://raw.githubusercontent.com/nholthaus/units/v3.x/include/units.h:2793:99: note: candidate template ignored: requirement 'std::is_arithmetic_v<units::unit<units::unit_conversion<std::ratio<1, 1>, units::dimension_t<units::dim<units::dimension::time_tag, std::ratio<1, 1> > >, std::ratio<0, 1>, std::ratio<0, 1> >, double, linear_scale> >' was not satisfied [with UnitTypeLhs = units::unit<units::unit_conversion<std::ratio<1, 1>, units::dimension_t<units::dim<units::dimension::length_tag, std::ratio<1, 1> > >, std::ratio<0, 1>, std::ratio<0, 1> >, double, linear_scale>, T = units::unit<units::unit_conversion<std::ratio<1, 1>, units::dimension_t<units::dim<units::dimension::time_tag, std::ratio<1, 1> > >, std::ratio<0, 1>, std::ratio<0, 1> >, double, linear_scale>]
https://raw.githubusercontent.com/johelegp/units/strong_type_alias/include/units.h:2855:99: note: candidate template ignored: requirement 'std::is_arithmetic_v<units::unit<units::time::seconds, double, linear_scale> >' was not satisfied [with UnitTypeLhs = units::unit<units::length::meters, double, linear_scale>, T = units::unit<units::time::seconds, double, linear_scale>]


constexpr unit<dimensionless_unit, std::common_type_t<typename UnitTypeLhs::underlying_type, T>> operator+(
constexpr unit<dimensionless_unit, std::common_type_t<typename UnitTypeLhs::underlying_type, T>> operator+(


^
^


https://raw.githubusercontent.com/nholthaus/units/v3.x/include/units.h:2806:99: note: candidate template ignored: requirement 'std::is_arithmetic_v<units::unit<units::unit_conversion<std::ratio<1, 1>, units::dimension_t<units::dim<units::dimension::length_tag, std::ratio<1, 1> > >, std::ratio<0, 1>, std::ratio<0, 1> >, double, linear_scale> >' was not satisfied [with UnitTypeRhs = units::unit<units::unit_conversion<std::ratio<1, 1>, units::dimension_t<units::dim<units::dimension::time_tag, std::ratio<1, 1> > >, std::ratio<0, 1>, std::ratio<0, 1> >, double, linear_scale>, T = units::unit<units::unit_conversion<std::ratio<1, 1>, units::dimension_t<units::dim<units::dimension::length_tag, std::ratio<1, 1> > >, std::ratio<0, 1>, std::ratio<0, 1> >, double, linear_scale>]
https://raw.githubusercontent.com/johelegp/units/strong_type_alias/include/units.h:2868:99: note: candidate template ignored: requirement 'std::is_arithmetic_v<units::unit<units::length::meters, double, linear_scale> >' was not satisfied [with UnitTypeRhs = units::unit<units::time::seconds, double, linear_scale>, T = units::unit<units::length::meters, double, linear_scale>]


constexpr unit<dimensionless_unit, std::common_type_t<T, typename UnitTypeRhs::underlying_type>> operator+(
constexpr unit<dimensionless_unit, std::common_type_t<T, typename UnitTypeRhs::underlying_type>> operator+(


^
^


https://raw.githubusercontent.com/nholthaus/units/v3.x/include/units.h:3282:17: note: candidate template ignored: requirement 'traits::is_convertible_unit_v<units::unit<units::unit_conversion<std::ratio<1, 1>, units::dimension_t<units::dim<units::dimension::length_tag, std::ratio<1, 1> > >, std::ratio<0, 1>, std::ratio<0, 1> >, double, linear_scale>, units::unit<units::unit_conversion<std::ratio<1, 1>, units::dimension_t<units::dim<units::dimension::time_tag, std::ratio<1, 1> > >, std::ratio<0, 1>, std::ratio<0, 1> >, double, linear_scale> >' was not satisfied [with UnitTypeLhs = units::unit<units::unit_conversion<std::ratio<1, 1>, units::dimension_t<units::dim<units::dimension::length_tag, std::ratio<1, 1> > >, std::ratio<0, 1>, std::ratio<0, 1> >, double, linear_scale>, UnitTypeRhs = units::unit<units::unit_conversion<std::ratio<1, 1>, units::dimension_t<units::dim<units::dimension::time_tag, std::ratio<1, 1> > >, std::ratio<0, 1>, std::ratio<0, 1> >, double, linear_scale>]
https://raw.githubusercontent.com/johelegp/units/strong_type_alias/include/units.h:3345:17: note: candidate template ignored: requirement 'traits::is_convertible_unit_v<units::unit<units::length::meters, double, linear_scale>, units::unit<units::time::seconds, double, linear_scale> >' was not satisfied [with UnitTypeLhs = units::unit<units::length::meters, double, linear_scale>, UnitTypeRhs = units::unit<units::time::seconds, double, linear_scale>]


constexpr auto operator+(const UnitTypeLhs& lhs, const UnitTypeRhs& rhs) noexcept -> unit<
constexpr auto operator+(const UnitTypeLhs& lhs, const UnitTypeRhs& rhs) noexcept


^
^


https://raw.githubusercontent.com/nholthaus/units/v3.x/include/units.h:3302:2: note: candidate template ignored: requirement 'traits::has_decibel_scale_v<units::unit<units::unit_conversion<std::ratio<1, 1>, units::dimension_t<units::dim<units::dimension::length_tag, std::ratio<1, 1> > >, std::ratio<0, 1>, std::ratio<0, 1> >, double, linear_scale>, units::unit<units::unit_conversion<std::ratio<1, 1>, units::dimension_t<units::dim<units::dimension::time_tag, std::ratio<1, 1> > >, std::ratio<0, 1>, std::ratio<0, 1> >, double, linear_scale> >' was not satisfied [with UnitTypeLhs = units::unit<units::unit_conversion<std::ratio<1, 1>, units::dimension_t<units::dim<units::dimension::length_tag, std::ratio<1, 1> > >, std::ratio<0, 1>, std::ratio<0, 1> >, double, linear_scale>, UnitTypeRhs = units::unit<units::unit_conversion<std::ratio<1, 1>, units::dimension_t<units::dim<units::dimension::time_tag, std::ratio<1, 1> > >, std::ratio<0, 1>, std::ratio<0, 1> >, double, linear_scale>]
https://raw.githubusercontent.com/johelegp/units/strong_type_alias/include/units.h:3366:2: note: candidate template ignored: requirement 'traits::has_decibel_scale_v<units::unit<units::length::meters, double, linear_scale>, units::unit<units::time::seconds, double, linear_scale> >' was not satisfied [with UnitTypeLhs = units::unit<units::length::meters, double, linear_scale>, UnitTypeRhs = units::unit<units::time::seconds, double, linear_scale>]


operator+(const UnitTypeLhs& lhs, const UnitTypeRhs& rhs) noexcept
operator+(const UnitTypeLhs& lhs, const UnitTypeRhs& rhs) noexcept


^
^


https://raw.githubusercontent.com/nholthaus/units/v3.x/include/units.h:3318:2: note: candidate template ignored: requirement 'traits::has_decibel_scale_v<units::unit<units::unit_conversion<std::ratio<1, 1>, units::dimension_t<units::dim<units::dimension::length_tag, std::ratio<1, 1> > >, std::ratio<0, 1>, std::ratio<0, 1> >, double, linear_scale>, units::unit<units::unit_conversion<std::ratio<1, 1>, units::dimension_t<units::dim<units::dimension::time_tag, std::ratio<1, 1> > >, std::ratio<0, 1>, std::ratio<0, 1> >, double, linear_scale> >' was not satisfied [with UnitTypeLhs = units::unit<units::unit_conversion<std::ratio<1, 1>, units::dimension_t<units::dim<units::dimension::length_tag, std::ratio<1, 1> > >, std::ratio<0, 1>, std::ratio<0, 1> >, double, linear_scale>, UnitTypeRhs = units::unit<units::unit_conversion<std::ratio<1, 1>, units::dimension_t<units::dim<units::dimension::time_tag, std::ratio<1, 1> > >, std::ratio<0, 1>, std::ratio<0, 1> >, double, linear_scale>]
https://raw.githubusercontent.com/johelegp/units/strong_type_alias/include/units.h:3382:2: note: candidate template ignored: requirement 'traits::has_decibel_scale_v<units::unit<units::length::meters, double, linear_scale>, units::unit<units::time::seconds, double, linear_scale> >' was not satisfied [with UnitTypeLhs = units::unit<units::length::meters, double, linear_scale>, UnitTypeRhs = units::unit<units::time::seconds, double, linear_scale>]


operator+(const UnitTypeLhs& lhs, const UnitTypeRhs& rhs) noexcept
operator+(const UnitTypeLhs& lhs, const UnitTypeRhs& rhs) noexcept


^
^


/opt/compiler-explorer/gcc-7.2.0/lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/7.2.0/bits/stl_iterator.h:397:5: note: candidate template ignored: could not match 'reverse_iterator' against 'unit'
https://raw.githubusercontent.com/johelegp/units/strong_type_alias/include/units.h:2642:52: note: candidate function template not viable: requires single argument 'u', but 2 arguments were provided

operator+(typename reverse_iterator<_Iterator>::difference_type __n,

^

/opt/compiler-explorer/gcc-7.2.0/lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/7.2.0/bits/stl_iterator.h:1198:5: note: candidate template ignored: could not match 'move_iterator' against 'unit'

operator+(typename move_iterator<_Iterator>::difference_type __n,

^

/opt/compiler-explorer/gcc-7.2.0/lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/7.2.0/bits/basic_string.h:5686:5: note: candidate template ignored: could not match 'basic_string' against 'unit'

operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,

^

/opt/compiler-explorer/gcc-7.2.0/lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/7.2.0/bits/basic_string.h:5723:5: note: candidate template ignored: could not match 'basic_string' against 'unit'

operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,

^

/opt/compiler-explorer/gcc-7.2.0/lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/7.2.0/bits/basic_string.h:5739:5: note: candidate template ignored: could not match 'basic_string' against 'unit'

operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs)

^

/opt/compiler-explorer/gcc-7.2.0/lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/7.2.0/bits/basic_string.h:5751:5: note: candidate template ignored: could not match 'basic_string' against 'unit'

operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,

^

/opt/compiler-explorer/gcc-7.2.0/lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/7.2.0/bits/basic_string.h:5757:5: note: candidate template ignored: could not match 'basic_string' against 'unit'

operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,

^

/opt/compiler-explorer/gcc-7.2.0/lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/7.2.0/bits/basic_string.h:5763:5: note: candidate template ignored: could not match 'basic_string' against 'unit'

operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,

^

/opt/compiler-explorer/gcc-7.2.0/lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/7.2.0/bits/basic_string.h:5775:5: note: candidate template ignored: could not match 'const _CharT *' against 'length::meter_t' (aka 'unit<unit_conversion<ratio<1>, units::dimension_t<units::dim<units::dimension::length_tag, std::ratio<1, 1> > > > >')

operator+(const _CharT* __lhs,

^

/opt/compiler-explorer/gcc-7.2.0/lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/7.2.0/bits/basic_string.h:5781:5: note: candidate template ignored: could not match 'basic_string' against 'unit'

operator+(_CharT __lhs,

^

/opt/compiler-explorer/gcc-7.2.0/lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/7.2.0/bits/basic_string.h:5787:5: note: candidate template ignored: could not match 'basic_string' against 'unit'

operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,

^

/opt/compiler-explorer/gcc-7.2.0/lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/7.2.0/bits/basic_string.h:5793:5: note: candidate template ignored: could not match 'basic_string' against 'unit'

operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,

^

/opt/compiler-explorer/gcc-7.2.0/lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/7.2.0/bits/basic_string.tcc:1157:5: note: candidate template ignored: could not match 'const _CharT *' against 'length::meter_t' (aka 'unit<unit_conversion<ratio<1>, units::dimension_t<units::dim<units::dimension::length_tag, std::ratio<1, 1> > > > >')

operator+(const _CharT* __lhs,

^

/opt/compiler-explorer/gcc-7.2.0/lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/7.2.0/bits/basic_string.tcc:1173:5: note: candidate template ignored: could not match 'basic_string' against 'unit'

operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs)

^

https://raw.githubusercontent.com/nholthaus/units/v3.x/include/units.h:2592:52: note: candidate function template not viable: requires single argument 'u', but 2 arguments were provided


constexpr unit<UnitConversion, T, NonLinearScale> operator+(
constexpr unit<UnitConversion, T, NonLinearScale> operator+(


^
^


1 warning and 2 errors generated.
1 warning and 2 errors generated.


Compiler returned: 1
Compiler returned: 1