47 lines
		
	
	
		
			986 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			986 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| #ifndef MYX_BACKPORTS_CPP_HELPERS_HPP_
 | |
| #define MYX_BACKPORTS_CPP_HELPERS_HPP_
 | |
| 
 | |
| #pragma once
 | |
| 
 | |
| #if ( __cplusplus >= 201103L )
 | |
| #include <memory>
 | |
| #include <type_traits>
 | |
| #endif
 | |
| 
 | |
| #if ( __cplusplus >= 201103L ) && ( __cplusplus < 201402L )
 | |
| 
 | |
| namespace std
 | |
| {
 | |
| 
 | |
| template< class T >
 | |
| using underlying_type_t = typename std::underlying_type< T >::type;
 | |
| 
 | |
| template< typename T, typename ... Args >
 | |
| std::unique_ptr< T > make_unique( Args&&... args )
 | |
| {
 | |
| 	return( std::unique_ptr< T >( new T( std::forward< Args >( args )... ) ) );
 | |
| }
 | |
| 
 | |
| } // namespace std
 | |
| 
 | |
| #endif
 | |
| 
 | |
| #if ( ( __cplusplus >= 201103L ) && ( __cplusplus < 201402L ) ) || \
 | |
|         ( ( __cplusplus >= 201402L ) && ( __cplusplus < 201702L ) && defined( __STRICT_ANSI__ ) )
 | |
| 
 | |
| 
 | |
| namespace std
 | |
| {
 | |
| 
 | |
| template< typename ... Ts > struct make_void { typedef void type; };
 | |
| 
 | |
| #ifndef __cpp_lib_void_t
 | |
| template< typename ... Ts > using void_t = typename make_void< Ts... >::type;
 | |
| #endif
 | |
| 
 | |
| } // namespace std
 | |
| 
 | |
| #endif
 | |
| 
 | |
| #endif // ifndef MYX_BACKPORTS_CPP_HELPERS_HPP_
 |