49 lines
741 B
C++
49 lines
741 B
C++
|
|
#pragma once
|
|
|
|
#if !defined(MIJIN_UTIL_CONCEPTS_HPP_INCLUDED)
|
|
#define MIJIN_UTIL_CONCEPTS_HPP_INCLUDED 1
|
|
|
|
#include <type_traits>
|
|
|
|
namespace mijin
|
|
{
|
|
|
|
//
|
|
// public defines
|
|
//
|
|
|
|
//
|
|
// public constants
|
|
//
|
|
|
|
//
|
|
// public types
|
|
//
|
|
|
|
template<typename T>
|
|
concept standard_type = std::is_standard_layout_v<T>;
|
|
|
|
template<typename T>
|
|
concept trivial_type = std::is_trivial_v<T>;
|
|
|
|
template<typename T>
|
|
concept enum_type = std::is_enum_v<T>;
|
|
|
|
template<typename T>
|
|
concept arithmetic_type = std::is_arithmetic_v<T>;
|
|
|
|
template<typename T>
|
|
concept pointer_type = std::is_pointer_v<T>;
|
|
|
|
template<typename T>
|
|
concept reference_type = std::is_reference_v<T>;
|
|
|
|
//
|
|
// public functions
|
|
//
|
|
|
|
} // namespace mijin
|
|
|
|
#endif // !defined(MIJIN_UTIL_CONCEPTS_HPP_INCLUDED)
|