1 #ifndef FWCore_Utilities_propagate_const_h
2 #define FWCore_Utilities_propagate_const_h
22 #include <type_traits>
59 m_value = std::forward<U>(iValue);
68 constexpr
operator element_type const *()
const {
return this->
get(); }
78 template <
typename Up>
83 template <
typename Up>
88 template <
typename Up>
93 template <
typename Up>
102 template <
typename T>
106 template <
typename T>
static constexpr const element_type * to_raw_pointer(const Up *u)
constexpr propagate_const(U &&iValue)
constexpr element_type * operator->()
constexpr propagate_const< T > & operator=(propagate_const &&)=default
static constexpr element_type * to_raw_pointer(Up *u)
constexpr element_type const & operator*() const
constexpr T & get_underlying(propagate_const< T > &)
constexpr propagate_const & operator=(U &&iValue)
constexpr element_type & operator*()
constexpr propagate_const()=default
constexpr element_type const * operator->() const
static constexpr const element_type * to_raw_pointer(const Up &u)
static constexpr element_type * to_raw_pointer(Up &u)
typename std::remove_reference< decltype(*std::declval< std::shared_ptr< C > & >())>::type element_type