// // MessagePack for C++ C++03/C++11 Adaptation // // Copyright (C) 2013 KONDO Takatoshi // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // #ifndef MSGPACK_CPP_CONFIG_HPP #define MSGPACK_CPP_CONFIG_HPP #include "msgpack/versioning.hpp" #if !defined(MSGPACK_USE_CPP03) // If MSVC would support C++11 completely, // then 'defined(_MSC_VER)' would replace with // '_MSC_VER < XXXX' # if (__cplusplus < 201103) || defined(_MSC_VER) # define MSGPACK_USE_CPP03 # endif #endif // MSGPACK_USE_CPP03 #if defined __cplusplus #if __cplusplus < 201103 #if !defined(nullptr) # if _MSC_VER < 1600 # define nullptr (0) # endif #endif #include namespace msgpack { MSGPACK_API_VERSION_NAMESPACE(v1) { template struct unique_ptr : std::auto_ptr { explicit unique_ptr(T* p = 0) throw() : std::auto_ptr(p) {} unique_ptr(unique_ptr& a) throw() : std::auto_ptr(a) {} template unique_ptr (unique_ptr& a) throw() : std::auto_ptr(a) {} }; template T& move(T& t) { return t; } template T const& move(T const& t) { return t; } template struct enable_if { typedef T type; }; template struct enable_if { }; } // MSGPACK_API_VERSION_NAMESPACE(v1) } // namespace msgpack #else // __cplusplus < 201103 #include #include namespace msgpack { MSGPACK_API_VERSION_NAMESPACE(v1) { // unique_ptr using std::unique_ptr; // using std::make_unique; // since C++14 using std::hash; // utility using std::move; using std::swap; using std::enable_if; } // MSGPACK_API_VERSION_NAMESPACE(v1) } // namespace msgpack #endif // __cplusplus < 201103 #endif // __cplusplus #endif /* msgpack/cpp_config.hpp */