Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
RRangeCast.hxx File Reference
#include "ROOT/RSpan.hxx"
#include <cassert>
#include <iterator>
#include <type_traits>
#include <utility>
Include dependency graph for RRangeCast.hxx:
This graph shows which files directly or indirectly include this file:

Classes

struct  ROOT::Internal::RBaseType< T >
 
struct  ROOT::Internal::RCast< T, isDynamic, isPolymorphic >
 
struct  ROOT::Internal::RCast< T, false, false >
 
struct  ROOT::Internal::RCast< T, false, true >
 
class  ROOT::RRangeCast< T, isDynamic, Range_t >
 Wraps any collection that can be used in range-based loops and applies static_cast<T> or dynamic_cast<T> to each element. More...
 
class  ROOT::Internal::TypedIter< T, WrappedIterator_t, isDynamic >
 

Namespaces

namespace  ROOT
 This file contains a specialised ROOT message handler to test for diagnostic in unit tests.
 
namespace  ROOT::Internal
 

Functions

template<typename >
constexpr bool ROOT::Internal::hasBeginEnd (...)
 
template<typename T >
constexpr auto ROOT::Internal::hasBeginEnd (int) -> decltype(std::begin(std::declval< T >()), std::end(std::declval< T >()), true)
 
template<typename T , typename Range_t >
RRangeCast< T, true, Range_t > ROOT::RangeDynCast (Range_t &&coll)
 Takes any collection that can be used in range-based loops and applies dynamic_cast<T> to each element.
 
template<typename T , typename U , std::size_t N>
RRangeCast< T, true, std::span< U > > ROOT::RangeDynCast (U(&arr)[N])
 
template<typename T , typename Range_t >
RRangeCast< T, false, Range_t > ROOT::RangeStaticCast (Range_t &&coll)
 Takes any collection that can be used in range-based loops and applies static_cast<T> to each element.
 
template<typename T , typename U , std::size_t N>
RRangeCast< T, false, std::span< U > > ROOT::RangeStaticCast (U(&arr)[N])
 

Detailed Description

Author
Jonas Rembser jonas.nosp@m..rem.nosp@m.bser@.nosp@m.cern.nosp@m..ch
Date
2021-08-04

Definition in file RRangeCast.hxx.