Public Types | Public Member Functions | Static Public Member Functions | Private Types | Static Private Member Functions | Private Attributes | List of all members
absl::container_internal::internal_layout::LayoutImpl< std::tuple< Elements... >, absl::index_sequence< SizeSeq... >, absl::index_sequence< OffsetSeq... > > Class Template Reference

#include <layout.h>

Public Types

template<size_t N>
using ElementType = typename std::tuple_element< N, ElementTypes >::type
 
using ElementTypes = std::tuple< typename Type< Elements >::type... >
 

Public Member Functions

constexpr size_t AllocSize () const
 
std::string DebugString () const
 
constexpr LayoutImpl (IntToSize< SizeSeq >...sizes)
 
template<size_t N, EnableIf< N==0 > = 0>
constexpr size_t Offset () const
 
template<size_t N, EnableIf< N!=0 > = 0>
constexpr size_t Offset () const
 
template<class T >
constexpr size_t Offset () const
 
constexpr std::array< size_t, NumOffsetsOffsets () const
 
template<size_t N, class Char >
CopyConst< Char, ElementType< N > > * Pointer (Char *p) const
 
template<class T , class Char >
CopyConst< Char, T > * Pointer (Char *p) const
 
template<class Char >
std::tuple< CopyConst< Char, typename std::tuple_element< OffsetSeq, ElementTypes >::type > *... > Pointers (Char *p) const
 
template<class Char , size_t N = NumOffsets - 1, EnableIf< N==0 > = 0>
void PoisonPadding (const Char *p) const
 
template<class Char , size_t N = NumOffsets - 1, EnableIf< N!=0 > = 0>
void PoisonPadding (const Char *p) const
 
template<size_t N>
constexpr size_t Size () const
 
template<class T >
constexpr size_t Size () const
 
constexpr std::array< size_t, NumSizesSizes () const
 
template<size_t N, class Char >
SliceType< CopyConst< Char, ElementType< N > > > Slice (Char *p) const
 
template<class T , class Char >
SliceType< CopyConst< Char, T > > Slice (Char *p) const
 
template<class Char >
std::tuple< SliceType< CopyConst< Char, typename std::tuple_element< SizeSeq, ElementTypes >::type > >... > Slices (Char *p) const
 

Static Public Member Functions

static constexpr size_t Alignment ()
 

Private Types

enum  { NumTypes = sizeof...(Elements), NumSizes = sizeof...(SizeSeq), NumOffsets = sizeof...(OffsetSeq) }
 
template<size_t N>
using ElementAlignment = AlignOf< typename std::tuple_element< N, std::tuple< Elements... >>::type >
 

Static Private Member Functions

template<class T >
static constexpr size_t ElementIndex ()
 

Private Attributes

size_t size_ [NumSizes > 0?NumSizes:1]
 

Detailed Description

template<class... Elements, size_t... SizeSeq, size_t... OffsetSeq>
class absl::container_internal::internal_layout::LayoutImpl< std::tuple< Elements... >, absl::index_sequence< SizeSeq... >, absl::index_sequence< OffsetSeq... > >

Definition at line 338 of file layout.h.

Member Typedef Documentation

template<class... Elements, size_t... SizeSeq, size_t... OffsetSeq>
template<size_t N>
using absl::container_internal::internal_layout::LayoutImpl< std::tuple< Elements... >, absl::index_sequence< SizeSeq... >, absl::index_sequence< OffsetSeq... > >::ElementAlignment = AlignOf<typename std::tuple_element<N, std::tuple<Elements...>>::type>
private

Definition at line 368 of file layout.h.

template<class... Elements, size_t... SizeSeq, size_t... OffsetSeq>
template<size_t N>
using absl::container_internal::internal_layout::LayoutImpl< std::tuple< Elements... >, absl::index_sequence< SizeSeq... >, absl::index_sequence< OffsetSeq... > >::ElementType = typename std::tuple_element<N, ElementTypes>::type

Definition at line 376 of file layout.h.

template<class... Elements, size_t... SizeSeq, size_t... OffsetSeq>
using absl::container_internal::internal_layout::LayoutImpl< std::tuple< Elements... >, absl::index_sequence< SizeSeq... >, absl::index_sequence< OffsetSeq... > >::ElementTypes = std::tuple<typename Type<Elements>::type...>

Definition at line 372 of file layout.h.

Member Enumeration Documentation

template<class... Elements, size_t... SizeSeq, size_t... OffsetSeq>
anonymous enum
private
Enumerator
NumTypes 
NumSizes 
NumOffsets 

Definition at line 345 of file layout.h.

Constructor & Destructor Documentation

template<class... Elements, size_t... SizeSeq, size_t... OffsetSeq>
constexpr absl::container_internal::internal_layout::LayoutImpl< std::tuple< Elements... >, absl::index_sequence< SizeSeq... >, absl::index_sequence< OffsetSeq... > >::LayoutImpl ( IntToSize< SizeSeq >...  sizes)
inlineexplicit

Definition at line 378 of file layout.h.

Member Function Documentation

template<class... Elements, size_t... SizeSeq, size_t... OffsetSeq>
static constexpr size_t absl::container_internal::internal_layout::LayoutImpl< std::tuple< Elements... >, absl::index_sequence< SizeSeq... >, absl::index_sequence< OffsetSeq... > >::Alignment ( )
inlinestatic

Definition at line 383 of file layout.h.

template<class... Elements, size_t... SizeSeq, size_t... OffsetSeq>
constexpr size_t absl::container_internal::internal_layout::LayoutImpl< std::tuple< Elements... >, absl::index_sequence< SizeSeq... >, absl::index_sequence< OffsetSeq... > >::AllocSize ( ) const
inline

Definition at line 594 of file layout.h.

template<class... Elements, size_t... SizeSeq, size_t... OffsetSeq>
std::string absl::container_internal::internal_layout::LayoutImpl< std::tuple< Elements... >, absl::index_sequence< SizeSeq... >, absl::index_sequence< OffsetSeq... > >::DebugString ( ) const
inline

Definition at line 643 of file layout.h.

template<class... Elements, size_t... SizeSeq, size_t... OffsetSeq>
template<class T >
static constexpr size_t absl::container_internal::internal_layout::LayoutImpl< std::tuple< Elements... >, absl::index_sequence< SizeSeq... >, absl::index_sequence< OffsetSeq... > >::ElementIndex ( )
inlinestaticprivate

Definition at line 359 of file layout.h.

template<class... Elements, size_t... SizeSeq, size_t... OffsetSeq>
template<size_t N, EnableIf< N==0 > = 0>
constexpr size_t absl::container_internal::internal_layout::LayoutImpl< std::tuple< Elements... >, absl::index_sequence< SizeSeq... >, absl::index_sequence< OffsetSeq... > >::Offset ( ) const
inline

Definition at line 396 of file layout.h.

template<class... Elements, size_t... SizeSeq, size_t... OffsetSeq>
template<size_t N, EnableIf< N!=0 > = 0>
constexpr size_t absl::container_internal::internal_layout::LayoutImpl< std::tuple< Elements... >, absl::index_sequence< SizeSeq... >, absl::index_sequence< OffsetSeq... > >::Offset ( ) const
inline

Definition at line 401 of file layout.h.

template<class... Elements, size_t... SizeSeq, size_t... OffsetSeq>
template<class T >
constexpr size_t absl::container_internal::internal_layout::LayoutImpl< std::tuple< Elements... >, absl::index_sequence< SizeSeq... >, absl::index_sequence< OffsetSeq... > >::Offset ( ) const
inline

Definition at line 417 of file layout.h.

template<class... Elements, size_t... SizeSeq, size_t... OffsetSeq>
constexpr std::array<size_t, NumOffsets> absl::container_internal::internal_layout::LayoutImpl< std::tuple< Elements... >, absl::index_sequence< SizeSeq... >, absl::index_sequence< OffsetSeq... > >::Offsets ( ) const
inline

Definition at line 422 of file layout.h.

template<class... Elements, size_t... SizeSeq, size_t... OffsetSeq>
template<size_t N, class Char >
CopyConst<Char, ElementType<N> >* absl::container_internal::internal_layout::LayoutImpl< std::tuple< Elements... >, absl::index_sequence< SizeSeq... >, absl::index_sequence< OffsetSeq... > >::Pointer ( Char *  p) const
inline

Definition at line 472 of file layout.h.

template<class... Elements, size_t... SizeSeq, size_t... OffsetSeq>
template<class T , class Char >
CopyConst<Char, T>* absl::container_internal::internal_layout::LayoutImpl< std::tuple< Elements... >, absl::index_sequence< SizeSeq... >, absl::index_sequence< OffsetSeq... > >::Pointer ( Char *  p) const
inline

Definition at line 498 of file layout.h.

template<class... Elements, size_t... SizeSeq, size_t... OffsetSeq>
template<class Char >
std::tuple<CopyConst< Char, typename std::tuple_element<OffsetSeq, ElementTypes>::type>*...> absl::container_internal::internal_layout::LayoutImpl< std::tuple< Elements... >, absl::index_sequence< SizeSeq... >, absl::index_sequence< OffsetSeq... > >::Pointers ( Char *  p) const
inline

Definition at line 521 of file layout.h.

template<class... Elements, size_t... SizeSeq, size_t... OffsetSeq>
template<class Char , size_t N = NumOffsets - 1, EnableIf< N==0 > = 0>
void absl::container_internal::internal_layout::LayoutImpl< std::tuple< Elements... >, absl::index_sequence< SizeSeq... >, absl::index_sequence< OffsetSeq... > >::PoisonPadding ( const Char *  p) const
inline

Definition at line 608 of file layout.h.

template<class... Elements, size_t... SizeSeq, size_t... OffsetSeq>
template<class Char , size_t N = NumOffsets - 1, EnableIf< N!=0 > = 0>
void absl::container_internal::internal_layout::LayoutImpl< std::tuple< Elements... >, absl::index_sequence< SizeSeq... >, absl::index_sequence< OffsetSeq... > >::PoisonPadding ( const Char *  p) const
inline

Definition at line 613 of file layout.h.

template<class... Elements, size_t... SizeSeq, size_t... OffsetSeq>
template<size_t N>
constexpr size_t absl::container_internal::internal_layout::LayoutImpl< std::tuple< Elements... >, absl::index_sequence< SizeSeq... >, absl::index_sequence< OffsetSeq... > >::Size ( ) const
inline

Definition at line 436 of file layout.h.

template<class... Elements, size_t... SizeSeq, size_t... OffsetSeq>
template<class T >
constexpr size_t absl::container_internal::internal_layout::LayoutImpl< std::tuple< Elements... >, absl::index_sequence< SizeSeq... >, absl::index_sequence< OffsetSeq... > >::Size ( ) const
inline

Definition at line 450 of file layout.h.

template<class... Elements, size_t... SizeSeq, size_t... OffsetSeq>
constexpr std::array<size_t, NumSizes> absl::container_internal::internal_layout::LayoutImpl< std::tuple< Elements... >, absl::index_sequence< SizeSeq... >, absl::index_sequence< OffsetSeq... > >::Sizes ( ) const
inline

Definition at line 455 of file layout.h.

template<class... Elements, size_t... SizeSeq, size_t... OffsetSeq>
template<size_t N, class Char >
SliceType<CopyConst<Char, ElementType<N> > > absl::container_internal::internal_layout::LayoutImpl< std::tuple< Elements... >, absl::index_sequence< SizeSeq... >, absl::index_sequence< OffsetSeq... > >::Slice ( Char *  p) const
inline

Definition at line 539 of file layout.h.

template<class... Elements, size_t... SizeSeq, size_t... OffsetSeq>
template<class T , class Char >
SliceType<CopyConst<Char, T> > absl::container_internal::internal_layout::LayoutImpl< std::tuple< Elements... >, absl::index_sequence< SizeSeq... >, absl::index_sequence< OffsetSeq... > >::Slice ( Char *  p) const
inline

Definition at line 556 of file layout.h.

template<class... Elements, size_t... SizeSeq, size_t... OffsetSeq>
template<class Char >
std::tuple<SliceType<CopyConst< Char, typename std::tuple_element<SizeSeq, ElementTypes>::type> >...> absl::container_internal::internal_layout::LayoutImpl< std::tuple< Elements... >, absl::index_sequence< SizeSeq... >, absl::index_sequence< OffsetSeq... > >::Slices ( Char *  p) const
inline

Definition at line 579 of file layout.h.

Member Data Documentation

template<class... Elements, size_t... SizeSeq, size_t... OffsetSeq>
size_t absl::container_internal::internal_layout::LayoutImpl< std::tuple< Elements... >, absl::index_sequence< SizeSeq... >, absl::index_sequence< OffsetSeq... > >::size_[NumSizes > 0?NumSizes:1]
private

Definition at line 664 of file layout.h.


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


abseil_cpp
Author(s):
autogenerated on Wed Jun 19 2019 19:19:59