basefuncs.hpp File Reference

#include "config.hpp"

Go to the source code of this file.

Namespaces

namespace  Arageli

Defines

#define ARAGELI_BASEFUNC_PREFIX_UNARY(NAME, OPER)
#define ARAGELI_BASEFUNC_BINARY(NAME, OPER)
#define ARAGELI_BASEFUNC_RIGHT_ASSIGN_NATIVE(NAME, OPER)
#define ARAGELI_BASEFUNC_RIGHT_ASSIGN_NOTNATIVE(NAME, OPER)
#define ARAGELI_BASEFUNC_LEFT_ASSIGN(NAME, OPER)
#define ARAGELI_BASEFUNC_UNARY_ASSIGN(NAME, OPER)

Functions

template<typename T, typename Res>
Res & Arageli::indirection (const T &x, Res &res)
template<typename T, typename Res>
Res & Arageli::address (const T &x, Res &res)
template<typename T, typename Res>
Res & Arageli::unary_plus (const T &x, Res &res)
template<typename T, typename Res>
Res & Arageli::unary_minus (const T &x, Res &res)
template<typename T, typename Res>
Res & Arageli::logical_not (const T &x, Res &res)
template<typename T, typename Res>
Res & Arageli::bitwise_not (const T &x, Res &res)
template<typename T, typename Res>
Res & Arageli::prefix_increment (T &x, Res &res)
template<typename T, typename Res>
Res & Arageli::prefix_decrement (T &x, Res &res)
template<typename T, typename Res>
Res & Arageli::postfix_increment (T &x, Res &res)
template<typename T, typename Res>
Res & Arageli::postfix_decrement (T &x, Res &res)
template<typename T1, typename T2, typename Res>
Res & Arageli::plus (const T1 &x, const T2 &y, Res &res)
template<typename T1, typename T2, typename Res>
Res & Arageli::minus (const T1 &x, const T2 &y, Res &res)
template<typename T1, typename T2, typename Res>
Res & Arageli::multiplies (const T1 &x, const T2 &y, Res &res)
template<typename T1, typename T2, typename Res>
Res & Arageli::divides (const T1 &x, const T2 &y, Res &res)
template<typename T1, typename T2, typename Res>
Res & Arageli::modulus (const T1 &x, const T2 &y, Res &res)
template<typename T1, typename T2, typename Res>
Res & Arageli::logical_or (const T1 &x, const T2 &y, Res &res)
template<typename T1, typename T2, typename Res>
Res & Arageli::logical_and (const T1 &x, const T2 &y, Res &res)
template<typename T1, typename T2, typename Res>
Res & Arageli::equal_to (const T1 &x, const T2 &y, Res &res)
template<typename T1, typename T2, typename Res>
Res & Arageli::not_equal_to (const T1 &x, const T2 &y, Res &res)
template<typename T1, typename T2, typename Res>
Res & Arageli::greater (const T1 &x, const T2 &y, Res &res)
template<typename T1, typename T2, typename Res>
Res & Arageli::less (const T1 &x, const T2 &y, Res &res)
template<typename T1, typename T2, typename Res>
Res & Arageli::greater_equal (const T1 &x, const T2 &y, Res &res)
template<typename T1, typename T2, typename Res>
Res & Arageli::less_equal (const T1 &x, const T2 &y, Res &res)
template<typename T1, typename T2, typename Res>
Res & Arageli::bitwise_or (const T1 &x, const T2 &y, Res &res)
template<typename T1, typename T2, typename Res>
Res & Arageli::bitwise_and (const T1 &x, const T2 &y, Res &res)
template<typename T1, typename T2, typename Res>
Res & Arageli::bitwise_xor (const T1 &x, const T2 &y, Res &res)
template<typename T1, typename T2, typename Res>
Res & Arageli::shift_left (const T1 &x, const T2 &y, Res &res)
template<typename T1, typename T2, typename Res>
Res & Arageli::shift_right (const T1 &x, const T2 &y, Res &res)
template<typename T1, typename T2>
T1 & Arageli::right_assign_plus (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::assign_plus (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::right_assign_minus (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::assign_minus (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::right_assign_multiplies (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::assign_multiplies (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::right_assign_divides (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::assign_divides (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::right_assign_modulus (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::assign_modulus (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::right_assign_bitwise_or (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::assign_bitwise_or (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::right_assign_bitwise_and (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::assign_bitwise_and (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::right_assign_bitwise_xor (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::assign_bitwise_xor (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::right_assign_shift_left (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::assign_shift_left (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::right_assign_shift_right (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::assign_shift_right (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::right_assign_logical_or (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::assign_logical_or (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::right_assign_logical_and (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::assign_logical_and (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::right_assign_equal_to (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::assign_equal_to (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::right_assign_not_equal_to (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::assign_not_equal_to (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::right_assign_greater (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::assign_greater (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::right_assign_less (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::assign_less (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::right_assign_greater_equal (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::assign_greater_equal (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::right_assign_less_equal (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::assign_less_equal (T1 &x, const T2 &y)
template<typename T1, typename T2>
T1 & Arageli::left_assign_plus (const T1 &x, T2 &y)
template<typename T1, typename T2>
T1 & Arageli::left_assign_minus (const T1 &x, T2 &y)
template<typename T1, typename T2>
T1 & Arageli::left_assign_multiplies (const T1 &x, T2 &y)
template<typename T1, typename T2>
T1 & Arageli::left_assign_divides (const T1 &x, T2 &y)
template<typename T1, typename T2>
T1 & Arageli::left_assign_modulus (const T1 &x, T2 &y)
template<typename T1, typename T2>
T1 & Arageli::left_assign_logical_or (const T1 &x, T2 &y)
template<typename T1, typename T2>
T1 & Arageli::left_assign_logical_and (const T1 &x, T2 &y)
template<typename T1, typename T2>
T1 & Arageli::left_assign_equal_to (const T1 &x, T2 &y)
template<typename T1, typename T2>
T1 & Arageli::left_assign_not_equal_to (const T1 &x, T2 &y)
template<typename T1, typename T2>
T1 & Arageli::left_assign_greater (const T1 &x, T2 &y)
template<typename T1, typename T2>
T1 & Arageli::left_assign_less (const T1 &x, T2 &y)
template<typename T1, typename T2>
T1 & Arageli::left_assign_greater_equal (const T1 &x, T2 &y)
template<typename T1, typename T2>
T1 & Arageli::left_assign_less_equal (const T1 &x, T2 &y)
template<typename T1, typename T2>
T1 & Arageli::left_assign_bitwise_or (const T1 &x, T2 &y)
template<typename T1, typename T2>
T1 & Arageli::left_assign_bitwise_and (const T1 &x, T2 &y)
template<typename T1, typename T2>
T1 & Arageli::left_assign_bitwise_xor (const T1 &x, T2 &y)
template<typename T1, typename T2>
T1 & Arageli::left_assign_shift_left (const T1 &x, T2 &y)
template<typename T1, typename T2>
T1 & Arageli::left_assign_shift_right (const T1 &x, T2 &y)
template<typename T>
T & Arageli::assign_indirection (T &x)
template<typename T>
T & Arageli::assign_address (T &x)
template<typename T>
T & Arageli::assign_unary_plus (T &x)
template<typename T>
T & Arageli::assign_unary_minus (T &x)
template<typename T>
T & Arageli::assign_logical_not (T &x)
template<typename T>
T & Arageli::assign_bitwise_not (T &x)


Detailed Description

Additional fuctions that represent each basic operation, like addition and multiplication, as function that get the result through one of parameter. And other functionality.

Definition in file basefuncs.hpp.


Define Documentation

#define ARAGELI_BASEFUNC_BINARY ( NAME,
OPER   ) 

Value:

template <typename T1, typename T2, typename Res>       \
    inline Res& NAME (const T1& x, const T2& y, Res& res)   \
    { return res = x OPER y; }

Definition at line 68 of file basefuncs.hpp.

#define ARAGELI_BASEFUNC_LEFT_ASSIGN ( NAME,
OPER   ) 

Value:

template <typename T1, typename T2>                 \
    inline T1& left_assign_##NAME (const T1& x, T2& y)  \
    { return y = x OPER y; }

Definition at line 136 of file basefuncs.hpp.

#define ARAGELI_BASEFUNC_PREFIX_UNARY ( NAME,
OPER   ) 

Value:

template <typename T, typename Res>             \
    inline Res& NAME (const T& x, Res& res)         \
    { return res = OPER x; }

Definition at line 35 of file basefuncs.hpp.

#define ARAGELI_BASEFUNC_RIGHT_ASSIGN_NATIVE ( NAME,
OPER   ) 

Value:

template <typename T1, typename T2>                 \
    inline T1& right_assign_##NAME (T1& x, const T2& y) \
    { return x OPER y; }                                \
                                                        \
    template <typename T1, typename T2>                 \
    inline T1& assign_##NAME (T1& x, const T2& y)       \
    { return left_assign(x, y); }

Definition at line 95 of file basefuncs.hpp.

#define ARAGELI_BASEFUNC_RIGHT_ASSIGN_NOTNATIVE ( NAME,
OPER   ) 

Value:

template <typename T1, typename T2>                     \
    inline T1& right_assign_##NAME (T1& x, const T2& y)     \
    { return x = x OPER y; }                                \
                                                            \
    template <typename T1, typename T2>                     \
    inline T1& assign_##NAME (T1& x, const T2& y)           \
    { return left_assign(x, y); }

Definition at line 117 of file basefuncs.hpp.

#define ARAGELI_BASEFUNC_UNARY_ASSIGN ( NAME,
OPER   ) 

Value:

template <typename T>                           \
    inline T& assign_##NAME (T& x)                  \
    { return x = OPER x; }

Definition at line 160 of file basefuncs.hpp.


Generated on Thu Aug 31 17:38:16 2006 for Arageli by  doxygen 1.4.7