// Copyright David Abrahams 2003. // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) #ifndef BOOST_IMPLICIT_CAST_DWA200356_HPP #define BOOST_IMPLICIT_CAST_DWA200356_HPP #include #ifdef BOOST_HAS_PRAGMA_ONCE # pragma once #endif #include #if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \ defined(BOOST_NO_CXX11_AUTO_DECLARATIONS) || \ defined(BOOST_NO_CXX11_CONSTEXPR) || \ defined(BOOST_NO_CXX11_NULLPTR) || \ defined(BOOST_NO_CXX11_NOEXCEPT) || \ defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) || \ defined(BOOST_NO_CXX11_FINAL) || \ defined(BOOST_NO_CXX11_ALIGNOF) || \ defined(BOOST_NO_CXX11_STATIC_ASSERT) || \ defined(BOOST_NO_CXX11_SMART_PTR) || \ defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST) || \ defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS) BOOST_PRAGMA_MESSAGE("C++03 support is deprecated in Boost.Conversion 1.82 and will be removed in Boost.Conversion 1.84.") #endif namespace boost { namespace detail { template struct icast_identity { typedef T type; }; } // namespace detail // implementation originally suggested by C. Green in // http://lists.boost.org/MailArchives/boost/msg00886.php // The use of identity creates a non-deduced form, so that the // explicit template argument must be supplied template BOOST_CONSTEXPR inline T implicit_cast (typename boost::detail::icast_identity::type x) { return x; } } // namespace boost #endif // BOOST_IMPLICIT_CAST_DWA200356_HPP