| The Gaudi Framework v28r2p1 (f1a77ff4)

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Classes | Public Types | Public Member Functions | Private Types | Private Attributes | Static Private Attributes | List of all members
Gaudi::Functional::details::vector_of_const_< Container > Class Template Reference

`#include <GaudiAlg/FunctionalDetails.h>`

Collaboration diagram for Gaudi::Functional::details::vector_of_const_< Container >:
[legend]

## Classes
class | iterator

## Public Types
using | value_type = std::conditional_t< is_optional, ptr_t, val_t >
using | size_type = typename ContainerVector::size_type

## Public Member Functions
| vector_of_const_ ()=default
void | reserve (size_type size)
template<typename T >
void | push_back (T &&container)
iterator | begin () const
iterator | end () const
size_type | size () const
const Container & | operator[] (size_type i) const
const Container & | at (size_type i) const
bool | is_null (size_type i) const

## Private Types
using | val_t = std::add_const_t< std::remove_pointer_t< Container >>
using | ptr_t = std::add_pointer_t< val_t >
using | ref_t = std::add_lvalue_reference_t< val_t >
using | ContainerVector = std::vector< ptr_t >

## Private Attributes
ContainerVector | m_containers

## Static Private Attributes
static constexpr bool | is_optional = std::is_pointer<Container>::value

## Detailed Description

### template<typename Container>
class Gaudi::Functional::details::vector_of_const_< Container >

Definition at line 171 of file FunctionalDetails.h.

## Member Typedef Documentation

template<typename Container >

using Gaudi::Functional::details::vector_of_const_< Container >::ContainerVector = std::vector<ptr_t>
| private

Definition at line 176 of file FunctionalDetails.h.

template<typename Container >

using Gaudi::Functional::details::vector_of_const_< Container >::ptr_t = std::add_pointer_t<val_t>
| private

Definition at line 174 of file FunctionalDetails.h.

template<typename Container >

using Gaudi::Functional::details::vector_of_const_< Container >::ref_t = std::add_lvalue_reference_t<val_t>
| private

Definition at line 175 of file FunctionalDetails.h.

template<typename Container >

using Gaudi::Functional::details::vector_of_const_< Container >::size_type = typename ContainerVector::size_type

Definition at line 180 of file FunctionalDetails.h.

template<typename Container >

using Gaudi::Functional::details::vector_of_const_< Container >::val_t = std::add_const_t<std::remove_pointer_t<Container>>
| private

Definition at line 173 of file FunctionalDetails.h.

template<typename Container >

using Gaudi::Functional::details::vector_of_const_< Container >::value_type = std::conditional_t<is_optional,ptr_t,val_t>

Definition at line 179 of file FunctionalDetails.h.

## Constructor & Destructor Documentation

template<typename Container >

Gaudi::Functional::details::vector_of_const_< Container >::vector_of_const_ | ( |  | ) |
| default

## Member Function Documentation

template<typename Container >

const Container& Gaudi::Functional::details::vector_of_const_< Container >::at | ( | size_type | i | ) | const
| inline

Definition at line 202 of file FunctionalDetails.h.

202 { if (i>=size()) throw std::out_of_range{"vector_of_const_::at"} ; return *m_containers[i]; }
std::out_of_range
STL class.
Gaudi::Functional::details::vector_of_const_::size
size_type size() const
Definition: FunctionalDetails.h:200
Gaudi::Functional::details::vector_of_const_::m_containers
ContainerVector m_containers
Definition: FunctionalDetails.h:177
template<typename Container >

iterator Gaudi::Functional::details::vector_of_const_< Container >::begin | ( |  | ) | const
| inline

Definition at line 198 of file FunctionalDetails.h.

198 { return m_containers.begin(); }
Gaudi::Functional::details::vector_of_const_::m_containers
ContainerVector m_containers
Definition: FunctionalDetails.h:177
std::vector::begin
T begin(T...args)
template<typename Container >

iterator Gaudi::Functional::details::vector_of_const_< Container >::end | ( |  | ) | const
| inline

Definition at line 199 of file FunctionalDetails.h.

199 { return m_containers.end(); }
std::vector::end
T end(T...args)
Gaudi::Functional::details::vector_of_const_::m_containers
ContainerVector m_containers
Definition: FunctionalDetails.h:177
template<typename Container >

bool Gaudi::Functional::details::vector_of_const_< Container >::is_null | ( | size_type | i | ) | const
| inline

Definition at line 203 of file FunctionalDetails.h.

203 { return !m_containers[i]; }
Gaudi::Functional::details::vector_of_const_::m_containers
ContainerVector m_containers
Definition: FunctionalDetails.h:177
template<typename Container >

const Container& Gaudi::Functional::details::vector_of_const_< Container >::operator[] | ( | size_type | i | ) | const
| inline

Definition at line 201 of file FunctionalDetails.h.

201 { return *m_containers[i]; }
Gaudi::Functional::details::vector_of_const_::m_containers
ContainerVector m_containers
Definition: FunctionalDetails.h:177
template<typename Container >
template<typename T >

void Gaudi::Functional::details::vector_of_const_< Container >::push_back | ( | T && | container | ) |
| inline

Definition at line 197 of file FunctionalDetails.h.

197 { details2::push_back(m_containers,std::forward<T>(container), std::integral_constant<bool,is_optional>{});} // note: does not copy its argument, so we're not really a container...
Gaudi::Functional::details::details2::push_back
void push_back(Container &c, const Value &v, std::true_type)
Definition: FunctionalDetails.h:154
Gaudi::Functional::details::vector_of_const_::m_containers
ContainerVector m_containers
Definition: FunctionalDetails.h:177
std::integral_constant
template<typename Container >

void Gaudi::Functional::details::vector_of_const_< Container >::reserve | ( | size_type | size | ) |
| inline

Definition at line 195 of file FunctionalDetails.h.

195 { m_containers.reserve(size); }
Gaudi::Functional::details::vector_of_const_::size
size_type size() const
Definition: FunctionalDetails.h:200
Gaudi::Functional::details::vector_of_const_::m_containers
ContainerVector m_containers
Definition: FunctionalDetails.h:177
std::vector::reserve
T reserve(T...args)
template<typename Container >

size_type Gaudi::Functional::details::vector_of_const_< Container >::size | ( |  | ) | const
| inline

Definition at line 200 of file FunctionalDetails.h.

200 { return m_containers.size(); }
Gaudi::Functional::details::vector_of_const_::m_containers
ContainerVector m_containers
Definition: FunctionalDetails.h:177
std::vector::size
T size(T...args)

## Member Data Documentation

template<typename Container >

constexpr bool Gaudi::Functional::details::vector_of_const_< Container >::is_optional = std::is_pointer<Container>::value
| static private

Definition at line 172 of file FunctionalDetails.h.

template<typename Container >

ContainerVector Gaudi::Functional::details::vector_of_const_< Container >::m_containers
| private

Definition at line 177 of file FunctionalDetails.h.

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

- GaudiAlg/GaudiAlg/FunctionalDetails.h