Е
Size: a a a
Е
Е
O
invalid use of incomplete type
Е
invalid use of incomplete type
Е
O
table::find_t,
но я всё...
template<typename Tuple, typename Index = table::value<1>, typename = std::enable_if_t<!table::map_contains<Index>::value>, typename = void>
constexpr auto variadic(Tuple) -> std::size_t {
using type = decltype(std::get<Index>(Tuple{}));
return (table::map<type, void>, Index::value);
};
template<typename Tuple, typename Index = table::value<1>, typename = std::enable_if_t<table::map_contains<Index>::value>>
constexpr auto variadic(Tuple) -> std::size_t {
return variadic<Tuple, Index::value + 1>();
};
using must_be_autogenerated = std::tuple<table::value<1>, table::value<2>, table::value<3>, table::value<4>>;
static_assert(variadic(must_be_autogenerated{}) == 1);
static_assert(variadic(must_be_autogenerated{}) == 2);
// oops
Е
Е
O
O
Е
table::find_t,
но я всё...
template<typename Tuple, typename Index = table::value<1>, typename = std::enable_if_t<!table::map_contains<Index>::value>, typename = void>
constexpr auto variadic(Tuple) -> std::size_t {
using type = decltype(std::get<Index>(Tuple{}));
return (table::map<type, void>, Index::value);
};
template<typename Tuple, typename Index = table::value<1>, typename = std::enable_if_t<table::map_contains<Index>::value>>
constexpr auto variadic(Tuple) -> std::size_t {
return variadic<Tuple, Index::value + 1>();
};
using must_be_autogenerated = std::tuple<table::value<1>, table::value<2>, table::value<3>, table::value<4>>;
static_assert(variadic(must_be_autogenerated{}) == 1);
static_assert(variadic(must_be_autogenerated{}) == 2);
// oops
Е
O
Е
O
O
table::map<type, void>
в любой непонятной ситуации, так что я это одним выражением сделалЕ
O
O
Е