|
template<typename... T> |
constexpr Attrs< std::decay_t< T >... > | emp::tools::MakeAttrs (T &&...props) |
|
template<typename I , typename R , typename... A> |
constexpr auto | emp::tools::MergeReduce (I &&init, R &&reducer, A &&...attrs) |
|
template<typename I , typename R , typename... A> |
constexpr auto | emp::tools::Reduce (I &&init, R &&reducer, A &&...attrs) |
|
template<typename F , typename... A> |
constexpr void | emp::tools::MergeForeach (F &&callback, A &&...attrs) |
|
template<typename F , typename... A> |
constexpr void | emp::tools::Foreach (F &&callback, A &&...attrs) |
|
template<typename... U> |
constexpr auto | emp::tools::Merge (U &&...packs) -> decltype(MergeReduce(Attrs<> |
|
template<class... T, class H > |
void | emp::tools::__attrs_impl::PrintAttrs (std::ostream &out, const Attrs< T... > &attrs, const print_attrs_tag< H > &) |
|
template<class... T, class H0 , class H1 , class... U> |
void | emp::tools::__attrs_impl::PrintAttrs (std::ostream &out, const Attrs< T... > &attrs, const print_attrs_tag< H0, H1, U... > &) |
|
template<class H , class... T> |
std::ostream & | emp::tools::operator<< (std::ostream &out, const Attrs< H, T... > &attrs) |
|
std::ostream & | emp::tools::operator<< (std::ostream &out, const Attrs<> &attrs) |
|