TEST_FMPZXX_INIT_WRONG { newtype n; fmpzxx a(n); } Compiler error output is 38 line(s), 9357 characters ------START COMPILER ERROR OUTPUT------- In file included from t-compiler-errors.cc:31:0: /home/ness/src/flint/fmpzxx.h: In instantiation of ‘flint::detail::fmpz_data::fmpz_data(const T&) [with T = newtype]’: /home/ness/src/flint/flintxx/expression.h:154:24: required from ‘static flint::expression::data_t flint::expression::get_data(T&, typename flint::mp::disable_if >::type*) [with T = newtype; Derived = flint::derived_wrapper; Operation = flint::operations::immediate; Data = flint::detail::fmpz_data; flint::expression::data_t = flint::detail::fmpz_data; typename flint::mp::disable_if >::type = void]’ /home/ness/src/flint/flintxx/expression.h:194:27: required from ‘flint::expression::expression(T&) [with T = newtype; Derived = flint::derived_wrapper; Operation = flint::operations::immediate; Data = flint::detail::fmpz_data]’ /home/ness/src/flint/fmpzxx.h:51:5: required from ‘flint::fmpzxx_expression::fmpzxx_expression(T&, typename flint::mp::disable_if::doimplicit >::type*) [with T = newtype; Operation = flint::operations::immediate; Data = flint::detail::fmpz_data; typename flint::mp::disable_if::doimplicit >::type = void]’ t-compiler-errors.cc:44:19: required from here /home/ness/src/flint/fmpzxx.h:158:9: error: no matching function for call to ‘flint::detail::fmpz_data::init(const newtype&)’ /home/ness/src/flint/fmpzxx.h:158:9: note: candidates are: /home/ness/src/flint/fmpzxx.h:162:67: note: template typename flint::mp::enable_if >::type flint::detail::fmpz_data::init(T) /home/ness/src/flint/fmpzxx.h:162:67: note: template argument deduction/substitution failed: /home/ness/src/flint/fmpzxx.h: In substitution of ‘template typename flint::mp::enable_if >::type flint::detail::fmpz_data::init(T) [with T = newtype]’: /home/ness/src/flint/fmpzxx.h:158:9: required from ‘flint::detail::fmpz_data::fmpz_data(const T&) [with T = newtype]’ /home/ness/src/flint/flintxx/expression.h:154:24: required from ‘static flint::expression::data_t flint::expression::get_data(T&, typename flint::mp::disable_if >::type*) [with T = newtype; Derived = flint::derived_wrapper; Operation = flint::operations::immediate; Data = flint::detail::fmpz_data; flint::expression::data_t = flint::detail::fmpz_data; typename flint::mp::disable_if >::type = void]’ /home/ness/src/flint/flintxx/expression.h:194:27: required from ‘flint::expression::expression(T&) [with T = newtype; Derived = flint::derived_wrapper; Operation = flint::operations::immediate; Data = flint::detail::fmpz_data]’ /home/ness/src/flint/fmpzxx.h:51:5: required from ‘flint::fmpzxx_expression::fmpzxx_expression(T&, typename flint::mp::disable_if::doimplicit >::type*) [with T = newtype; Operation = flint::operations::immediate; Data = flint::detail::fmpz_data; typename flint::mp::disable_if::doimplicit >::type = void]’ t-compiler-errors.cc:44:19: required from here /home/ness/src/flint/fmpzxx.h:162:67: error: no type named ‘type’ in ‘struct flint::mp::enable_if, void>’ /home/ness/src/flint/fmpzxx.h: In instantiation of ‘flint::detail::fmpz_data::fmpz_data(const T&) [with T = newtype]’: /home/ness/src/flint/flintxx/expression.h:154:24: required from ‘static flint::expression::data_t flint::expression::get_data(T&, typename flint::mp::disable_if >::type*) [with T = newtype; Derived = flint::derived_wrapper; Operation = flint::operations::immediate; Data = flint::detail::fmpz_data; flint::expression::data_t = flint::detail::fmpz_data; typename flint::mp::disable_if >::type = void]’ /home/ness/src/flint/flintxx/expression.h:194:27: required from ‘flint::expression::expression(T&) [with T = newtype; Derived = flint::derived_wrapper; Operation = flint::operations::immediate; Data = flint::detail::fmpz_data]’ /home/ness/src/flint/fmpzxx.h:51:5: required from ‘flint::fmpzxx_expression::fmpzxx_expression(T&, typename flint::mp::disable_if::doimplicit >::type*) [with T = newtype; Operation = flint::operations::immediate; Data = flint::detail::fmpz_data; typename flint::mp::disable_if::doimplicit >::type = void]’ t-compiler-errors.cc:44:19: required from here /home/ness/src/flint/fmpzxx.h:167:65: note: template typename flint::mp::enable_if >::type flint::detail::fmpz_data::init(T) /home/ness/src/flint/fmpzxx.h:167:65: note: template argument deduction/substitution failed: /home/ness/src/flint/fmpzxx.h: In substitution of ‘template typename flint::mp::enable_if >::type flint::detail::fmpz_data::init(T) [with T = newtype]’: /home/ness/src/flint/fmpzxx.h:158:9: required from ‘flint::detail::fmpz_data::fmpz_data(const T&) [with T = newtype]’ /home/ness/src/flint/flintxx/expression.h:154:24: required from ‘static flint::expression::data_t flint::expression::get_data(T&, typename flint::mp::disable_if >::type*) [with T = newtype; Derived = flint::derived_wrapper; Operation = flint::operations::immediate; Data = flint::detail::fmpz_data; flint::expression::data_t = flint::detail::fmpz_data; typename flint::mp::disable_if >::type = void]’ /home/ness/src/flint/flintxx/expression.h:194:27: required from ‘flint::expression::expression(T&) [with T = newtype; Derived = flint::derived_wrapper; Operation = flint::operations::immediate; Data = flint::detail::fmpz_data]’ /home/ness/src/flint/fmpzxx.h:51:5: required from ‘flint::fmpzxx_expression::fmpzxx_expression(T&, typename flint::mp::disable_if::doimplicit >::type*) [with T = newtype; Operation = flint::operations::immediate; Data = flint::detail::fmpz_data; typename flint::mp::disable_if::doimplicit >::type = void]’ t-compiler-errors.cc:44:19: required from here /home/ness/src/flint/fmpzxx.h:167:65: error: no type named ‘type’ in ‘struct flint::mp::enable_if, void>’ /home/ness/src/flint/fmpzxx.h: In instantiation of ‘flint::detail::fmpz_data::fmpz_data(const T&) [with T = newtype]’: /home/ness/src/flint/flintxx/expression.h:154:24: required from ‘static flint::expression::data_t flint::expression::get_data(T&, typename flint::mp::disable_if >::type*) [with T = newtype; Derived = flint::derived_wrapper; Operation = flint::operations::immediate; Data = flint::detail::fmpz_data; flint::expression::data_t = flint::detail::fmpz_data; typename flint::mp::disable_if >::type = void]’ /home/ness/src/flint/flintxx/expression.h:194:27: required from ‘flint::expression::expression(T&) [with T = newtype; Derived = flint::derived_wrapper; Operation = flint::operations::immediate; Data = flint::detail::fmpz_data]’ /home/ness/src/flint/fmpzxx.h:51:5: required from ‘flint::fmpzxx_expression::fmpzxx_expression(T&, typename flint::mp::disable_if::doimplicit >::type*) [with T = newtype; Operation = flint::operations::immediate; Data = flint::detail::fmpz_data; typename flint::mp::disable_if::doimplicit >::type = void]’ t-compiler-errors.cc:44:19: required from here /home/ness/src/flint/fmpzxx.h:173:10: note: void flint::detail::fmpz_data::init(const fmpzxx_srcref&) /home/ness/src/flint/fmpzxx.h:173:10: note: no known conversion for argument 1 from ‘const newtype’ to ‘const fmpzxx_srcref& {aka const flint::fmpzxx_expression, flint::fmpzxx_expression, long int> >, long int> >&}’ ------END COMPILER ERROR OUTPUT--------- TEST_FMPZXX_INIT_2 { fmpzxx a(3, 4); } Compiler error output is 20 line(s), 1972 characters ------START COMPILER ERROR OUTPUT------- In file included from /home/ness/src/flint/fmpzxx.h:32:0, from t-compiler-errors.cc:31: /home/ness/src/flint/flintxx/expression.h: In instantiation of ‘flint::expression::expression(const T&, const U&) [with T = int; U = int; Derived = flint::derived_wrapper; Operation = flint::operations::immediate; Data = flint::detail::fmpz_data]’: /home/ness/src/flint/fmpzxx.h:51:5: required from ‘flint::fmpzxx_expression::fmpzxx_expression(const T&, const U&) [with T = int; U = int; Operation = flint::operations::immediate; Data = flint::detail::fmpz_data]’ t-compiler-errors.cc:49:22: required from here /home/ness/src/flint/flintxx/expression.h:198:20: error: no matching function for call to ‘flint::detail::fmpz_data::fmpz_data(const int&, const int&)’ /home/ness/src/flint/flintxx/expression.h:198:20: note: candidates are: In file included from t-compiler-errors.cc:31:0: /home/ness/src/flint/fmpzxx.h:156:5: note: template flint::detail::fmpz_data::fmpz_data(const T&) /home/ness/src/flint/fmpzxx.h:156:5: note: template argument deduction/substitution failed: In file included from /home/ness/src/flint/fmpzxx.h:32:0, from t-compiler-errors.cc:31: /home/ness/src/flint/flintxx/expression.h:198:20: note: candidate expects 1 argument, 2 provided In file included from t-compiler-errors.cc:31:0: /home/ness/src/flint/fmpzxx.h:149:5: note: flint::detail::fmpz_data::fmpz_data(const char*) /home/ness/src/flint/fmpzxx.h:149:5: note: candidate expects 1 argument, 2 provided /home/ness/src/flint/fmpzxx.h:147:5: note: flint::detail::fmpz_data::fmpz_data(const flint::detail::fmpz_data&) /home/ness/src/flint/fmpzxx.h:147:5: note: candidate expects 1 argument, 2 provided /home/ness/src/flint/fmpzxx.h:145:5: note: flint::detail::fmpz_data::fmpz_data() /home/ness/src/flint/fmpzxx.h:145:5: note: candidate expects 0 arguments, 2 provided ------END COMPILER ERROR OUTPUT--------- TEST_FMPZXX_ASSIGN_WRONG { fmpzxx a; newtype n; a = n; } Compiler error output is 6 line(s), 1192 characters ------START COMPILER ERROR OUTPUT------- In file included from /home/ness/src/flint/fmpzxx.h:32:0, from t-compiler-errors.cc:31: /home/ness/src/flint/flintxx/expression.h: In instantiation of ‘void flint::expression::set(const T&, typename flint::mp::disable_if >::type*) [with T = newtype; Derived = flint::derived_wrapper; Operation = flint::operations::immediate; Data = flint::detail::fmpz_data; typename flint::mp::disable_if >::type = void]’: /home/ness/src/flint/fmpzxx.h:50:5: required from ‘flint::fmpzxx_expression& flint::fmpzxx_expression::operator=(const T&) [with T = newtype; Operation = flint::operations::immediate; Data = flint::detail::fmpz_data; flint::fmpzxx_expression = flint::fmpzxx_expression]’ t-compiler-errors.cc:56:13: required from here /home/ness/src/flint/flintxx/expression.h:260:9: error: ‘doit’ is not a member of ‘flint::rules::assignment, newtype, void>’ ------END COMPILER ERROR OUTPUT--------- TEST_FMPZXX_CONVERT_WRONG { fmpzxx a; a.to(); } Compiler error output is 17 line(s), 1975 characters ------START COMPILER ERROR OUTPUT------- In file included from /home/ness/src/flint/flintxx/evaluation_tools.h:37:0, from /home/ness/src/flint/fmpzxx.h:31, from t-compiler-errors.cc:31: /home/ness/src/flint/flintxx/rules.h: In instantiation of ‘static To flint::rules::conversion::get(const From&) [with To = newtype; From = flint::fmpzxx_expression; Enable = void]’: /home/ness/src/flint/flintxx/expression.h:230:65: required from ‘T flint::expression::to() const [with T = newtype; Derived = flint::derived_wrapper; Operation = flint::operations::immediate; Data = flint::detail::fmpz_data]’ t-compiler-errors.cc:62:23: required from here /home/ness/src/flint/flintxx/rules.h:74:23: error: no matching function for call to ‘newtype::newtype(const flint::fmpzxx_expression&)’ /home/ness/src/flint/flintxx/rules.h:74:23: note: candidates are: t-compiler-errors.cc:33:8: note: newtype::newtype() t-compiler-errors.cc:33:8: note: candidate expects 0 arguments, 1 provided t-compiler-errors.cc:33:8: note: newtype::newtype(const newtype&) t-compiler-errors.cc:33:8: note: no known conversion for argument 1 from ‘const flint::fmpzxx_expression’ to ‘const newtype&’ In file included from /home/ness/src/flint/flintxx/evaluation_tools.h:37:0, from /home/ness/src/flint/fmpzxx.h:31, from t-compiler-errors.cc:31: /home/ness/src/flint/flintxx/rules.h: In static member function ‘static To flint::rules::conversion::get(const From&) [with To = newtype; From = flint::fmpzxx_expression; Enable = void]’: /home/ness/src/flint/flintxx/rules.h:75:5: warning: control reaches end of non-void function [-Wreturn-type] ------END COMPILER ERROR OUTPUT--------- TEST_FMPZXX_REF_INIT_WRONG_1 { const fmpzxx a; fmpzxx_ref ar(a); } Compiler error output is 20 line(s), 5248 characters ------START COMPILER ERROR OUTPUT------- In file included from /home/ness/src/flint/fmpzxx.h:32:0, from t-compiler-errors.cc:31: /home/ness/src/flint/flintxx/expression.h: In instantiation of ‘static flint::expression::data_t flint::expression::get_data(const T&, typename flint::mp::disable_if >::type*) [with T = flint::fmpzxx_expression; Derived = flint::derived_wrapper; Operation = flint::operations::immediate; Data = flint::flint_classes::ref_data, long int>; flint::expression::data_t = flint::flint_classes::ref_data, long int>; typename flint::mp::disable_if >::type = void]’: /home/ness/src/flint/flintxx/expression.h:190:27: required from ‘flint::expression::expression(const T&) [with T = flint::fmpzxx_expression; Derived = flint::derived_wrapper; Operation = flint::operations::immediate; Data = flint::flint_classes::ref_data, long int>]’ /home/ness/src/flint/fmpzxx.h:51:5: required from ‘flint::fmpzxx_expression::fmpzxx_expression(const T&, typename flint::mp::enable_if::doimplicit >::type*) [with T = flint::fmpzxx_expression; Operation = flint::operations::immediate; Data = flint::flint_classes::ref_data, long int>; typename flint::mp::enable_if::doimplicit >::type = void]’ t-compiler-errors.cc:68:24: required from here /home/ness/src/flint/flintxx/expression.h:148:24: error: no matching function for call to ‘flint::flint_classes::ref_data, long int>::ref_data(const flint::fmpzxx_expression&)’ /home/ness/src/flint/flintxx/expression.h:148:24: note: candidates are: In file included from /home/ness/src/flint/fmpzxx.h:34:0, from t-compiler-errors.cc:31: /home/ness/src/flint/flintxx/flint_classes.h:54:5: note: flint::flint_classes::ref_data::ref_data(Inner*) [with Wrapped = flint::fmpzxx_expression; Inner = long int] /home/ness/src/flint/flintxx/flint_classes.h:54:5: note: no known conversion for argument 1 from ‘const flint::fmpzxx_expression’ to ‘long int*’ /home/ness/src/flint/flintxx/flint_classes.h:49:5: note: flint::flint_classes::ref_data::ref_data(Wrapped&) [with Wrapped = flint::fmpzxx_expression; Inner = long int] /home/ness/src/flint/flintxx/flint_classes.h:49:5: note: no known conversion for argument 1 from ‘const flint::fmpzxx_expression’ to ‘flint::fmpzxx_expression&’ /home/ness/src/flint/flintxx/flint_classes.h:39:8: note: flint::flint_classes::ref_data, long int>::ref_data(const flint::flint_classes::ref_data, long int>&) /home/ness/src/flint/flintxx/flint_classes.h:39:8: note: no known conversion for argument 1 from ‘const flint::fmpzxx_expression’ to ‘const flint::flint_classes::ref_data, long int>&’ In file included from /home/ness/src/flint/fmpzxx.h:32:0, from t-compiler-errors.cc:31: /home/ness/src/flint/flintxx/expression.h: In static member function ‘static flint::expression::data_t flint::expression::get_data(const T&, typename flint::mp::disable_if >::type*) [with T = flint::fmpzxx_expression; Derived = flint::derived_wrapper; Operation = flint::operations::immediate; Data = flint::flint_classes::ref_data, long int>; flint::expression::data_t = flint::flint_classes::ref_data, long int>; typename flint::mp::disable_if >::type = void]’: /home/ness/src/flint/flintxx/expression.h:149:5: warning: control reaches end of non-void function [-Wreturn-type] ------END COMPILER ERROR OUTPUT--------- TEST_FMPZXX_REF_INIT_WRONG_2 { const fmpzxx a; fmpzxx_srcref asr(a); fmpzxx_ref ar(asr); } Compiler error output is 20 line(s), 7466 characters ------START COMPILER ERROR OUTPUT------- In file included from /home/ness/src/flint/fmpzxx.h:32:0, from t-compiler-errors.cc:31: /home/ness/src/flint/flintxx/expression.h: In instantiation of ‘static flint::expression::data_t flint::expression::get_data(T&, typename flint::mp::disable_if >::type*) [with T = flint::fmpzxx_expression, flint::fmpzxx_expression, long int> >, long int> >; Derived = flint::derived_wrapper; Operation = flint::operations::immediate; Data = flint::flint_classes::ref_data, long int>; flint::expression::data_t = flint::flint_classes::ref_data, long int>; typename flint::mp::disable_if >::type = void]’: /home/ness/src/flint/flintxx/expression.h:194:27: required from ‘flint::expression::expression(T&) [with T = flint::fmpzxx_expression, flint::fmpzxx_expression, long int> >, long int> >; Derived = flint::derived_wrapper; Operation = flint::operations::immediate; Data = flint::flint_classes::ref_data, long int>]’ /home/ness/src/flint/fmpzxx.h:51:5: required from ‘flint::fmpzxx_expression::fmpzxx_expression(T&, typename flint::mp::disable_if::doimplicit >::type*) [with T = flint::fmpzxx_expression, flint::fmpzxx_expression, long int> >, long int> >; Operation = flint::operations::immediate; Data = flint::flint_classes::ref_data, long int>; typename flint::mp::disable_if::doimplicit >::type = void]’ t-compiler-errors.cc:75:26: required from here /home/ness/src/flint/flintxx/expression.h:154:24: error: no matching function for call to ‘flint::flint_classes::ref_data, long int>::ref_data(flint::fmpzxx_expression, flint::fmpzxx_expression, long int> >, long int> >&)’ /home/ness/src/flint/flintxx/expression.h:154:24: note: candidates are: In file included from /home/ness/src/flint/fmpzxx.h:34:0, from t-compiler-errors.cc:31: /home/ness/src/flint/flintxx/flint_classes.h:54:5: note: flint::flint_classes::ref_data::ref_data(Inner*) [with Wrapped = flint::fmpzxx_expression; Inner = long int] /home/ness/src/flint/flintxx/flint_classes.h:54:5: note: no known conversion for argument 1 from ‘flint::fmpzxx_expression, flint::fmpzxx_expression, long int> >, long int> >’ to ‘long int*’ /home/ness/src/flint/flintxx/flint_classes.h:49:5: note: flint::flint_classes::ref_data::ref_data(Wrapped&) [with Wrapped = flint::fmpzxx_expression; Inner = long int] /home/ness/src/flint/flintxx/flint_classes.h:49:5: note: no known conversion for argument 1 from ‘flint::fmpzxx_expression, flint::fmpzxx_expression, long int> >, long int> >’ to ‘flint::fmpzxx_expression&’ /home/ness/src/flint/flintxx/flint_classes.h:39:8: note: flint::flint_classes::ref_data, long int>::ref_data(const flint::flint_classes::ref_data, long int>&) /home/ness/src/flint/flintxx/flint_classes.h:39:8: note: no known conversion for argument 1 from ‘flint::fmpzxx_expression, flint::fmpzxx_expression, long int> >, long int> >’ to ‘const flint::flint_classes::ref_data, long int>&’ In file included from /home/ness/src/flint/fmpzxx.h:32:0, from t-compiler-errors.cc:31: /home/ness/src/flint/flintxx/expression.h: In static member function ‘static flint::expression::data_t flint::expression::get_data(T&, typename flint::mp::disable_if >::type*) [with T = flint::fmpzxx_expression, flint::fmpzxx_expression, long int> >, long int> >; Derived = flint::derived_wrapper; Operation = flint::operations::immediate; Data = flint::flint_classes::ref_data, long int>; flint::expression::data_t = flint::flint_classes::ref_data, long int>; typename flint::mp::disable_if >::type = void]’: /home/ness/src/flint/flintxx/expression.h:155:5: warning: control reaches end of non-void function [-Wreturn-type] ------END COMPILER ERROR OUTPUT--------- TEST_FMPZXX_SRCREF_ASSIGN { fmpzxx a; fmpzxx_srcref b(a); b = a; } Compiler error output is 6 line(s), 2841 characters ------START COMPILER ERROR OUTPUT------- In file included from /home/ness/src/flint/fmpzxx.h:32:0, from t-compiler-errors.cc:31: /home/ness/src/flint/flintxx/expression.h: In instantiation of ‘void flint::expression::set(const T&, typename flint::mp::enable_if >::type*, typename flint::mp::disable_if::result, typename T::evaluated_t> >::type*) [with T = flint::fmpzxx_expression; Derived = flint::derived_wrapper; Operation = flint::operations::immediate; Data = flint::flint_classes::srcref_data, flint::fmpzxx_expression, long int> >, long int>; typename flint::mp::enable_if >::type = void; typename flint::mp::disable_if::result, typename T::evaluated_t> >::type = void]’: /home/ness/src/flint/fmpzxx.h:50:5: required from ‘flint::fmpzxx_expression& flint::fmpzxx_expression::operator=(const T&) [with T = flint::fmpzxx_expression; Operation = flint::operations::immediate; Data = flint::flint_classes::srcref_data, flint::fmpzxx_expression, long int> >, long int>; flint::fmpzxx_expression = flint::fmpzxx_expression, flint::fmpzxx_expression, long int> >, long int> >]’ t-compiler-errors.cc:82:13: required from here /home/ness/src/flint/flintxx/expression.h:253:9: error: ‘doit’ is not a member of ‘flint::rules::assignment, flint::fmpzxx_expression, long int> >, long int> >, flint::fmpzxx_expression, void>’ ------END COMPILER ERROR OUTPUT--------- TEST_FMPZXX_ARITH_WRONG { fmpzxx a; newtype n; a + n; } Compiler error output is 10 line(s), 1369 characters ------START COMPILER ERROR OUTPUT------- t-compiler-errors.cc: In function ‘int main()’: t-compiler-errors.cc:89:13: error: no match for ‘operator+’ in ‘a + n’ t-compiler-errors.cc:89:13: note: candidate is: In file included from /home/ness/src/flint/fmpzxx.h:32:0, from t-compiler-errors.cc:31: /home/ness/src/flint/flintxx/expression.h:461:1: note: template typename flint::detail::binary_op_helper::enable::type flint::operator+(const Expr1&, const Expr2&) /home/ness/src/flint/flintxx/expression.h:461:1: note: template argument deduction/substitution failed: /home/ness/src/flint/flintxx/expression.h: In substitution of ‘template typename flint::detail::binary_op_helper::enable::type flint::operator+(const Expr1&, const Expr2&) [with Expr1 = flint::fmpzxx_expression; Expr2 = newtype]’: t-compiler-errors.cc:89:13: required from here /home/ness/src/flint/flintxx/expression.h:461:1: error: no type named ‘type’ in ‘flint::detail::binary_op_helper, flint::operations::plus, newtype>::enable {aka struct flint::mp::enable_if, int>}’ ------END COMPILER ERROR OUTPUT--------- TEST_FMPZXX_ARITH_WRONG_DEEP { fmpzxx a; newtype n; a + (a*a + (a / n) + a)*a; } Compiler error output is 10 line(s), 1387 characters ------START COMPILER ERROR OUTPUT------- t-compiler-errors.cc: In function ‘int main()’: t-compiler-errors.cc:96:25: error: no match for ‘operator/’ in ‘a / n’ t-compiler-errors.cc:96:25: note: candidate is: In file included from /home/ness/src/flint/fmpzxx.h:32:0, from t-compiler-errors.cc:31: /home/ness/src/flint/flintxx/expression.h:485:1: note: template typename flint::detail::binary_op_helper::enable::type flint::operator/(const Expr1&, const Expr2&) /home/ness/src/flint/flintxx/expression.h:485:1: note: template argument deduction/substitution failed: /home/ness/src/flint/flintxx/expression.h: In substitution of ‘template typename flint::detail::binary_op_helper::enable::type flint::operator/(const Expr1&, const Expr2&) [with Expr1 = flint::fmpzxx_expression; Expr2 = newtype]’: t-compiler-errors.cc:96:25: required from here /home/ness/src/flint/flintxx/expression.h:485:1: error: no type named ‘type’ in ‘flint::detail::binary_op_helper, flint::operations::divided_by, newtype>::enable {aka struct flint::mp::enable_if, int>}’ ------END COMPILER ERROR OUTPUT---------