Traits

概要

型特性(type traits)を提供する。

  • ヘッダ
#include <tlnc/traits.hpp>

クラス一覧

いずれもtlnc名前空間に属する。

is_*系

is_で始まるクラステンプレートは、ある条件を満たす時にstd::true_typeを継承し、 条件を満たさない時はstd::false_typeを継承する。

class is_ublas_vector<typename T>

Tboost::numeric::ublas::vector_expression<E>から派生しているかを判定する。

class is_ublas_matrix<typename T>

Tboost::numeric::ublas::matrix_expression<E>から派生しているかを判定する。

class is_expression<typename T>

Ttlnc::expressions名前空間内で定義され、数式内に記述できる型かどうかを判定する。

class is_callable<typename T, typename ... U>

関数または関数オブジェクトを表す型Tのインスタンスに対して、 U...を型とするオブジェクトを引数として与えて呼び出しが行えるかどうかを判定する。

class is_value<typename T>

Tconstantのテンプレートパラメータとなることができるかどうかを判定する。 詳細はconstantに記載する。

その他

class value_type<typename T>
type type

Tis_ublas_vectoris_ublas_matrix を満たす場合はT::value_type、そうでなければTとなる。 エイリアスvalue_type_t<T>が存在する。

class constant_traits<typename T>
  • 宣言
template <typename T, typename = void>
struct constant_traits;

expressions::constantから様々な情報を取得するためのtraits。

static constexpr bool is_constant

Texpressions::constantで、 expressions::constantに渡されているテンプレートパラメータが is_valueを満たす時にtrue、 それ以外の時にfalseとなる。

static constexpr bool is_zero

is_constantfalseの時は常にfalseとなる。 is_constanttrueで、 かつexpressions::constantに渡されているテンプレートパラメータが ちょうど0.0を表す場合にtrueとなる。

static constexpr bool is_one

is_constantfalseの時は常にfalseとなる。 is_constanttrueで、 かつexpressions::constantに渡されているテンプレートパラメータが ちょうど1.0を表す場合にtrueとなる。

type zero_type

is_constantfalseの時は定義されない。 is_constanttrueの時は、 expressions::constantが保持する値の型のコンストラクタに 0.0を渡した時の値を表現する型を保持する。

type one_type

is_constantfalseの時は定義されない。 is_constanttrueの時は、 expressions::constantが保持する値の型のコンストラクタに 1.0を渡した時の値を表現する型を保持する。