Belle II Software release-09-00-01
ax_name_container_base< T2 > Struct Template Reference
Inheritance diagram for ax_name_container_base< T2 >:
Collaboration diagram for ax_name_container_base< T2 >:

Classes

struct  type_wrap
 

Public Types

using type = T2
 
template<typename Data_T >
using base_t = typename decltype(struct_maker< Data_T >())::type
 

Static Public Member Functions

template<typename T >
static constexpr auto struct_maker ()
 
template<typename T >
static constexpr decltype(auto) get (T &t)
 
template<typename T >
static constexpr decltype(auto) get (const T &t)
 
template<typename T >
static constexpr decltype(auto) get_value (const T &t)
 
template<typename T >
static constexpr decltype(auto) get_value (T &t)
 
static constexpr auto get_name ()
 

Static Public Attributes

static constexpr int c_struct_maker = 0
 
static constexpr int c_getter1 = 1
 
static constexpr int c_get_name = 2
 

Detailed Description

template<typename T2>
struct nt::ax_name_container_base< T2 >

Definition at line 396 of file ntuples_full.h.

Member Typedef Documentation

◆ base_t

using base_t = typename decltype(struct_maker<Data_T>())::type

Definition at line 415 of file ntuples_full.h.

◆ type

using type = T2

Definition at line 397 of file ntuples_full.h.

Member Function Documentation

◆ get() [1/2]

static constexpr decltype(auto) get ( const T &  t)
inlinestaticconstexpr

Definition at line 425 of file ntuples_full.h.

426 {
427 using getter1 = decltype(std::declval<type>()(std::declval<type_wrap<const T&, c_getter1>>()));
428 return getter1::get(t);
429 }

◆ get() [2/2]

static constexpr decltype(auto) get ( T &  t)
inlinestaticconstexpr

Definition at line 418 of file ntuples_full.h.

419 {
420 using getter1 = decltype(std::declval<type>()(std::declval<type_wrap<T&, c_getter1>>()));
421 return getter1::get(t);
422 }

◆ get_name()

static constexpr auto get_name ( )
inlinestaticconstexpr

Definition at line 442 of file ntuples_full.h.

443 {
444 using name_getter = decltype(std::declval<type>()(std::declval<type_wrap<int, c_get_name>>()));
445 return name_getter::get_name();
446 }

◆ get_value() [1/2]

static constexpr decltype(auto) get_value ( const T &  t)
inlinestaticconstexpr

Definition at line 431 of file ntuples_full.h.

432 {
433 return ax_name_container_base::get(t).v;
434 }

◆ get_value() [2/2]

static constexpr decltype(auto) get_value ( T &  t)
inlinestaticconstexpr

Definition at line 437 of file ntuples_full.h.

438 {
439 return ax_name_container_base::get(t).v;
440 }

◆ struct_maker()

static constexpr auto struct_maker ( )
inlinestaticconstexpr

Definition at line 409 of file ntuples_full.h.

410 {
411 return decltype(std::declval<type>()(std::declval<type_wrap<T, c_struct_maker>>())) {};
412 }

Member Data Documentation

◆ c_get_name

constexpr int c_get_name = 2
staticconstexprinherited

Definition at line 392 of file ntuples_full.h.

◆ c_getter1

constexpr int c_getter1 = 1
staticconstexprinherited

Definition at line 391 of file ntuples_full.h.

◆ c_struct_maker

constexpr int c_struct_maker = 0
staticconstexprinherited

Definition at line 390 of file ntuples_full.h.


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