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

#include <layout.h>

List of all members.

Public Member Functions

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,
NumOffsets
Offsets () const
template<size_t N>
constexpr size_t Size () const
template<class T >
constexpr size_t Size () const
constexpr std::array< size_t,
NumSizes
Sizes () const

Static Public Member Functions

static constexpr size_t Alignment ()

Private Types

enum  { NumTypes = sizeof...(Elements), NumSizes = sizeof...(SizeSeq), NumOffsets = sizeof...(OffsetSeq) }

Private Member Functions

 static_assert (sizeof...(Elements) > 0,"At least one field is required")
 static_assert (absl::conjunction< IsLegalElementType< Elements >...>::value,"Invalid element type (see IsLegalElementType)")
 static_assert (NumOffsets==adl_barrier::Min(NumTypes, NumSizes+1),"Internal error")
 static_assert (NumTypes > 0,"Internal error")

Static Private Member Functions

template<class T >
static constexpr size_t ElementIndex ()

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 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) [inline, explicit]

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 ( ) [inline, static]

Definition at line 383 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 ( ) [inline, static, private]

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>
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>
absl::container_internal::internal_layout::LayoutImpl< std::tuple< Elements...>, absl::index_sequence< SizeSeq...>, absl::index_sequence< OffsetSeq...> >::static_assert ( sizeof...  Elements,
,
"At least one field is required"   
) [private]
template<class... Elements, size_t... SizeSeq, size_t... OffsetSeq>
absl::container_internal::internal_layout::LayoutImpl< std::tuple< Elements...>, absl::index_sequence< SizeSeq...>, absl::index_sequence< OffsetSeq...> >::static_assert ( absl::conjunction< IsLegalElementType< Elements >...>::value  ,
"Invalid element type (see IsLegalElementType)"   
) [private]
template<class... Elements, size_t... SizeSeq, size_t... OffsetSeq>
absl::container_internal::internal_layout::LayoutImpl< std::tuple< Elements...>, absl::index_sequence< SizeSeq...>, absl::index_sequence< OffsetSeq...> >::static_assert ( NumOffsets  = =adl_barrier::Min(NumTypesNumSizes+1),
"Internal error"   
) [private]
template<class... Elements, size_t... SizeSeq, size_t... OffsetSeq>
absl::container_internal::internal_layout::LayoutImpl< std::tuple< Elements...>, absl::index_sequence< SizeSeq...>, absl::index_sequence< OffsetSeq...> >::static_assert ( NumTypes  ,
,
"Internal error"   
) [private]

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


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