asqqwwd / VectorAndMatrix

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Tensor Library: generalized implementation of vector and matrix with SFINAE

SFINAE

// A
template<typename T, typename = std::enable_if_t<T>>
void func()
{
}

// B
template<typename T>
void func(typename std::enable_if_t<std::is_integral_v<T>>* = nullptr)
{
}

Concept (C++ 20)

tempalte <typename T>
concept IsIntegral = std::is_integral_v<T>;

// A
IsIntegral auto (IsIntegral auto a, IsIntegral auto b)
{
}

// B
template<typename T> 
requires IsIntegral<T>
void func(T a)
{
}

// C
template<typename T>
void func(T a) requires IsIntegral<T>
{
}

// D
template<IsIntegral T>
void func(T a)
{
}

About


Languages

Language:C++ 98.9%Language:CMake 1.1%