The Gaudi Framework  v32r0 (3325bb39)
Gaudi::Functional::details::insert_t Struct Reference

#include <GaudiAlg/FunctionalDetails.h>

Public Types

template<typename Container >
using c_remove_ptr_t = std::remove_pointer_t< typename Container::value_type >
 

Public Member Functions

template<typename Container , typename Value >
auto operator() (Container &c, Value &&v) const -> decltype(c.push_back(v))
 
template<typename Container , typename Value >
auto operator() (Container &c, Value &&v) const -> decltype(c.insert(v))
 
template<typename Container , typename Value , typename = std::enable_if_t<std::is_pointer_v<typename Container::value_type>>, typename = std::enable_if_t<std::is_convertible_v<Value, c_remove_ptr_t<Container>>>>
auto operator() (Container &c, Value &&v) const
 

Detailed Description

Definition at line 140 of file FunctionalDetails.h.

Member Typedef Documentation

template<typename Container >
using Gaudi::Functional::details::insert_t::c_remove_ptr_t = std::remove_pointer_t<typename Container::value_type>

Definition at line 143 of file FunctionalDetails.h.

Member Function Documentation

template<typename Container , typename Value >
auto Gaudi::Functional::details::insert_t::operator() ( Container &  c,
Value &&  v 
) const -> decltype( c.push_back( v ) )
inline

Definition at line 146 of file FunctionalDetails.h.

146  {
147  return c.push_back( std::forward<Value>( v ) );
148  }
template<typename Container , typename Value >
auto Gaudi::Functional::details::insert_t::operator() ( Container &  c,
Value &&  v 
) const -> decltype( c.insert( v ) )
inline

Definition at line 151 of file FunctionalDetails.h.

151  {
152  return c.insert( std::forward<Value>( v ) );
153  }
template<typename Container , typename Value , typename = std::enable_if_t<std::is_pointer_v<typename Container::value_type>>, typename = std::enable_if_t<std::is_convertible_v<Value, c_remove_ptr_t<Container>>>>
auto Gaudi::Functional::details::insert_t::operator() ( Container &  c,
Value &&  v 
) const
inline

Definition at line 159 of file FunctionalDetails.h.

159  {
160  return operator()( c, new c_remove_ptr_t<Container>{std::forward<Value>( v )} );
161  }
auto operator()(Container &c, Value &&v) const -> decltype(c.push_back(v))

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