LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
CollectionUtilities.h File Reference
#include "canvas/Persistency/Common/Ptr.h"
#include "canvas/Persistency/Common/PtrVector.h"
#include "canvas/Persistency/Provenance/ProductID.h"
#include "cetlib/map_vector.h"
#include <cstddef>
#include <type_traits>
#include <utility>
#include <vector>

Go to the source code of this file.

Classes

struct  art::detail::mix_offset< C >
 
struct  art::detail::mix_offset< cet::map_vector< P > >
 
struct  art::detail::TwoArgInsert< CONTAINER >
 
struct  art::detail::TwoArgInsert< cet::map_vector< T > >
 
struct  art::detail::has_two_arg_insert< T, typename >
 
struct  art::detail::has_two_arg_insert< T, std::void_t< two_arg_insert_t< T > > >
 
struct  art::detail::has_three_arg_insert_t< T, OutIter, typename >
 
struct  art::detail::has_three_arg_insert_t< T, OutIter, std::void_t< three_arg_insert_t< T, OutIter > > >
 

Namespaces

 art
 
 art::detail
 

Typedefs

template<typename T , typename InIter = typename T::const_iterator>
using art::detail::two_arg_insert_t = decltype(std::declval< T >().insert(std::declval< InIter >(), std::declval< InIter >()))
 
template<typename T , typename OutIter , typename InIter = typename T::const_iterator>
using art::detail::three_arg_insert_t = decltype(std::declval< T >().insert(std::declval< OutIter >(), std::declval< InIter >(), std::declval< InIter >()))
 

Functions

template<typename CONTAINER >
void art::concatContainers (CONTAINER &out, CONTAINER const &in)
 
template<typename COLLECTION >
void art::flattenCollections (std::vector< COLLECTION const * > const &in, COLLECTION &out)
 
template<typename COLLECTION , typename OFFSETS >
void art::flattenCollections (std::vector< COLLECTION const * > const &in, COLLECTION &out, OFFSETS &offsets)
 
template<typename T >
void art::flattenCollections (std::vector< PtrVector< T > const * > const &in, PtrVector< T > &out)
 
template<typename T , typename OFFSETS >
void art::flattenCollections (std::vector< PtrVector< T > const * > const &in, PtrVector< T > &out, OFFSETS &offsets)
 
template<typename T >
bool art::detail::verifyPtrCollection (std::vector< art::PtrVector< T > const * > const &in)
 
template<typename iterator >
bool art::detail::verifyPtrCollection (iterator beg, iterator end, art::ProductID id={}, art::EDProductGetter const *getter=nullptr)
 

Variables

template<typename T >
constexpr bool art::detail::has_three_arg_insert