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)
 |