STIR 6.4.0
Generic fill/copy functionality for STIR object from/to iterators
Collaboration diagram for Generic fill/copy functionality for STIR object from/to iterators:

Classes

struct  stir::CopyFill< T >
 Helper class for stir::copy_to and stir::fill_from. More...
 
struct  stir::CopyFill< Array< num_dimensions, elemT > >
 Helper class for stir::copy_to and stir::fill_from. More...
 
struct  stir::CopyFill< ProjData >
 Helper class for stir::copy_to and stir::fill_from. More...
 
struct  stir::CopyFill< DynamicProjData >
 Copy all bins to a range specified by an iterator. More...
 
struct  stir::CopyFill< MultipleProjData >
 Copy all bins to a range specified by an iterator. More...
 

Typedefs

typedef Array< num_dimensions, elemT > stir::CopyFill< Array< num_dimensions, elemT > >::Array_type
 

Functions

template<typename iterT>
static iterT stir::CopyFill< T >::copy_to (const T &stir_object, iterT iter)
 
template<typename iterT>
static void stir::CopyFill< T >::fill_from (T &stir_object, iterT iter, iterT iter_end)
 
template<typename iterT>
static iterT stir::CopyFill< Array< num_dimensions, elemT > >::copy_to (const Array_type &stir_array, iterT iter)
 
template<typename iterT>
static void stir::CopyFill< Array< num_dimensions, elemT > >::fill_from (Array_type &stir_array, iterT iter, iterT iter_end)
 
template<typename iterT>
static iterT stir::CopyFill< ProjData >::copy_to (const ProjData &stir_object, iterT iter)
 
template<typename iterT>
static void stir::CopyFill< ProjData >::fill_from (ProjData &stir_object, iterT iter, iterT iter_end)
 
template<typename T, typename iterT>
iterT stir::copy_to (const T &stir_object, iterT iter)
 Copy all bins to a range specified by a iterator.
 
template<typename T, typename iterT>
void stir::fill_from (T &stir_object, iterT iter, iterT iter_end)
 set all elements of stir_object from an iterator
 
template<typename iterT>
void stir::fill_from (DynamicProjData &stir_object, iterT iter, iterT)
 set all elements of a MultipleProjData from an iterator
 

Detailed Description

Todo
current mechanism requires overloading for specific classes. This could be resolved using SFINAE.

Function Documentation

◆ copy_to()

template<typename T, typename iterT>
iterT stir::copy_to ( const T & stir_object,
iterT iter )
inline

Copy all bins to a range specified by a iterator.

Returns
iter advanced over the range (as std::copy)
Warning
there is no range-check on iter

References copy_to().

Referenced by copy_to(), and stir::ArrayTests::run_tests().

◆ fill_from() [1/2]

template<typename T, typename iterT>
void stir::fill_from ( T & stir_object,
iterT iter,
iterT iter_end )
inline

set all elements of stir_object from an iterator

Warning
there is no size/range-check on iter

References fill_from().

Referenced by fill_from(), fill_from(), fill_from(), and stir::ArrayTests::run_tests().

◆ fill_from() [2/2]

template<typename iterT>
void stir::fill_from ( DynamicProjData & stir_object,
iterT iter,
iterT  )

set all elements of a MultipleProjData from an iterator

Implementation that resorts to MultipleProjData::fill_from

Warning
there is no size/range-check on iter

References fill_from().