vec.is_vec
重要なファクターその2。
型がベクトルかどうかの判断を行います。
#include#include "vec/vec.hpp" #include "vec/type_traits/is_vec.hpp" namespace vec = kmt_ex::math::vec; typedef vec::vec<3, float> vec3; int main(){ std::cout << vec::is_vec ::value << "\n"; // 1 std::cout << vec::is_vec ::value << "\n"; // 0 return 0; }
例によってテンプレートの特殊化を使って実装。
動的に判断できればいいんだけどねぇ…。
/** ベクトル型かどうかの判断を行います value == true ベクトル value == false ベクトルじゃない */ template< typename T > struct is_vec{ static const bool value = false; }; /** vec::vec 用の特殊化 */ template< unsigned int D, typename value_t > struct is_vec< vec>{ static const bool value = true; };