libpsynth 0.2.1
Functions
static_for_each

Equivalent to std::for_each. More...

Functions

template<typename P1 , typename Op >
PSYNTH_FORCEINLINE Op psynth::sound::static_for_each (P1 &p1, Op op)
template<typename P1 , typename Op >
PSYNTH_FORCEINLINE Op psynth::sound::static_for_each (const P1 &p1, Op op)
template<typename P1 , typename P2 , typename Op >
PSYNTH_FORCEINLINE Op psynth::sound::static_for_each (P1 &p1, P2 &p2, Op op)
template<typename P1 , typename P2 , typename Op >
PSYNTH_FORCEINLINE Op psynth::sound::static_for_each (P1 &p1, const P2 &p2, Op op)
template<typename P1 , typename P2 , typename Op >
PSYNTH_FORCEINLINE Op psynth::sound::static_for_each (const P1 &p1, P2 &p2, Op op)
template<typename P1 , typename P2 , typename Op >
PSYNTH_FORCEINLINE Op psynth::sound::static_for_each (const P1 &p1, const P2 &p2, Op op)
template<typename P1 , typename P2 , typename P3 , typename Op >
PSYNTH_FORCEINLINE Op psynth::sound::static_for_each (P1 &p1, P2 &p2, P3 &p3, Op op)
template<typename P1 , typename P2 , typename P3 , typename Op >
PSYNTH_FORCEINLINE Op psynth::sound::static_for_each (P1 &p1, P2 &p2, const P3 &p3, Op op)
template<typename P1 , typename P2 , typename P3 , typename Op >
PSYNTH_FORCEINLINE Op psynth::sound::static_for_each (P1 &p1, const P2 &p2, P3 &p3, Op op)
template<typename P1 , typename P2 , typename P3 , typename Op >
PSYNTH_FORCEINLINE Op psynth::sound::static_for_each (P1 &p1, const P2 &p2, const P3 &p3, Op op)
template<typename P1 , typename P2 , typename P3 , typename Op >
PSYNTH_FORCEINLINE Op psynth::sound::static_for_each (const P1 &p1, P2 &p2, P3 &p3, Op op)
template<typename P1 , typename P2 , typename P3 , typename Op >
PSYNTH_FORCEINLINE Op psynth::sound::static_for_each (const P1 &p1, P2 &p2, const P3 &p3, Op op)
template<typename P1 , typename P2 , typename P3 , typename Op >
PSYNTH_FORCEINLINE Op psynth::sound::static_for_each (const P1 &p1, const P2 &p2, P3 &p3, Op op)
template<typename P1 , typename P2 , typename P3 , typename Op >
PSYNTH_FORCEINLINE Op psynth::sound::static_for_each (const P1 &p1, const P2 &p2, const P3 &p3, Op op)

Detailed Description

Equivalent to std::for_each.

Pairs the elements semantically

Example: Use static_for_each to increment a planar frame iterator

   struct increment { 
      template <typename Incrementable> 
      void operator()(Incrementable& x) const { ++x; } 
   };

   template <typename ChannelBase>
   void increment_elements(ChannelBase& cb) {
       static_for_each(cb, increment());
   }

   bits8 red[2], green[2], blue[2];
   rgb8c_planar_ptr_t p1(red,green,blue);
   rgb8c_planar_ptr_t p2=p1;
   increment_elements(p1);
   ++p2;
   assert(p1 == p2);

Function Documentation

template<typename P1 , typename Op >
PSYNTH_FORCEINLINE Op psynth::sound::static_for_each ( P1 &  p1,
Op  op 
)
template<typename P1 , typename P2 , typename P3 , typename Op >
PSYNTH_FORCEINLINE Op psynth::sound::static_for_each ( const P1 &  p1,
const P2 &  p2,
const P3 &  p3,
Op  op 
)
template<typename P1 , typename P2 , typename P3 , typename Op >
PSYNTH_FORCEINLINE Op psynth::sound::static_for_each ( const P1 &  p1,
const P2 &  p2,
P3 &  p3,
Op  op 
)
template<typename P1 , typename P2 , typename P3 , typename Op >
PSYNTH_FORCEINLINE Op psynth::sound::static_for_each ( const P1 &  p1,
P2 &  p2,
const P3 &  p3,
Op  op 
)
template<typename P1 , typename P2 , typename P3 , typename Op >
PSYNTH_FORCEINLINE Op psynth::sound::static_for_each ( const P1 &  p1,
P2 &  p2,
P3 &  p3,
Op  op 
)
template<typename P1 , typename P2 , typename P3 , typename Op >
PSYNTH_FORCEINLINE Op psynth::sound::static_for_each ( P1 &  p1,
const P2 &  p2,
const P3 &  p3,
Op  op 
)
template<typename P1 , typename P2 , typename P3 , typename Op >
PSYNTH_FORCEINLINE Op psynth::sound::static_for_each ( P1 &  p1,
const P2 &  p2,
P3 &  p3,
Op  op 
)
template<typename P1 , typename P2 , typename P3 , typename Op >
PSYNTH_FORCEINLINE Op psynth::sound::static_for_each ( P1 &  p1,
P2 &  p2,
const P3 &  p3,
Op  op 
)
template<typename P1 , typename P2 , typename P3 , typename Op >
PSYNTH_FORCEINLINE Op psynth::sound::static_for_each ( P1 &  p1,
P2 &  p2,
P3 &  p3,
Op  op 
)
template<typename P1 , typename P2 , typename Op >
PSYNTH_FORCEINLINE Op psynth::sound::static_for_each ( const P1 &  p1,
const P2 &  p2,
Op  op 
)
template<typename P1 , typename P2 , typename Op >
PSYNTH_FORCEINLINE Op psynth::sound::static_for_each ( const P1 &  p1,
P2 &  p2,
Op  op 
)
template<typename P1 , typename P2 , typename Op >
PSYNTH_FORCEINLINE Op psynth::sound::static_for_each ( P1 &  p1,
const P2 &  p2,
Op  op 
)
template<typename P1 , typename P2 , typename Op >
PSYNTH_FORCEINLINE Op psynth::sound::static_for_each ( P1 &  p1,
P2 &  p2,
Op  op 
)
template<typename P1 , typename Op >
PSYNTH_FORCEINLINE Op psynth::sound::static_for_each ( const P1 &  p1,
Op  op 
)