1 #ifndef BOOST_CORE_REF_HPP
2 #define BOOST_CORE_REF_HPP
6 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
42 #if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, == 1600 )
44 struct ref_workaround_tag {};
75 #if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, == 1600 )
81 #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
118 #if defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x581) )
119 # define BOOST_REF_CONST
121 # define BOOST_REF_CONST const
133 #if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, == 1600 )
155 #undef BOOST_REF_CONST
157 #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
162 #if defined(BOOST_NO_CXX11_DELETED_FUNCTIONS)
163 # define BOOST_REF_DELETE
165 # define BOOST_REF_DELETE = delete
174 template<
class T>
void ref(
T const&&) BOOST_REF_DELETE;
179 template<class
T>
void cref(
T const&&) BOOST_REF_DELETE;
181 #undef BOOST_REF_DELETE
207 #if !defined(BOOST_NO_CV_SPECIALIZATIONS)
209 template<
typename T>
struct is_reference_wrapper< reference_wrapper<
T> const >
214 template<
typename T>
struct is_reference_wrapper< reference_wrapper<
T> volatile >
219 template<
typename T>
struct is_reference_wrapper< reference_wrapper<
T> const volatile >
224 #endif // !defined(BOOST_NO_CV_SPECIALIZATIONS)
252 #if !defined(BOOST_NO_CV_SPECIALIZATIONS)
254 template<
typename T>
struct unwrap_reference< reference_wrapper<
T> const >
259 template<
typename T>
struct unwrap_reference< reference_wrapper<
T> volatile >
264 template<
typename T>
struct unwrap_reference< reference_wrapper<
T> const volatile >
269 #endif // !defined(BOOST_NO_CV_SPECIALIZATIONS)
293 return r.get_pointer();
301 #endif // #ifndef BOOST_CORE_REF_HPP