Go to the documentation of this file. 1 #ifndef FWCore_Utilities_propagate_const_h
2 #define FWCore_Utilities_propagate_const_h
22 #include <type_traits>
45 using element_type =
typename std::remove_reference<decltype(*std::declval<T&>())>::
type;
59 m_value = std::forward<U>(iValue);
78 template <
typename Up>
83 template <
typename Up>
88 template <
typename Up>
93 template <
typename Up>
102 template <
typename T>
106 template <
typename T>
constexpr element_type * get()
constexpr element_type const * get() const
constexpr element_type * operator->()
static constexpr const element_type * to_raw_pointer(const Up *u)
constexpr propagate_const(U &&iValue)
constexpr element_type const & operator*() const
static constexpr element_type * to_raw_pointer(Up *u)
constexpr T & get_underlying(propagate_const< T > &)
constexpr element_type & operator*()
constexpr propagate_const()=default
constexpr propagate_const & operator=(U &&iValue)
constexpr propagate_const< T > & operator=(propagate_const &&)=default
static constexpr element_type * to_raw_pointer(Up &u)
static constexpr const element_type * to_raw_pointer(const Up &u)
typename std::remove_reference< decltype(*std::declval< std::shared_ptr< TrackAnalysisAlgorithm > & >())>::type element_type
constexpr element_type const * operator->() const