namespace Poco::Util::Units::Internal
namespace Internal {
// structs
template <
typename Term,
typename T1,
typename T2
>
struct CheckTermsEqual;
template <
typename U,
int N,
int D,
typename T1,
typename T2
>
struct CheckTermsEqual<Translate<U, N, D>, T1, T2>;
template <
typename U,
int N,
int D,
typename T1,
typename T2
>
struct CheckTermsEqual<Power<U, N, D>, T1, T2>;
template <
typename U,
int N,
int D,
typename T1,
typename T2
>
struct CheckTermsEqual<Scale<U, N, D>, T1, T2>;
template <
typename T1,
typename T2,
typename T3,
typename T4
>
struct CheckTermsEqual<Compose<T1, T2>, T3, T4>;
template <typename T>
struct Convert<T, T>;
template <
typename T1,
typename T2
>
struct Convert;
template <
typename T,
typename U,
int Num,
int Den
>
struct Convert2<Scale<T, Num, Den>, U>;
template <
typename T,
typename U,
int Num,
int Den
>
struct Convert2<Translate<T, Num, Den>, U>;
template <
typename T1,
typename T2
>
struct Convert2;
template <
typename T,
typename U,
int Num,
int Den
>
struct Convert3<T, Translate<U, Num, Den>>;
template <typename T>
struct Convert3<T, T>;
template <
typename T1,
typename T2
>
struct Convert3;
template <
typename T,
typename U,
int Num,
int Den
>
struct Convert3<T, Scale<U, Num, Den>>;
template <
typename T1,
typename T2
>
struct Convertible;
template <
typename Term,
typename U,
int N,
int D
>
struct CountTerms<Term, Scale<U, N, D>>;
template <
typename Term,
typename U,
int N,
int D
>
struct CountTerms<Term, Translate<U, N, D>>;
template <
typename Term,
typename U,
int N,
int D
>
struct CountTerms<Term, Power<U, N, D>>;
template <typename Term>
struct CountTerms<Term, Term>;
template <
typename Term,
typename T1,
typename T2
>
struct CountTerms<Term, Compose<T1, T2>>;
template <
typename Term,
typename List
>
struct CountTerms;
template <
int N,
int D
>
struct FixedPower<N, D, 2, 0>;
template <
int N,
int D
>
struct FixedPower<N, D, 4, 0>;
template <
int N,
int D
>
struct FixedPower<N, D, 1, 0>;
template <
int N,
int D
>
struct FixedPower<N, D, 0, 0>;
template <
int N,
int D
>
struct FixedPower<N, D, 3, 0>;
template <
int N,
int D
>
struct FixedPower<N, D, -1, 0>;
template <
int N,
int D
>
struct FixedPower<N, D, -2, 0>;
template <
int Num,
int Den,
int Div,
int Mod
>
struct FixedPower;
template <
typename U,
int Num,
int Den
>
struct OutputUnit2<Scale<U, Num, Den>>;
template <
typename U,
int Num,
int Den
>
struct OutputUnit2<Translate<U, Num, Den>>;
template <
typename U,
int Num,
int Den
>
struct OutputUnit2<Power<U, Num, Den>>;
template <
typename U1,
typename U2
>
struct OutputUnit2<Compose<U1, U2>>;
template <typename U>
struct OutputUnit2;
template <
typename U,
int N,
int D
>
struct ScalingFactor<Power<U, N, D>>;
template <
typename U1,
typename U2
>
struct ScalingFactor<Compose<U1, U2>>;
template <
typename U,
int N,
int D
>
struct ScalingFactor<Scale<U, N, D>>;
template <typename U>
struct ScalingFactor;
template <
typename U,
int N,
int D
>
struct ScalingFactor<Translate<U, N, D>>;
} // namespace Internal