Audacity 3.2.0
Public Types | Static Public Member Functions | List of all members
PackedArray::detail::ExtendedTraits< T, std::void_t< decltype(std::declval< T >().*(Traits< T >::array_member))> > Struct Template Reference

Partial specialization used when Traits<T>::array_member is defined. More...

#include <PackedArray.h>

Inheritance diagram for PackedArray::detail::ExtendedTraits< T, std::void_t< decltype(std::declval< T >().*(Traits< T >::array_member))> >:
[legend]
Collaboration diagram for PackedArray::detail::ExtendedTraits< T, std::void_t< decltype(std::declval< T >().*(Traits< T >::array_member))> >:
[legend]

Public Types

using element_type = typename Traits< T >::element_type
 
using member_type = std::remove_reference_t< decltype(std::declval< T >().*(Traits< T >::array_member))>
 
using iterated_type = std::remove_extent_t< member_type >
 
- Public Types inherited from PackedArray::Traits< T >
using element_type = T
 

Static Public Member Functions

static iterated_typebegin (T *p)
 
static element_typeelement_ptr (T *p)
 
static size_t element_offset ()
 

Detailed Description

template<typename T>
struct PackedArray::detail::ExtendedTraits< T, std::void_t< decltype(std::declval< T >().*(Traits< T >::array_member))> >

Partial specialization used when Traits<T>::array_member is defined.

Definition at line 35 of file PackedArray.h.

Member Typedef Documentation

◆ element_type

template<typename T >
using PackedArray::detail::ExtendedTraits< T, std::void_t< decltype(std::declval< T >().*(Traits< T >::array_member))> >::element_type = typename Traits<T>::element_type

Definition at line 38 of file PackedArray.h.

◆ iterated_type

template<typename T >
using PackedArray::detail::ExtendedTraits< T, std::void_t< decltype(std::declval< T >().*(Traits< T >::array_member))> >::iterated_type = std::remove_extent_t<member_type>

Definition at line 44 of file PackedArray.h.

◆ member_type

template<typename T >
using PackedArray::detail::ExtendedTraits< T, std::void_t< decltype(std::declval< T >().*(Traits< T >::array_member))> >::member_type = std::remove_reference_t<decltype( std::declval<T>().*(Traits<T>::array_member) )>

Definition at line 39 of file PackedArray.h.

Member Function Documentation

◆ begin()

template<typename T >
static iterated_type * PackedArray::detail::ExtendedTraits< T, std::void_t< decltype(std::declval< T >().*(Traits< T >::array_member))> >::begin ( T *  p)
inlinestatic

Definition at line 48 of file PackedArray.h.

48 {
49 return &(p->*(Traits<T>::array_member))[0];
50 }

◆ element_offset()

template<typename T >
static size_t PackedArray::detail::ExtendedTraits< T, std::void_t< decltype(std::declval< T >().*(Traits< T >::array_member))> >::element_offset ( )
inlinestatic

Definition at line 54 of file PackedArray.h.

54 {
55 return reinterpret_cast<size_t>(begin(0));
56 }

References PackedArray::detail::ExtendedTraits< T, typename >::begin().

Here is the call graph for this function:

◆ element_ptr()

template<typename T >
static element_type * PackedArray::detail::ExtendedTraits< T, std::void_t< decltype(std::declval< T >().*(Traits< T >::array_member))> >::element_ptr ( T *  p)
inlinestatic

Definition at line 51 of file PackedArray.h.

References PackedArray::detail::ExtendedTraits< T, typename >::begin().

Here is the call graph for this function:

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