polybori::binary_composition< BinaryOp, FirstOp, SecondOp > Class Template Reference

Compose a binary function with two default constructable unary functions. More...

`#include <pbori_func.h>`

Inheritance diagram for polybori::binary_composition< BinaryOp, FirstOp, SecondOp >:

## Public Types

typedef base::result_type | result_type
| Getting inherited types. More...
typedef BinaryOp | base
| Define types corresponding to template arguments. More...
typedef FirstOp | first_op_type
typedef SecondOp | second_op_type

## Public Member Functions

| binary_composition (const base &binop=base(), const first_op_type &unop1=first_op_type(), const second_op_type &unop2=second_op_type())
template<class FirstType , class SecondType >
result_type | operator() (const FirstType &first, const SecondType &second) const
| The composed operation for constant arguments. More...
template<class FirstType , class SecondType >
result_type | operator() (FirstType &first, const SecondType &second) const
| The composed operation for constant second argument. More...
template<class FirstType , class SecondType >
result_type | operator() (const FirstType &first, SecondType &second) const
| The composed operation for constant first argument. More...

## Protected Attributes

first_op_type | first_op
second_op_type | second_op

## Detailed Description

### template<class BinaryOp, class FirstOp, class SecondOp>
class polybori::binary_composition< BinaryOp, FirstOp, SecondOp >

Compose a binary function with two default constructable unary functions.

## Member Typedef Documentation

template<class BinaryOp, class FirstOp, class SecondOp>

typedef BinaryOp polybori::binary_composition< BinaryOp, FirstOp, SecondOp >::base

Define types corresponding to template arguments.

template<class BinaryOp, class FirstOp, class SecondOp>

typedef FirstOp polybori::binary_composition< BinaryOp, FirstOp, SecondOp >::first_op_type

template<class BinaryOp, class FirstOp, class SecondOp>

typedef base::result_type polybori::binary_composition< BinaryOp, FirstOp, SecondOp >::result_type

Getting inherited types.

template<class BinaryOp, class FirstOp, class SecondOp>

typedef SecondOp polybori::binary_composition< BinaryOp, FirstOp, SecondOp >::second_op_type

## Constructor & Destructor Documentation

template<class BinaryOp, class FirstOp, class SecondOp>

polybori::binary_composition< BinaryOp, FirstOp, SecondOp >::binary_composition | ( | const base & | binop = `base()`,
|  | const first_op_type & | unop1 = `first_op_type()`,
|  | const second_op_type & | unop2 = `second_op_type()`
| ) |  |

inline

## Member Function Documentation

template<class BinaryOp, class FirstOp, class SecondOp>
template<class FirstType , class SecondType >

result_type polybori::binary_composition< BinaryOp, FirstOp, SecondOp >::operator() | ( | const FirstType & | first,
|  | const SecondType & | second
| ) |  | const

inline

The composed operation for constant arguments.

template<class BinaryOp, class FirstOp, class SecondOp>
template<class FirstType , class SecondType >

result_type polybori::binary_composition< BinaryOp, FirstOp, SecondOp >::operator() | ( | FirstType & | first,
|  | const SecondType & | second
| ) |  | const

inline

The composed operation for constant second argument.

template<class BinaryOp, class FirstOp, class SecondOp>
template<class FirstType , class SecondType >

result_type polybori::binary_composition< BinaryOp, FirstOp, SecondOp >::operator() | ( | const FirstType & | first,
|  | SecondType & | second
| ) |  | const

inline

The composed operation for constant first argument.

## Member Data Documentation

template<class BinaryOp, class FirstOp, class SecondOp>

first_op_type polybori::binary_composition< BinaryOp, FirstOp, SecondOp >::first_op

protected

template<class BinaryOp, class FirstOp, class SecondOp>

second_op_type polybori::binary_composition< BinaryOp, FirstOp, SecondOp >::second_op

protected

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

- pbori_func.h