1 #ifndef SILICIUM_PTR_ADAPTOR_HPP
2 #define SILICIUM_PTR_ADAPTOR_HPP
5 #include <boost/version.hpp>
6 #if BOOST_VERSION >= 105500
7 # include <boost/utility/explicit_operator_bool.hpp>
12 template <
class Po
intee>
15 template <
class ...Args>
17 : m_value(
std::forward<Args>(args)...)
36 #ifdef BOOST_EXPLICIT_OPERATOR_BOOL_NOEXCEPT
38 BOOST_EXPLICIT_OPERATOR_BOOL_NOEXCEPT()
39 #elif defined(BOOST_EXPLICIT_OPERATOR_BOOL)
40 BOOST_EXPLICIT_OPERATOR_BOOL()
42 operator bool() const BOOST_NOEXCEPT
48 #if !SILICIUM_COMPILER_GENERATES_MOVES
50 : m_value(
std::
move(other.m_value))
66 template <
class Po
intee>
68 #if !SILICIUM_COMPILER_HAS_AUTO_RETURN_TYPE
69 ->ptr_adaptor<
typename std::decay<Pointee>::type>
std::remove_reference< T >::type && move(T &&ref)
Definition: move.hpp:10
ptr_adaptor(Args &&...args)
Definition: ptr_adaptor.hpp:16
ptr_adaptor(ptr_adaptor &&other)
Definition: ptr_adaptor.hpp:49
Definition: absolute_path.hpp:352
Definition: absolute_path.hpp:19
Pointee * operator->() BOOST_NOEXCEPT
Definition: ptr_adaptor.hpp:26
auto make_ptr_adaptor(Pointee &&value) -> ptr_adaptor< typename std::decay< Pointee >::type >
Definition: ptr_adaptor.hpp:67
Pointee & operator*() BOOST_NOEXCEPT
Definition: ptr_adaptor.hpp:21
bool operator!() const BOOST_NOEXCEPT
Definition: ptr_adaptor.hpp:31
ptr_adaptor & operator=(ptr_adaptor &&other)
Definition: ptr_adaptor.hpp:54
Definition: ptr_adaptor.hpp:13