rvarago / kitten

A small C++17 library inspired by Category Theory.
MIT License
15 stars 1 forks source link

error: no type named 'type' in 'std::enable_if<false>' and other errors with Clang on macOS #34

Open barracuda156 opened 1 year ago

barracuda156 commented 1 year ago

With my fixes in https://github.com/rvarago/kitten/pull/33 kitten builds fine for me with GCC12, however it fails on buildbots with new macOS and Clang:

In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/c++/v1/__functional/weak_result_type.h:16:
  /Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/c++/v1/type_traits:550:78: error: no type named 'type' in 'std::enable_if<false>'; 'enable_if' cannot be used to disable this declaration
  template <bool _Bp, class _Tp = void> using enable_if_t = typename enable_if<_Bp, _Tp>::type;
                                                                               ^~~
In file included from /opt/local/var/macports/build/_Users_runner_work_macports-ports_macports-ports_ports_math_kitten/kitten/work/kitten-f45705bc3026551c702b05281cee940b51511dc1/include/kitten/instances/sequence_container.h:10:
  /opt/local/var/macports/build/_Users_runner_work_macports-ports_macports-ports_ports_math_kitten/kitten/work/kitten-f45705bc3026551c702b05281cee940b51511dc1/include/kitten/functor.h:58:44: error: no matching function for call to 'fmap'
      return [f](auto const &input) { return functor<F>::fmap(input, f); };
                                             ^~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_Users_runner_work_macports-ports_macports-ports_ports_math_kitten/kitten/work/kitten-f45705bc3026551c702b05281cee940b51511dc1/tests/sequence_container_test.cpp:74:111: error: expected expression
                              is_same_after_decaying<decltype(empty_of_strings), SequenceContainer<std::string>>);
                                                                                                                ^
  /opt/local/var/macports/build/_Users_runner_work_macports-ports_macports-ports_ports_math_kitten/kitten/work/kitten-f45705bc3026551c702b05281cee940b51511dc1/tests/sequence_container_test.cpp:86:59: error: no matching function for call to object of type '(lambda at /opt/local/var/macports/build/_Users_runner_work_macports-ports_macports-ports_ports_math_kitten/kitten/work/kitten-f45705bc3026551c702b05281cee940b51511dc1/include/kitten/functor.h:58:12)'
                          auto const container_of_strings = to_string_lifted(container_of_ints);
                                                            ^~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_Users_runner_work_macports-ports_macports-ports_ports_math_kitten/kitten/work/kitten-f45705bc3026551c702b05281cee940b51511dc1/tests/sequence_container_test.cpp:89:115: error: expected expression
                              is_same_after_decaying<decltype(container_of_strings), SequenceContainer<std::string>>);
                                                                                                                    ^
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/c++/v1/__functional/weak_result_type.h:16:
  /Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/c++/v1/type_traits:550:78: error: no type named 'type' in 'std::enable_if<false>'; 'enable_if' cannot be used to disable this declaration
  template <bool _Bp, class _Tp = void> using enable_if_t = typename enable_if<_Bp, _Tp>::type;
                                                                               ^~~
In file included from /opt/local/var/macports/build/_Users_runner_work_macports-ports_macports-ports_ports_math_kitten/kitten/work/kitten-f45705bc3026551c702b05281cee940b51511dc1/include/kitten/instances/sequence_container.h:9:
  /opt/local/var/macports/build/_Users_runner_work_macports-ports_macports-ports_ports_math_kitten/kitten/work/kitten-f45705bc3026551c702b05281cee940b51511dc1/include/kitten/applicative.h:37:12: error: no matching function for call to 'pure'
      return applicative<AP>::pure(std::forward<A>(value));
             ^~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_Users_runner_work_macports-ports_macports-ports_ports_math_kitten/kitten/work/kitten-f45705bc3026551c702b05281cee940b51511dc1/tests/sequence_container_test.cpp:106:110: error: expected expression
                      static_assert(is_same_after_decaying<decltype(singleton), SequenceContainer<std::string>>);
                                                                                                               ^
  In file included from /opt/local/var/macports/build/_Users_runner_work_macports-ports_macports-ports_ports_math_kitten/kitten/work/kitten-f45705bc3026551c702b05281cee940b51511dc1/tests/sequence_container_test.cpp:6:
  In file included from /opt/local/var/macports/build/_Users_runner_work_macports-ports_macports-ports_ports_math_kitten/kitten/work/kitten-f45705bc3026551c702b05281cee940b51511dc1/include/kitten/instances/sequence_container.h:9:
  /opt/local/var/macports/build/_Users_runner_work_macports-ports_macports-ports_ports_math_kitten/kitten/work/kitten-f45705bc3026551c702b05281cee940b51511dc1/include/kitten/applicative.h:53:12: error: no matching function for call to 'combine'
      return applicative<AP>::combine(first, second, f);
             ^~~~~~~~~~~~~~~~~~~~~~~~

Full log: https://github.com/macports/macports-ports/actions/runs/3840184033/jobs/6538924802

barracuda156 commented 4 months ago

@rvarago Any update on this?