#include <iomanip>
#include <tvmet/Functional.h>
#include <tvmet/Io.h>
Go to the source code of this file.
Define Documentation
#define TVMET_IMPLEMENT_MACRO |
( |
|
NAME, |
|
|
|
OP |
|
) |
| |
Value:template<class T, std::size_t Sz> \
inline \
Vector<T, Sz>& Vector<T, Sz>::operator OP (value_type rhs) { \
typedef XprLiteral<value_type> expr_type; \
this->M_##NAME(XprVector<expr_type, Size>(expr_type(rhs))); \
return *this; \
}
#define TVMET_IMPLEMENT_MACRO |
( |
|
NAME | ) |
|
Value:template<class T, std::size_t Sz> \
template <class E> \
inline \
Vector<T, Sz>& \
Vector<T, Sz>::alias_##NAME (const XprVector<E, Size>& rhs) { \
typedef Vector<T, Sz> temp_type; \
temp_type(rhs).assign_to(*this, Fcnl_##NAME<value_type, typename E::value_type>()); \
return *this; \
}
#define TVMET_IMPLEMENT_MACRO |
( |
|
NAME | ) |
|
Value:template<class T1, std::size_t Sz> \
template <class T2> \
inline \
Vector<T1, Sz>& \
Vector<T1, Sz>::alias_##NAME (const Vector<T2, Size>& rhs) { \
this->alias_##NAME( XprVector<typename Vector<T2, Size>::ConstReference, Size>(rhs.const_ref()) ); \
return *this; \
}
#define TVMET_IMPLEMENT_MACRO |
( |
|
NAME | ) |
|
Value:template<class T, std::size_t Sz> \
template <class E> \
inline \
Vector<T, Sz>& \
Vector<T, Sz>::M_##NAME (const XprVector<E, Size>& rhs) { \
rhs.assign_to(*this, Fcnl_##NAME<value_type, typename E::value_type>()); \
return *this; \
}
#define TVMET_IMPLEMENT_MACRO |
( |
|
NAME | ) |
|
Value:template<class T1, std::size_t Sz> \
template <class T2> \
inline Vector<T1, Sz>& \
Vector<T1, Sz>::M_##NAME (const Vector<T2, Size>& rhs) { \
this->M_##NAME( XprVector<typename Vector<T2, Size>::ConstReference, Size>(rhs.const_ref()) ); \
return *this; \
}
#define TVMET_IMPLEMENT_MACRO |
( |
|
NAME, |
|
|
|
OP |
|
) |
| |
Value:template<class T, std::size_t Sz> \
inline \
Vector<T, Sz>& Vector<T, Sz>::operator OP (std::size_t rhs) { \
typedef XprLiteral<value_type> expr_type; \
this->M_##NAME(XprVector<expr_type, Size>(expr_type(rhs))); \
return *this; \
}