plll  1.0
plll::arithmetic::binary_operation< A, B, Op > Struct Template Reference

Provides information on the result of a binary arithmetic operation. More...

#include <arithmetic.hpp>

Public Types

enum  { supported, intermediate_expression }
 
typedef
implementation::binary_operation_impl
< typename
helper::remove_decorations< A >
::Result, typename
helper::remove_decorations< B >
::Result, Op >
::IntermediateType 
IntermediateType
 
typedef
implementation::binary_operation_impl
< typename
helper::remove_decorations< A >
::Result, typename
helper::remove_decorations< B >
::Result, Op >::ResultType 
ResultType
 

Detailed Description

template<typename A, typename B, typename Op>
struct plll::arithmetic::binary_operation< A, B, Op >

Provides information on the result of a binary arithmetic operation.

See Result Types of Arithmetic Operations for documentation.

Template Parameters
AThe first operand.
BThe second operand.
OpThe operator. Should be one of op::addition, op::subtraction, op::multiplication, op::division and op::modulo.

Definition at line 93 of file arithmetic.hpp.

Member Typedef Documentation

template<typename A, typename B, typename Op>
typedef implementation::binary_operation_impl<typename helper::remove_decorations<A>::Result, typename helper::remove_decorations<B>::Result, Op>::IntermediateType plll::arithmetic::binary_operation< A, B, Op >::IntermediateType

The intermediate result of the operation op involving the two operands of type A and B. This will be the direct result type of A op B, and usually is a type which contains almost no informations and which can be copied efficiently (as opposed to ResultType, which can be expensive to copy).

Definition at line 114 of file arithmetic.hpp.

template<typename A, typename B, typename Op>
typedef implementation::binary_operation_impl<typename helper::remove_decorations<A>::Result, typename helper::remove_decorations<B>::Result, Op>::ResultType plll::arithmetic::binary_operation< A, B, Op >::ResultType

The final result type of the operation op involving two operands of type A and B.

Definition at line 110 of file arithmetic.hpp.

Member Enumeration Documentation

template<typename A, typename B, typename Op>
anonymous enum
Enumerator
supported 

A boolean telling whether the current operation is supported, i.e. whether the other fields and properties are defined. This should always be true except if the instantiation is not defined.

intermediate_expression 

A boolean telling whether the result of the expression is an intermediate expression, for example in case of expression templates, or already a final value. In case this is true, ResultType and IntermediateType are different types, and in case this is false, they are the same type.

Definition at line 95 of file arithmetic.hpp.


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