CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Attributes | Friends
edm::propagate_const< T > Class Template Reference

#include <propagate_const.h>

Public Types

using element_type = typename std::remove_reference< decltype(*std::declval< T & >())>::type
 

Public Member Functions

element_type const * get () const
 
element_typeget ()
 
 operator element_type * ()
 
 operator element_type const * () const
 
element_type const & operator* () const
 
element_typeoperator* ()
 
element_type const * operator-> () const
 
element_typeoperator-> ()
 
propagate_const< T > & operator= (propagate_const &&)=default
 
propagate_const< T > & operator= (propagate_const< T > const &)=delete
 
template<typename U >
propagate_constoperator= (U &&iValue)
 
 propagate_const ()=default
 
 propagate_const (propagate_const< T > &&)=default
 
 propagate_const (propagate_const< T > const &)=delete
 
template<typename U >
 propagate_const (U &&iValue)
 

Private Attributes

T m_value
 

Friends

Tget_underlying (propagate_const< T > &)
 
T const & get_underlying (propagate_const< T > const &)
 

Detailed Description

template<typename T>
class edm::propagate_const< T >

Definition at line 32 of file propagate_const.h.

Member Typedef Documentation

template<typename T>
using edm::propagate_const< T >::element_type = typename std::remove_reference<decltype(*std::declval<T&>())>::type

Definition at line 46 of file propagate_const.h.

Constructor & Destructor Documentation

template<typename T>
edm::propagate_const< T >::propagate_const ( )
default
template<typename T>
edm::propagate_const< T >::propagate_const ( propagate_const< T > &&  )
default
template<typename T>
edm::propagate_const< T >::propagate_const ( propagate_const< T > const &  )
delete
template<typename T>
template<typename U >
edm::propagate_const< T >::propagate_const ( U &&  iValue)
inline

Definition at line 53 of file propagate_const.h.

53 : m_value(std::forward<U>(iValue)) {}

Member Function Documentation

template<typename T>
element_type const* edm::propagate_const< T >::get ( ) const
inline

Definition at line 68 of file propagate_const.h.

Referenced by Options.Options::__getitem__(), betterConfigParser.BetterConfigParser::__updateDict(), XrdFile::addConnection(), edm::global::OutputModuleBase::branchIDLists(), edm::limited::OutputModuleBase::branchIDLists(), XrdFile::close(), rrapi.RRApi::columns(), rrapi.RRApi::count(), edm::StreamerInputFile::currentRecord(), rrapi.RRApi::data(), HepMCEventWriter::endRun(), edm::StreamSchedule::finishedPaths(), edm::StreamerInputModule< Producer >::genuineCloseFile(), edm::serviceregistry::ServicesManager::get(), XrdFile::getActiveFile(), betterConfigParser.BetterConfigParser::getCompares(), betterConfigParser.BetterConfigParser::getGeneral(), betterConfigParser.BetterConfigParser::getResultingSection(), edm::GlobalSchedule::GlobalSchedule(), HepMCFileReader::initialize(), edm::serviceregistry::ServicesManager::isAvailable(), XrdFile::position(), edm::EventProcessor::prepareForNextLoop(), tfwliteselectortest::ThingsTSelector::preProcessing(), TFWLiteSelectorBasic::Process(), XrdFile::read(), XrdFile::readv(), rrapi.RRApi::report(), rrapi.RRApi::reports(), edm::RootOutputFile::RootOutputFile(), XrdAdaptor::Source::Source(), edm::StreamerInputFile::startMessage(), edm::StreamSchedule::StreamSchedule(), fwlite::ChainEvent::switchToFile(), rrapi.RRApi::tables(), rrapi.RRApi::tags(), rrapi.RRApi::templates(), edm::RootOutputTree::tree(), fwlite::internal::BranchMapReaderStrategyV11::updateFile(), fwlite::internal::BranchMapReaderStrategyV17::updateFile(), ProvenanceDumper::work_(), rrapi.RRApi::workspaces(), edm::RootOutputFile::writeParameterSetRegistry(), edm::RootOutputFile::writeProcessHistoryRegistry(), edm::ConstRespectingPtr< T >::~ConstRespectingPtr(), HepMCFileReader::~HepMCFileReader(), and edm::MessageDrop::~MessageDrop().

68 { return &(*m_value); }
template<typename T>
element_type* edm::propagate_const< T >::get ( )
inline
template<typename T>
edm::propagate_const< T >::operator element_type * ( )
inline

Definition at line 79 of file propagate_const.h.

79 { return this->get(); }
template<typename T>
edm::propagate_const< T >::operator element_type const * ( ) const
inline

Definition at line 72 of file propagate_const.h.

72 { return this->get(); }
template<typename T>
element_type const& edm::propagate_const< T >::operator* ( void  ) const
inline

Definition at line 70 of file propagate_const.h.

70 { return *m_value; }
template<typename T>
element_type& edm::propagate_const< T >::operator* ( void  )
inline

Definition at line 77 of file propagate_const.h.

77 { return *m_value; }
template<typename T>
element_type const* edm::propagate_const< T >::operator-> ( ) const
inline

Definition at line 69 of file propagate_const.h.

69 { return this->get(); }
template<typename T>
element_type* edm::propagate_const< T >::operator-> ( )
inline

Definition at line 76 of file propagate_const.h.

76 { return this->get(); }
template<typename T>
propagate_const<T>& edm::propagate_const< T >::operator= ( propagate_const< T > &&  )
default
template<typename T>
propagate_const<T>& edm::propagate_const< T >::operator= ( propagate_const< T > const &  )
delete
template<typename T>
template<typename U >
propagate_const& edm::propagate_const< T >::operator= ( U &&  iValue)
inline

Definition at line 60 of file propagate_const.h.

60  {
61  m_value = std::forward<U>(iValue);
62  return *this;
63  }

Friends And Related Function Documentation

template<typename T>
T& get_underlying ( propagate_const< T > &  iP)
friend

Definition at line 87 of file propagate_const.h.

87 { return iP.m_value;}
template<typename T>
T const& get_underlying ( propagate_const< T > const &  iP)
friend

Definition at line 88 of file propagate_const.h.

88 {return iP.m_value;}

Member Data Documentation

template<typename T>
T edm::propagate_const< T >::m_value
private