libpsynth 0.2.1
Public Types | Public Member Functions
psynth::sound::binary_operation_obj< Derived, Result > Struct Template Reference

A generic binary operation on rangesUse this class as a convenience superclass when defining an operation for any image ranges. More...

#include <algorithm.hpp>

List of all members.

Public Types

typedef Result result_type

Public Member Functions

template<typename V1 , typename V2 >
PSYNTH_FORCEINLINE result_type operator() (const std::pair< const V1 *, const V2 * > &p) const
template<typename V1 , typename V2 >
PSYNTH_FORCEINLINE result_type operator() (const V1 &v1, const V2 &v2) const
result_type operator() (const error_type &) const

Detailed Description

template<typename Derived, typename Result = void>
struct psynth::sound::binary_operation_obj< Derived, Result >

A generic binary operation on ranges

Use this class as a convenience superclass when defining an operation for any image ranges.

Many operations have different behavior when the two ranges are compatible. This class checks for compatibility and invokes apply_compatible(V1,V2) or apply_incompatible(V1,V2) of the subclass. You must provide apply_compatible(V1,V2) method in your subclass, but apply_incompatible(V1,V2) is not required and the default throws std::bad_cast.


Member Typedef Documentation

template<typename Derived, typename Result = void>
typedef Result psynth::sound::binary_operation_obj< Derived, Result >::result_type

Member Function Documentation

template<typename Derived, typename Result = void>
template<typename V1 , typename V2 >
PSYNTH_FORCEINLINE result_type psynth::sound::binary_operation_obj< Derived, Result >::operator() ( const std::pair< const V1 *, const V2 * > &  p) const [inline]
template<typename Derived, typename Result = void>
result_type psynth::sound::binary_operation_obj< Derived, Result >::operator() ( const error_type ) const [inline]
template<typename Derived, typename Result = void>
template<typename V1 , typename V2 >
PSYNTH_FORCEINLINE result_type psynth::sound::binary_operation_obj< Derived, Result >::operator() ( const V1 &  v1,
const V2 &  v2 
) const [inline]

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