123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- #ifndef MSGPACK_V1_CPP_CONFIG_HPP
- #define MSGPACK_V1_CPP_CONFIG_HPP
- #include "msgpack/cpp_config_decl.hpp"
- #if defined(MSGPACK_USE_CPP03)
- namespace msgpack {
- MSGPACK_API_VERSION_NAMESPACE(v1) {
- template <typename T>
- struct unique_ptr : std::auto_ptr<T> {
- explicit unique_ptr(T* p = 0) throw() : std::auto_ptr<T>(p) {}
- unique_ptr(unique_ptr& a) throw() : std::auto_ptr<T>(a) {}
- template<class Y>
- unique_ptr (unique_ptr<Y>& a) throw() : std::auto_ptr<T>(a) {}
- };
- template <typename T>
- T& move(T& t)
- {
- return t;
- }
- template <typename T>
- T const& move(T const& t)
- {
- return t;
- }
- template <bool P, typename T>
- struct enable_if {
- typedef T type;
- };
- template <typename T>
- struct enable_if<false, T> {
- };
- template<typename T, T val>
- struct integral_constant {
- static T const value = val;
- typedef T value_type;
- typedef integral_constant<T, val> type;
- };
- typedef integral_constant<bool, true> true_type;
- typedef integral_constant<bool, false> false_type;
- template<class T, class U>
- struct is_same : false_type {};
- template<class T>
- struct is_same<T, T> : true_type {};
- template<typename T>
- struct underlying_type {
- typedef int type;
- };
- template<class T>
- struct is_array : false_type {};
- template<class T>
- struct is_array<T[]> : true_type {};
- template<class T, std::size_t N>
- struct is_array<T[N]> : true_type {};
- template<class T>
- struct remove_const {
- typedef T type;
- };
- template<class T>
- struct remove_const<const T> {
- typedef T type;
- };
- template<class T>
- struct remove_volatile {
- typedef T type;
- };
- template<class T>
- struct remove_volatile<volatile T> {
- typedef T type;
- };
- template<class T>
- struct remove_cv {
- typedef typename msgpack::remove_volatile<
- typename msgpack::remove_const<T>::type
- >::type type;
- };
- namespace detail {
- template<class T>
- struct is_pointer_helper : false_type {};
- template<class T>
- struct is_pointer_helper<T*> : true_type {};
- }
- template<class T> struct is_pointer : detail::is_pointer_helper<typename remove_cv<T>::type> {};
- }
- }
- #endif
- #if __cplusplus >= 201402L
- #if defined(_MSC_VER)
- #define MSGPACK_DEPRECATED(msg) __declspec(deprecated(msg))
- #else
- #define MSGPACK_DEPRECATED(msg) [[deprecated(msg)]]
- #endif
- #else
- #define MSGPACK_DEPRECATED(msg)
- #endif
- #endif
|