monster icon indicating copy to clipboard operation
monster copied to clipboard

我不能编译通过

Open supermanmsc opened this issue 4 years ago • 0 comments

在启动生成... /usr/bin/clang -std=c++2a -fdiagnostics-color=always -g /Users/mashichuan/opt/monster/example/memoized_invoke.cpp -o /Users/mashichuan/opt/monster/example/memoized_invoke -I /Users/mashichuan/opt/monster/include In file included from /Users/mashichuan/opt/monster/example/memoized_invoke.cpp:12: In file included from /Users/mashichuan/opt/monster/include/memoized_invoke.hpp:14:

/Users/mashichuan/opt/monster/include/monster.hpp:201:59: error: lambda expression in an unevaluated operand struct is_base_template_of<B, T, std::void_t<decltype([]<typename... Args>(B<Args...>){}(std::declval<T>()))>> : std::true_type ^

/Users/mashichuan/opt/monster/include/monster.hpp:757:9: error: lambda expression in an unevaluated operand []<typename... R, typename... T>(R (*... f)(T...)){}(args...); ^

/Users/mashichuan/opt/monster/include/monster.hpp:809:12: error: redefinition of 'sizeof_t<T>'

struct sizeof_t<T, std::void_t<std::enable_if_t<!is_variadic_type_v<T>>, decltype(T::value + 1)>> : T
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

/Users/mashichuan/opt/monster/include/monster.hpp:799:12: note: previous definition is here struct sizeof_t<T, std::void_t<decltype(T::size())>> : index_t<T::size()> ^

/Users/mashichuan/opt/monster/include/monster.hpp:1019:22: error: expected a type

    using type = typeof_t<next_index_tuple<N - 1>>::template apply<N - 1>;
                 ^

/Users/mashichuan/opt/monster/include/monster.hpp:1019:57: error: expected ';' after alias declaration using type = typeof_t<next_index_tuple<N - 1>>::template apply<N - 1>; ^ ;

/Users/mashichuan/opt/monster/include/monster.hpp:1186:20: error: class template partial specialization contains template parameters that cannot be deduced; this partial specialization will never be used [-Wunusable-partial-specialization]

        struct deduct<T<make_type<m>..., U, args...>> : std::type_identity<U>
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

/Users/mashichuan/opt/monster/include/monster.hpp:1185:32: note: non-deducible template parameter 'U' template <typename U, typename... args> ^ /Users/mashichuan/opt/monster/include/monster.hpp:1185:47: note: non-deducible template parameter 'args' template <typename U, typename... args> ^

/Users/mashichuan/opt/monster/include/monster.hpp:1421:23: error: missing 'typename' prior to dependent type name 'impl<B1, args...>::apply' using apply = impl<B1, args...>::apply; ^~~~~~~~~~~~~~~~~~~~~~~~

                  typename 

/Users/mashichuan/opt/monster/include/monster.hpp:3970:52: error: template template argument has different template parameters than its corresponding template template parameter struct exclude : expand_of<T, set_difference_t<less_t, index_sequence_of_t<T>, indices>> ^ /Users/mashichuan/opt/monster/include/monster.hpp:816:5: note: too many template parameters in template template argument template <typename T, typename U, auto p = sizeof_t_v<T>, auto q = sizeof_t_v<U>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/mashichuan/opt/monster/include/monster.hpp:3057:15: note: previous template template parameter is here template <template <typename, typename> typename F, typename T, typename U, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~

/Users/mashichuan/opt/monster/include/monster.hpp:5112:88: error: template template argument has different template parameters than its corresponding template template parameter

         using type = type_if<lower == key, std::true_type, impl<l, mid, r, lower, search>>;
                                                                                   ^

/Users/mashichuan/opt/monster/include/monster.hpp:5106:9: note: too many template parameters in template template argument template <size_t l, size_t r, bool = l <= r> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/mashichuan/opt/monster/include/monster.hpp:5091:61: note: previous template template parameter is here template <size_t l, size_t m, size_t r, auto lower, template <size_t, size_t> typename search> ^~~~~~~~~~~~~~~~~~~~~~~~~

/Users/mashichuan/opt/monster/include/monster.hpp:7705:46: error: template template argument has different template parameters than its corresponding template template parameter struct transform_maybe : transform_if<F, P, clear_t<T>, T> ^

/Users/mashichuan/opt/monster/include/monster.hpp:7704:73: note: template type parameter pack does not match template type parameter in template argument template <template <typename ...> typename F, template <typename ...> typename P, typename T> ^ /Users/mashichuan/opt/monster/include/monster.hpp:7640:69: note: previous template type parameter declared here template <template <typename ...> typename F, template typename P, typename T, typename U, auto B = 0, auto E = sizeof_t_v<U>> ^

/Users/mashichuan/opt/monster/include/monster.hpp:7900:30: error: template template argument has different template parameters than its corresponding template template parameter using p = mismatch_t<equal_t, T, U, B1, E1, B2, E2>; ^ /Users/mashichuan/opt/monster/include/monster.hpp:828:5: note: too many template parameters in template template argument

template <typename T, typename U, auto p = sizeof_t_v<T>, auto q = sizeof_t_v<U>>
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

/Users/mashichuan/opt/monster/include/monster.hpp:3217:15: note: previous template template parameter is here template <template <typename, typename> typename F, typename T, typename U, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~

/Users/mashichuan/opt/monster/include/monster.hpp:7901:43: error: use of undeclared identifier 'p' static constexpr auto q = first_v

; ^

/Users/mashichuan/opt/monster/include/monster.hpp:7903:44: error: use of undeclared identifier 'p' static constexpr auto l = second_v

; ^

/Users/mashichuan/opt/monster/include/monster.hpp:7927:79: error: value of type 'const auto' is not implicitly convertible to 'size_t' (aka 'unsigned long') static constexpr auto value = type_if_v<q == E1, std::true_type, impl<q, E1>>; ^

/Users/mashichuan/opt/monster/include/monster.hpp:8248:43: error: template template argument has different template parameters than its corresponding template template parameter using conc = concat_t<unary_t<store, i, N, T, U>...>; ^ /Users/mashichuan/opt/monster/include/monster.hpp:8107:27: note: template type parameter pack does not match template type parameter in template argument template <typename... Args> ^ /Users/mashichuan/opt/monster/include/monster.hpp:1665:33: note: previous template type parameter declared here template <template <typename, typename> typename F, auto M, auto N, typename T, typename U = T> ^

/Users/mashichuan/opt/monster/include/monster.hpp:8249:35: error: use of undeclared identifier 'conc' using type = concat_t<conc, typeof_t<impl<i + 1, j, std::index_sequence<N...>>>>;

                              ^

/Users/mashichuan/opt/monster/include/monster.hpp:8249:92: error: expected ';' after alias declaration using type = concat_t<conc, typeof_t<impl<i + 1, j, std::index_sequence<N...>>>>; ^ ;

/Users/mashichuan/opt/monster/include/monster.hpp:8361:30: error: template template argument has different template parameters than its corresponding template template parameter using impl = unary_t<store, i, i, V, U>; ^

/Users/mashichuan/opt/monster/include/monster.hpp:8107:27: note: template type parameter pack does not match template type parameter in template argument template <typename... Args> ^ /Users/mashichuan/opt/monster/include/monster.hpp:1665:33: note: previous template type parameter declared here template <template <typename, typename> typename F, auto M, auto N, typename T, typename U = T> ^

/Users/mashichuan/opt/monster/include/monster.hpp:8363:35: error: use of undeclared identifier 'impl' using type = concat_map_t<impl, T, index_sequence_of_c<min_v<M, N>>>; ^

fatal error: too many errors emitted, stopping now [-ferror-limit=]

supermanmsc avatar Nov 29 '21 12:11 supermanmsc