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);
78 template <
typename Up>
83 template <
typename Up>
88 template <
typename Up>
93 template <
typename Up>
102 template <
typename T>
106 template <
typename T>
propagate_const & operator=(U &&iValue)
static constexpr const element_type * to_raw_pointer(const Up *u)
propagate_const(U &&iValue)
T & get_underlying(propagate_const< T > &)
propagate_const< T > & operator=(propagate_const &&)=default
static constexpr element_type * to_raw_pointer(Up *u)
propagate_const()=default
element_type const * operator->() const
element_type const & operator*() const
element_type & operator*()
static constexpr const element_type * to_raw_pointer(const Up &u)
friend T & get_underlying(propagate_const< T > &)
static constexpr element_type * to_raw_pointer(Up &u)
element_type * operator->()
typename std::remove_reference< decltype(*std::declval< std::shared_ptr< TrackAnalysisAlgorithm > & >())>::type element_type