Logo ROOT  
Reference Guide
No Matches
ROOT::Internal::RDF::IsDataContainer< T > Struct Template Reference

template<typename T>
struct ROOT::Internal::RDF::IsDataContainer< T >

Check for container traits.

Note that for all uses in RDF we don't want to classify std::string as a container. Template specializations of IsDataContainer make it return true for std::span<T>, std::vector<bool> and RVec<bool>, which we do want to count as containers even though they do not satisfy all the traits tested by the generic IsDataContainer<T>.

Definition at line 77 of file Utils.hxx.

Public Types

using Test_t = std::decay_t< T >

Static Public Member Functions

template<typename A >
static constexpr bool Test (...)
template<typename A >
static constexpr bool Test (A *pt, A const *cpt=nullptr, decltype(pt->begin()) *=nullptr, decltype(pt->end()) *=nullptr, decltype(cpt->begin()) *=nullptr, decltype(cpt->end()) *=nullptr, typename A::iterator *pi=nullptr, typename A::const_iterator *pci=nullptr)

Static Public Attributes

static constexpr bool value = Test<Test_t>(nullptr)

#include <ROOT/RDF/Utils.hxx>

Member Typedef Documentation

◆ Test_t

template<typename T >
using ROOT::Internal::RDF::IsDataContainer< T >::Test_t = std::decay_t<T>

Definition at line 78 of file Utils.hxx.

Member Function Documentation

◆ Test() [1/2]

template<typename T >
template<typename A >
static constexpr bool ROOT::Internal::RDF::IsDataContainer< T >::Test (   ...)

Definition at line 96 of file Utils.hxx.

◆ Test() [2/2]

template<typename T >
template<typename A >
static constexpr bool ROOT::Internal::RDF::IsDataContainer< T >::Test ( A *  pt,
A const *  cpt = nullptr,
decltype(pt->begin()) *  = nullptr,
decltype(pt->end()) *  = nullptr,
decltype(cpt->begin()) *  = nullptr,
decltype(cpt->end()) *  = nullptr,
typename A::iterator *  pi = nullptr,
typename A::const_iterator *  pci = nullptr 

Definition at line 81 of file Utils.hxx.

Member Data Documentation

◆ value

template<typename T >
constexpr bool ROOT::Internal::RDF::IsDataContainer< T >::value = Test<Test_t>(nullptr)

Definition at line 101 of file Utils.hxx.

Collaboration diagram for ROOT::Internal::RDF::IsDataContainer< T >:

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