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;
};