In file included from /usr/include/c++/12/bits/move.h:57,
from /usr/include/c++/12/bits/exception_ptr.h:43,
from /usr/include/c++/12/exception:168,
from /usr/include/c++/12/ios:39,
from /usr/include/c++/12/istream:38,
from /usr/include/c++/12/fstream:38,
from /mnt/c/Projects/ils.ils/src/main.cpp:1:
/usr/include/c++/12/type_traits: In substitution of ‘template<class _Fn, class ... _Args> using invoke_result_t = typename std::invoke_result::type [with _Fn = Generator::gen_stmt(const NodeStmt*)::StmtVisitor&; _Args = {NodeVarDeclare* const&}]’:
/usr/include/c++/12/variant:1102:14: required from ‘constexpr bool std::__detail::__variant::__check_visitor_results(std::index_sequence<_Ind ...>) [with _Visitor = Generator::gen_stmt(const NodeStmt*)::StmtVisitor&; _Variant = const std::variant<NodeStmtExit*, NodeVarDeclare*, NodeScope*, NodeStmtIf*, NodeStmtAssign*, NodeStmtPrint*>&; long unsigned int ..._Idxs = {0, 1, 2, 3, 4, 5}; std::index_sequence<_Ind ...> = std::integer_sequence<long unsigned int, 0, 1, 2, 3, 4, 5>]’
/usr/include/c++/12/variant:1836:44: required from ‘constexpr std::__detail::__variant::__visit_result_t<_Visitor, _Variants ...> std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = Generator::gen_stmt(const NodeStmt*)::StmtVisitor&; _Variants = {const variant<NodeStmtExit*, NodeVarDeclare*, NodeScope*, NodeStmtIf*, NodeStmtAssign*, NodeStmtPrint*>&}; __detail::__variant::__visit_result_t<_Visitor, _Variants ...> = void]’
/mnt/c/Projects/ils.ils/src/generation.hpp:288:19: required from here
/usr/include/c++/12/type_traits:3034:11: error: no type named ‘type’ in ‘struct std::invoke_result<Generator::gen_stmt(const NodeStmt*)::StmtVisitor&, NodeVarDeclare* const&>’
3034 | using invoke_result_t = typename invoke_result<_Fn, _Args...>::type;
| ^~~~~~~~~~~~~~~
In file included from /mnt/c/Projects/ils.ils/src/parser.hpp:4,
from /mnt/c/Projects/ils.ils/src/generation.hpp:6,
from /mnt/c/Projects/ils.ils/src/main.cpp:8:
/usr/include/c++/12/variant: In instantiation of ‘constexpr std::__detail::__variant::__visit_result_t<_Visitor, _Variants ...> std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = Generator::gen_stmt(const NodeStmt*)::StmtVisitor&; _Variants = {const variant<NodeStmtExit*, NodeVarDeclare*, NodeScope*, NodeStmtIf*, NodeStmtAssign*, NodeStmtPrint*>&}; __detail::__variant::__visit_result_t<_Visitor, _Variants ...> = void]’:
/mnt/c/Projects/ils.ils/src/generation.hpp:288:19: required from here
/usr/include/c++/12/variant:1836:44: in ‘constexpr’ expansion of ‘std::__detail::__variant::__check_visitor_results<Generator::gen_stmt(const NodeStmt*)::StmtVisitor&, const std::variant<NodeStmtExit*, NodeVarDeclare*, NodeScope*, NodeStmtIf*, NodeStmtAssign*, NodeStmtPrint*>&, 0, 1, 2, 3, 4, 5>((std::make_index_sequence<6>(), std::make_index_sequence<6>()))’
/usr/include/c++/12/variant:1835:26: error: ‘constexpr’ call flows off the end of the function
1835 | constexpr bool __visit_rettypes_match = __detail::__variant::
| ^~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/12/variant:1840:29: error: non-constant condition for static assertion
1840 | static_assert(__visit_rettypes_match,
| ^~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/12/variant: In instantiation of ‘static constexpr decltype(auto) std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<_Result_type (*)(_Visitor, _Variants ...)>, std::integer_sequence<long unsigned int, __indices ...> >::__visit_invoke(_Visitor&&, _Variants ...) [with _Result_type = std::__detail::__variant::__deduce_visit_result<void>; _Visitor = Generator::gen_stmt(const NodeStmt*)::StmtVisitor&; _Variants = {const std::variant<NodeStmtExit*, NodeVarDeclare*, NodeScope*, NodeStmtIf*, NodeStmtAssign*, NodeStmtPrint*>&}; long unsigned int ...__indices = {1}]’:
/usr/include/c++/12/variant:1784:5: required from ‘constexpr decltype(auto) std::__do_visit(_Visitor&&, _Variants&& ...) [with _Result_type = __detail::__variant::__deduce_visit_result<void>; _Visitor = Generator::gen_stmt(const NodeStmt*)::StmtVisitor&; _Variants = {const variant<NodeStmtExit*, NodeVarDeclare*, NodeScope*, NodeStmtIf*, NodeStmtAssign*, NodeStmtPrint*>&}]’
/usr/include/c++/12/variant:1846:34: required from ‘constexpr std::__detail::__variant::__visit_result_t<_Visitor, _Variants ...> std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = Generator::gen_stmt(const NodeStmt*)::StmtVisitor&; _Variants = {const variant<NodeStmtExit*, NodeVarDeclare*, NodeScope*, NodeStmtIf*, NodeStmtAssign*, NodeStmtPrint*>&}; __detail::__variant::__visit_result_t<_Visitor, _Variants ...> = void]’
/mnt/c/Projects/ils.ils/src/generation.hpp:288:19: required from here
/usr/include/c++/12/variant:1031:31: error: no matching function for call to ‘__invoke(Generator::gen_stmt(const NodeStmt*)::StmtVisitor&, NodeVarDeclare* const&)’
1031 | return std::__invoke(std::forward<_Visitor>(__visitor),
| ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1032 | __element_by_index_or_cookie<__indices>(
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1033 | std::forward<_Variants>(__vars))...);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/12/bits/refwrap.h:38,
from /usr/include/c++/12/string:51,
from /usr/include/c++/12/bits/locale_classes.h:40,
from /usr/include/c++/12/bits/ios_base.h:41,
from /usr/include/c++/12/ios:42:
/usr/include/c++/12/bits/invoke.h:90:5: note: candidate: ‘template<class _Callable, class ... _Args> constexpr typename std::__invoke_result<_Functor, _ArgTypes>::type std::__invoke(_Callable&&, _Args&& ...)’
90 | __invoke(_Callable&& __fn, _Args&&... __args)
| ^~~~~~~~
/usr/include/c++/12/bits/invoke.h:90:5: note: template argument deduction/substitution failed:
/usr/include/c++/12/bits/invoke.h: In substitution of ‘template<class _Callable, class ... _Args> constexpr typename std::__invoke_result<_Functor, _ArgTypes>::type std::__invoke(_Callable&&, _Args&& ...) [with _Callable = Generator::gen_stmt(const NodeStmt*)::StmtVisitor&; _Args = {NodeVarDeclare* const&}]’:
/usr/include/c++/12/variant:1031:24: required from ‘static constexpr decltype(auto) std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<_Result_type (*)(_Visitor, _Variants ...)>, std::integer_sequence<long unsigned int, __indices ...> >::__visit_invoke(_Visitor&&, _Variants ...) [with _Result_type = std::__detail::__variant::__deduce_visit_result<void>; _Visitor = Generator::gen_stmt(const NodeStmt*)::StmtVisitor&; _Variants = {const std::variant<NodeStmtExit*, NodeVarDeclare*, NodeScope*, NodeStmtIf*, NodeStmtAssign*, NodeStmtPrint*>&}; long unsigned int ...__indices = {1}]’
/usr/include/c++/12/variant:1784:5: required from ‘constexpr decltype(auto) std::__do_visit(_Visitor&&, _Variants&& ...) [with _Result_type = __detail::__variant::__deduce_visit_result<void>; _Visitor = Generator::gen_stmt(const NodeStmt*)::StmtVisitor&; _Variants = {const variant<NodeStmtExit*, NodeVarDeclare*, NodeScope*, NodeStmtIf*, NodeStmtAssign*, NodeStmtPrint*>&}]’
/usr/include/c++/12/variant:1846:34: required from ‘constexpr std::__detail::__variant::__visit_result_t<_Visitor, _Variants ...> std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = Generator::gen_stmt(const NodeStmt*)::StmtVisitor&; _Variants = {const variant<NodeStmtExit*, NodeVarDeclare*, NodeScope*, NodeStmtIf*, NodeStmtAssign*, NodeStmtPrint*>&}; __detail::__variant::__visit_result_t<_Visitor, _Variants ...> = void]’
/mnt/c/Projects/ils.ils/src/generation.hpp:288:19: required from here
/usr/include/c++/12/bits/invoke.h:90:5: error: no type named ‘type’ in ‘struct std::__invoke_result<Generator::gen_stmt(const NodeStmt*)::StmtVisitor&, NodeVarDeclare* const&>’
make[2]: *** [CMakeFiles/ils.dir/build.make:76: CMakeFiles/ils.dir/src/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:839: CMakeFiles/ils.dir/all] Error 2
make: *** [Makefile:121: all] Error 2