myxlib/src/myx/backports/cpp/helpers.hpp

44 lines
881 B
C++
Raw Normal View History

#ifndef MYX_BACKPORTS_CPP_HELPERS_HPP_
#define MYX_BACKPORTS_CPP_HELPERS_HPP_
#pragma once
#if ( __cplusplus >= 201103L )
2020-07-09 12:05:59 +00:00
#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;
2020-07-09 12:05:59 +00:00
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 < 201702L )
namespace std
{
2020-07-02 12:53:31 +00:00
#if defined( __STRICT_ANSI__ ) || ( __e2k__ )
template< typename ... Ts > struct make_void { typedef void type; };
template< typename ... Ts > using void_t = typename make_void< Ts... >::type;
#endif
} // namespace std
#endif
#endif // ifndef MYX_BACKPORTS_CPP_HELPERS_HPP_