Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
tuplet::tuple< T > Struct Template Reference

#include <tuplet.hpp>

Inheritance diagram for tuplet::tuple< T >:

Public Types

using super = tuple_base_t< T... >
 
using base_list = typename super::base_list
 
using element_list = type_list< T... >
 

Public Member Functions

template<TUPLET_OTHER_THAN(tuple, U) >
TUPLET_INLINE constexpr autooperator= (U &&tup)
 
template<class... U>
 TUPLET_WEAK_REQUIRES ((assignable_to< U, T > &&...)) const expr auto &assign(U &&... values)
 
TUPLET_INLINE constexpr auto operator== (tuple const &other) const
 
TUPLET_INLINE constexpr auto operator!= (tuple const &other) const
 
TUPLET_INLINE constexpr auto operator< (tuple const &other) const
 
TUPLET_INLINE constexpr auto operator<= (tuple const &other) const
 
TUPLET_INLINE constexpr auto operator> (tuple const &other) const
 
TUPLET_INLINE constexpr auto operator>= (tuple const &other) const
 
template<class... U>
TUPLET_INLINE constexpr auto operator== (tuple< U... > const &other) const -> _TUPLET_TYPES_EQ_WITH(T, U)
 
template<class... U>
TUPLET_INLINE constexpr auto operator!= (tuple< U... > const &other) const -> _TUPLET_TYPES_EQ_WITH(T, U)
 
template<class... U>
TUPLET_INLINE constexpr auto operator< (tuple< U... > const &other) const -> _TUPLET_TYPES_CMP_WITH(T, U)
 
template<class... U>
TUPLET_INLINE constexpr auto operator<= (tuple< U... > const &other) const -> _TUPLET_TYPES_CMP_WITH(T, U)
 
template<class... U>
TUPLET_INLINE constexpr auto operator> (tuple< U... > const &other) const -> _TUPLET_TYPES_CMP_WITH(T, U)
 
template<class... U>
TUPLET_INLINE constexpr auto operator>= (tuple< U... > const &other) const -> _TUPLET_TYPES_CMP_WITH(T, U)
 
TUPLET_INLINE constexpr void swap (tuple &other) noexcept(nothrow_swappable)
 
template<class F >
TUPLET_INLINE constexpr void for_each (F &&func) &
 
template<class F >
TUPLET_INLINE constexpr void for_each (F &&func) const &
 
template<class F >
TUPLET_INLINE constexpr void for_each (F &&func) &&
 
template<class F >
TUPLET_INLINE constexpr bool any (F &&func) &
 
template<class F >
TUPLET_INLINE constexpr bool any (F &&func) const &
 
template<class F >
TUPLET_INLINE constexpr bool any (F &&func) &&
 
template<class F >
TUPLET_INLINE constexpr bool all (F &&func) &
 
template<class F >
TUPLET_INLINE constexpr bool all (F &&func) const &
 
template<class F >
TUPLET_INLINE constexpr bool all (F &&func) &&
 
template<class F >
TUPLET_INLINE constexpr auto map (F &&func) &
 
template<class F >
TUPLET_INLINE constexpr auto map (F &&func) const &
 
template<class F >
TUPLET_INLINE constexpr auto map (F &&func) &&
 
template<class F >
TUPLET_INLINE constexpr decltype(autoapply (F &&func) &
 
template<class F >
TUPLET_INLINE constexpr decltype(autoapply (F &&func) const &
 
template<class F >
TUPLET_INLINE constexpr decltype(autoapply (F &&func) &&
 
template<class... U>
constexpr operator tuplet::tuple< U... > () &
 
template<class... U>
constexpr operator tuplet::tuple< U... > () const &
 
template<class... U>
constexpr operator tuplet::tuple< U... > () &&
 
template<class U >
TUPLET_INLINE constexpr U as () &
 Instantiate the given type using list initialization.
 
template<class U >
TUPLET_INLINE constexpr U as () const &
 Instantiate the given type using list initialization.
 
template<class U >
TUPLET_INLINE constexpr U as () &&
 Instantiate the given type using list initialization.
 

Static Public Attributes

static constexpr size_t N = sizeof...(T)
 
static constexpr bool nothrow_swappable = (std::is_nothrow_swappable_v<T> && ...)
 

Private Member Functions

template<class... B>
TUPLET_INLINE constexpr void _swap (tuple &other, type_list< B... >) noexcept(nothrow_swappable)
 
template<class U , class... B1, class... B2>
TUPLET_INLINE constexpr void _assign_tup (U &&u, type_list< B1... >, type_list< B2... >)
 
template<class U , size_t... I>
TUPLET_INLINE constexpr void _assign_index_tup (U &&u, std::index_sequence< I... >)
 
template<class... U, class... B>
TUPLET_INLINE constexpr void _assign (type_list< B... >, U &&... u)
 

Detailed Description

template<class... T>
struct tuplet::tuple< T >

Definition at line 610 of file tuplet.hpp.

Member Typedef Documentation

◆ base_list

template<class... T>
using tuplet::tuple< T >::base_list = typename super::base_list

Definition at line 620 of file tuplet.hpp.

◆ element_list

template<class... T>
using tuplet::tuple< T >::element_list = type_list<T...>

Definition at line 621 of file tuplet.hpp.

◆ super

template<class... T>
using tuplet::tuple< T >::super = tuple_base_t<T...>

Definition at line 618 of file tuplet.hpp.

Member Function Documentation

◆ _assign()

template<class... T>
template<class... U, class... B>
TUPLET_INLINE constexpr void tuplet::tuple< T >::_assign ( type_list< B... >  ,
U &&...  u 
)
inlineconstexprprivate

Definition at line 834 of file tuplet.hpp.

◆ _assign_index_tup()

template<class... T>
template<class U , size_t... I>
TUPLET_INLINE constexpr void tuplet::tuple< T >::_assign_index_tup ( U &&  u,
std::index_sequence< I... >   
)
inlineconstexprprivate

Definition at line 829 of file tuplet.hpp.

◆ _assign_tup()

template<class... T>
template<class U , class... B1, class... B2>
TUPLET_INLINE constexpr void tuplet::tuple< T >::_assign_tup ( U &&  u,
type_list< B1... >  ,
type_list< B2... >   
)
inlineconstexprprivate

Definition at line 822 of file tuplet.hpp.

◆ _swap()

template<class... T>
template<class... B>
TUPLET_INLINE constexpr void tuplet::tuple< T >::_swap ( tuple< T > &  other,
type_list< B... >   
)
inlineconstexprprivatenoexcept

Definition at line 815 of file tuplet.hpp.

◆ all() [1/3]

template<class... T>
template<class F >
TUPLET_INLINE constexpr bool tuplet::tuple< T >::all ( F &&  func) &
inlineconstexpr

Definition at line 747 of file tuplet.hpp.

◆ all() [2/3]

template<class... T>
template<class F >
TUPLET_INLINE constexpr bool tuplet::tuple< T >::all ( F &&  func) &&
inlineconstexpr

Definition at line 755 of file tuplet.hpp.

◆ all() [3/3]

template<class... T>
template<class F >
TUPLET_INLINE constexpr bool tuplet::tuple< T >::all ( F &&  func) const &
inlineconstexpr

Definition at line 751 of file tuplet.hpp.

◆ any() [1/3]

template<class... T>
template<class F >
TUPLET_INLINE constexpr bool tuplet::tuple< T >::any ( F &&  func) &
inlineconstexpr

Definition at line 731 of file tuplet.hpp.

◆ any() [2/3]

template<class... T>
template<class F >
TUPLET_INLINE constexpr bool tuplet::tuple< T >::any ( F &&  func) &&
inlineconstexpr

Definition at line 739 of file tuplet.hpp.

◆ any() [3/3]

template<class... T>
template<class F >
TUPLET_INLINE constexpr bool tuplet::tuple< T >::any ( F &&  func) const &
inlineconstexpr

Definition at line 735 of file tuplet.hpp.

◆ apply() [1/3]

template<class... T>
template<class F >
TUPLET_INLINE constexpr decltype(auto) tuplet::tuple< T >::apply ( F &&  func) &
inlineconstexpr

Definition at line 775 of file tuplet.hpp.

◆ apply() [2/3]

template<class... T>
template<class F >
TUPLET_INLINE constexpr decltype(auto) tuplet::tuple< T >::apply ( F &&  func) &&
inlineconstexpr

Definition at line 783 of file tuplet.hpp.

◆ apply() [3/3]

template<class... T>
template<class F >
TUPLET_INLINE constexpr decltype(auto) tuplet::tuple< T >::apply ( F &&  func) const &
inlineconstexpr

Definition at line 779 of file tuplet.hpp.

◆ as() [1/3]

template<class... T>
template<class U >
TUPLET_INLINE constexpr U tuplet::tuple< T >::as ( ) &
inlineconstexpr

Instantiate the given type using list initialization.

Definition at line 805 of file tuplet.hpp.

◆ as() [2/3]

template<class... T>
template<class U >
TUPLET_INLINE constexpr U tuplet::tuple< T >::as ( ) &&
inlineconstexpr

Instantiate the given type using list initialization.

Definition at line 809 of file tuplet.hpp.

◆ as() [3/3]

template<class... T>
template<class U >
TUPLET_INLINE constexpr U tuplet::tuple< T >::as ( ) const &
inlineconstexpr

Instantiate the given type using list initialization.

Definition at line 807 of file tuplet.hpp.

◆ for_each() [1/3]

template<class... T>
template<class F >
TUPLET_INLINE constexpr void tuplet::tuple< T >::for_each ( F &&  func) &
inlineconstexpr

Definition at line 715 of file tuplet.hpp.

◆ for_each() [2/3]

template<class... T>
template<class F >
TUPLET_INLINE constexpr void tuplet::tuple< T >::for_each ( F &&  func) &&
inlineconstexpr

Definition at line 723 of file tuplet.hpp.

◆ for_each() [3/3]

template<class... T>
template<class F >
TUPLET_INLINE constexpr void tuplet::tuple< T >::for_each ( F &&  func) const &
inlineconstexpr

Definition at line 719 of file tuplet.hpp.

◆ map() [1/3]

template<class... T>
template<class F >
TUPLET_INLINE constexpr auto tuplet::tuple< T >::map ( F &&  func) &
inlineconstexpr

Definition at line 762 of file tuplet.hpp.

◆ map() [2/3]

template<class... T>
template<class F >
TUPLET_INLINE constexpr auto tuplet::tuple< T >::map ( F &&  func) &&
inlineconstexpr

Definition at line 770 of file tuplet.hpp.

◆ map() [3/3]

template<class... T>
template<class F >
TUPLET_INLINE constexpr auto tuplet::tuple< T >::map ( F &&  func) const &
inlineconstexpr

Definition at line 766 of file tuplet.hpp.

◆ operator tuplet::tuple< U... >() [1/3]

template<class... T>
template<class... U>
constexpr tuplet::tuple< T >::operator tuplet::tuple< U... > ( ) &
inlineexplicitconstexpr

Definition at line 788 of file tuplet.hpp.

◆ operator tuplet::tuple< U... >() [2/3]

template<class... T>
template<class... U>
constexpr tuplet::tuple< T >::operator tuplet::tuple< U... > ( ) &&
inlineexplicitconstexpr

Definition at line 798 of file tuplet.hpp.

◆ operator tuplet::tuple< U... >() [3/3]

template<class... T>
template<class... U>
constexpr tuplet::tuple< T >::operator tuplet::tuple< U... > ( ) const &
inlineexplicitconstexpr

Definition at line 793 of file tuplet.hpp.

◆ operator!=() [1/2]

template<class... T>
TUPLET_INLINE constexpr auto tuplet::tuple< T >::operator!= ( tuple< T > const other) const
inlineconstexpr

Definition at line 655 of file tuplet.hpp.

◆ operator!=() [2/2]

template<class... T>
template<class... U>
TUPLET_INLINE constexpr auto tuplet::tuple< T >::operator!= ( tuple< U... > const other) const -> _TUPLET_TYPES_EQ_WITH(T, U)
inlineconstexpr

Definition at line 680 of file tuplet.hpp.

◆ operator<() [1/2]

template<class... T>
TUPLET_INLINE constexpr auto tuplet::tuple< T >::operator< ( tuple< T > const other) const
inlineconstexpr

Definition at line 656 of file tuplet.hpp.

◆ operator<() [2/2]

template<class... T>
template<class... U>
TUPLET_INLINE constexpr auto tuplet::tuple< T >::operator< ( tuple< U... > const other) const -> _TUPLET_TYPES_CMP_WITH(T, U)
inlineconstexpr

Definition at line 685 of file tuplet.hpp.

◆ operator<=() [1/2]

template<class... T>
TUPLET_INLINE constexpr auto tuplet::tuple< T >::operator<= ( tuple< T > const other) const
inlineconstexpr

Definition at line 660 of file tuplet.hpp.

◆ operator<=() [2/2]

template<class... T>
template<class... U>
TUPLET_INLINE constexpr auto tuplet::tuple< T >::operator<= ( tuple< U... > const other) const -> _TUPLET_TYPES_CMP_WITH(T, U)
inlineconstexpr

Definition at line 691 of file tuplet.hpp.

◆ operator=()

template<class... T>
template<TUPLET_OTHER_THAN(tuple, U) >
TUPLET_INLINE constexpr auto & tuplet::tuple< T >::operator= ( U &&  tup)
inlineconstexpr

Definition at line 625 of file tuplet.hpp.

◆ operator==() [1/2]

template<class... T>
TUPLET_INLINE constexpr auto tuplet::tuple< T >::operator== ( tuple< T > const other) const
inlineconstexpr

Definition at line 651 of file tuplet.hpp.

◆ operator==() [2/2]

template<class... T>
template<class... U>
TUPLET_INLINE constexpr auto tuplet::tuple< T >::operator== ( tuple< U... > const other) const -> _TUPLET_TYPES_EQ_WITH(T, U)
inlineconstexpr

Definition at line 674 of file tuplet.hpp.

◆ operator>() [1/2]

template<class... T>
TUPLET_INLINE constexpr auto tuplet::tuple< T >::operator> ( tuple< T > const other) const
inlineconstexpr

Definition at line 664 of file tuplet.hpp.

◆ operator>() [2/2]

template<class... T>
template<class... U>
TUPLET_INLINE constexpr auto tuplet::tuple< T >::operator> ( tuple< U... > const other) const -> _TUPLET_TYPES_CMP_WITH(T, U)
inlineconstexpr

Definition at line 697 of file tuplet.hpp.

◆ operator>=() [1/2]

template<class... T>
TUPLET_INLINE constexpr auto tuplet::tuple< T >::operator>= ( tuple< T > const other) const
inlineconstexpr

Definition at line 668 of file tuplet.hpp.

◆ operator>=() [2/2]

template<class... T>
template<class... U>
TUPLET_INLINE constexpr auto tuplet::tuple< T >::operator>= ( tuple< U... > const other) const -> _TUPLET_TYPES_CMP_WITH(T, U)
inlineconstexpr

Definition at line 703 of file tuplet.hpp.

◆ swap()

template<class... T>
TUPLET_INLINE constexpr void tuplet::tuple< T >::swap ( tuple< T > &  other)
inlineconstexprnoexcept

Definition at line 709 of file tuplet.hpp.

◆ TUPLET_WEAK_REQUIRES()

template<class... T>
template<class... U>
tuplet::tuple< T >::TUPLET_WEAK_REQUIRES ( (assignable_to< U, T > &&...)  ) const &&
inline

Definition at line 636 of file tuplet.hpp.

Member Data Documentation

◆ N

template<class... T>
constexpr size_t tuplet::tuple< T >::N = sizeof...(T)
staticconstexpr

Definition at line 611 of file tuplet.hpp.

◆ nothrow_swappable

template<class... T>
constexpr bool tuplet::tuple< T >::nothrow_swappable = (std::is_nothrow_swappable_v<T> && ...)
staticconstexpr

Definition at line 616 of file tuplet.hpp.


The documentation for this struct was generated from the following file: