#ifndef MYX_BACKPORTS_CPP_HELPERS_HPP_ #define MYX_BACKPORTS_CPP_HELPERS_HPP_ #pragma once #if ( __cplusplus >= 201103L ) #include #include #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; }; template< typename ... Ts > using void_t = typename make_void< Ts... >::type; } // namespace std #endif #endif // ifndef MYX_BACKPORTS_CPP_HELPERS_HPP_