BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
DataVector< T >::ElementProxy Class Reference

#include <DataVector.h>

Public Member Functions

 ElementProxy (PtrVector &cont, size_type index)
 ElementProxy (iterator iter)
ElementProxyoperator= (const ElementProxy &rhs)
 lvalue uses assignment
ElementProxyoperator= (value_type rhs)
 lvalue uses assignment
 operator T*const () const
 rvalue uses conversion
 ElementProxy (PtrVector &cont, size_type index)
 ElementProxy (iterator iter)
ElementProxyoperator= (const ElementProxy &rhs)
 lvalue uses assignment
ElementProxyoperator= (value_type rhs)
 lvalue uses assignment
 operator T*const () const
 rvalue uses conversion
 ElementProxy (PtrVector &cont, size_type index)
 ElementProxy (iterator iter)
ElementProxyoperator= (const ElementProxy &rhs)
 lvalue uses assignment
ElementProxyoperator= (value_type rhs)
 lvalue uses assignment
 operator T*const () const
 rvalue uses conversion

Detailed Description

template<typename T>
class DataVector< T >::ElementProxy

Allows us to distinguish among read/write access to a returned reference. Manages memory correctly for lvalue references

Definition at line 223 of file Event/GeneratorObject/include/DataModel/DataVector.h.

Constructor & Destructor Documentation

◆ ElementProxy() [1/6]

template<typename T>
DataVector< T >::ElementProxy::ElementProxy ( PtrVector & cont,
size_type index )
inline

Definition at line 225 of file Event/GeneratorObject/include/DataModel/DataVector.h.

225 : m_proxied( cont.begin() ) {
226 std::advance( m_proxied, index );
227 }
an STL vector of pointers that by default owns its pointed elements.

Referenced by operator=(), and operator=().

◆ ElementProxy() [2/6]

template<typename T>
DataVector< T >::ElementProxy::ElementProxy ( iterator iter)
inline

Definition at line 228 of file Event/GeneratorObject/include/DataModel/DataVector.h.

228: m_proxied( iter ) {}

◆ ElementProxy() [3/6]

template<typename T>
DataVector< T >::ElementProxy::ElementProxy ( PtrVector & cont,
size_type index )
inline

Definition at line 225 of file InstallArea/x86_64-el9-gcc13-dbg/include/DataModel/DataVector.h.

225 : m_proxied( cont.begin() ) {
226 std::advance( m_proxied, index );
227 }

◆ ElementProxy() [4/6]

template<typename T>
DataVector< T >::ElementProxy::ElementProxy ( iterator iter)
inline

Definition at line 228 of file InstallArea/x86_64-el9-gcc13-dbg/include/DataModel/DataVector.h.

228: m_proxied( iter ) {}

◆ ElementProxy() [5/6]

template<typename T>
DataVector< T >::ElementProxy::ElementProxy ( PtrVector & cont,
size_type index )
inline

Definition at line 225 of file InstallArea/x86_64-el9-gcc13-opt/include/DataModel/DataVector.h.

225 : m_proxied( cont.begin() ) {
226 std::advance( m_proxied, index );
227 }

◆ ElementProxy() [6/6]

template<typename T>
DataVector< T >::ElementProxy::ElementProxy ( iterator iter)
inline

Definition at line 228 of file InstallArea/x86_64-el9-gcc13-opt/include/DataModel/DataVector.h.

228: m_proxied( iter ) {}

Member Function Documentation

◆ operator T*const() [1/3]

template<typename T>
DataVector< T >::ElementProxy::operator T*const ( ) const
inline

rvalue uses conversion

Definition at line 242 of file Event/GeneratorObject/include/DataModel/DataVector.h.

242{ return *m_proxied; }

◆ operator T*const() [2/3]

template<typename T>
DataVector< T >::ElementProxy::operator T*const ( ) const
inline

rvalue uses conversion

Definition at line 242 of file InstallArea/x86_64-el9-gcc13-dbg/include/DataModel/DataVector.h.

242{ return *m_proxied; }

◆ operator T*const() [3/3]

template<typename T>
DataVector< T >::ElementProxy::operator T*const ( ) const
inline

rvalue uses conversion

Definition at line 242 of file InstallArea/x86_64-el9-gcc13-opt/include/DataModel/DataVector.h.

242{ return *m_proxied; }

◆ operator=() [1/6]

template<typename T>
ElementProxy & DataVector< T >::ElementProxy::operator= ( const ElementProxy & rhs)
inline

lvalue uses assignment

Definition at line 230 of file Event/GeneratorObject/include/DataModel/DataVector.h.

230 {
231 delete *m_proxied;
232 *m_proxied = *( rhs.m_proxied );
233 return *this;
234 }

◆ operator=() [2/6]

template<typename T>
ElementProxy & DataVector< T >::ElementProxy::operator= ( const ElementProxy & rhs)
inline

lvalue uses assignment

Definition at line 230 of file InstallArea/x86_64-el9-gcc13-dbg/include/DataModel/DataVector.h.

230 {
231 delete *m_proxied;
232 *m_proxied = *( rhs.m_proxied );
233 return *this;
234 }

◆ operator=() [3/6]

template<typename T>
ElementProxy & DataVector< T >::ElementProxy::operator= ( const ElementProxy & rhs)
inline

lvalue uses assignment

Definition at line 230 of file InstallArea/x86_64-el9-gcc13-opt/include/DataModel/DataVector.h.

230 {
231 delete *m_proxied;
232 *m_proxied = *( rhs.m_proxied );
233 return *this;
234 }

◆ operator=() [4/6]

template<typename T>
ElementProxy & DataVector< T >::ElementProxy::operator= ( value_type rhs)
inline

lvalue uses assignment

Definition at line 236 of file Event/GeneratorObject/include/DataModel/DataVector.h.

236 {
237 delete *m_proxied;
238 *m_proxied = rhs;
239 return *this;
240 }

◆ operator=() [5/6]

template<typename T>
ElementProxy & DataVector< T >::ElementProxy::operator= ( value_type rhs)
inline

lvalue uses assignment

Definition at line 236 of file InstallArea/x86_64-el9-gcc13-dbg/include/DataModel/DataVector.h.

236 {
237 delete *m_proxied;
238 *m_proxied = rhs;
239 return *this;
240 }

◆ operator=() [6/6]

template<typename T>
ElementProxy & DataVector< T >::ElementProxy::operator= ( value_type rhs)
inline

lvalue uses assignment

Definition at line 236 of file InstallArea/x86_64-el9-gcc13-opt/include/DataModel/DataVector.h.

236 {
237 delete *m_proxied;
238 *m_proxied = rhs;
239 return *this;
240 }

The documentation for this class was generated from the following files: