LSST Applications g0265f82a02+0e5473021a,g02d81e74bb+f5613e8b4f,g1470d8bcf6+190ad2ba91,g14a832a312+311607e4ab,g2079a07aa2+86d27d4dc4,g2305ad1205+a8e3196225,g295015adf3+b67ee847e5,g2bbee38e9b+0e5473021a,g337abbeb29+0e5473021a,g3ddfee87b4+a761f810f3,g487adcacf7+17c8fdbcbd,g50ff169b8f+96c6868917,g52b1c1532d+585e252eca,g591dd9f2cf+65b5bd823e,g5a732f18d5+53520f316c,g64a986408d+f5613e8b4f,g6c1bc301e9+51106c2951,g858d7b2824+f5613e8b4f,g8a8a8dda67+585e252eca,g99cad8db69+6729933424,g9ddcbc5298+9a081db1e4,ga1e77700b3+15fc3df1f7,ga8c6da7877+ef4e3a5875,gb0e22166c9+60f28cb32d,gb6a65358fc+0e5473021a,gba4ed39666+c2a2e4ac27,gbb8dafda3b+e9bba80f27,gc120e1dc64+eee469a5e5,gc28159a63d+0e5473021a,gcf0d15dbbd+a761f810f3,gdaeeff99f8+f9a426f77a,ge6526c86ff+d4c1d4bfef,ge79ae78c31+0e5473021a,gee10cc3b42+585e252eca,gf1cff7945b+f5613e8b4f,w.2024.16
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Friends | List of all members
lsst::afw::table::CatalogIterator< BaseT > Class Template Reference

Iterator class for CatalogT. More...

#include <Catalog.h>

Inheritance diagram for lsst::afw::table::CatalogIterator< BaseT >:

Public Member Functions

 CatalogIterator ()
 
template<typename OtherBaseT >
 CatalogIterator (CatalogIterator< OtherBaseT > const &other)
 
 CatalogIterator (BaseT const &base)
 
template<typename RecordT >
 operator std::shared_ptr< RecordT > () const
 
template<typename RecordT >
CatalogIteratoroperator= (std::shared_ptr< RecordT > const &other) const
 

Friends

class boost::iterator_core_access
 

Detailed Description

template<typename BaseT>
class lsst::afw::table::CatalogIterator< BaseT >

Iterator class for CatalogT.

Iterators dereference to record references or const references, even though the CatalogT container is based on a vector of shared_ptr internally. This is usually very convenient (and is one of the reasons for having a custom container class in the first place).

Sometimes, however, we'd like to get a shared_ptr from an iterator (especially because records are noncopyable). With that in mind, CatalogIterator is implicitly convertible to the shared_ptr type it holds internally, and can also be assigned a shared_ptr to set the pointer in the underlying container. This conversion makes sense from the perspective that both iterators and smart pointers mimic the interface of pointers and provide the same interface to get at the underlying record.

Definition at line 39 of file Catalog.h.

Constructor & Destructor Documentation

◆ CatalogIterator() [1/3]

template<typename BaseT >
lsst::afw::table::CatalogIterator< BaseT >::CatalogIterator ( )
inline

Definition at line 42 of file Catalog.h.

42{}

◆ CatalogIterator() [2/3]

template<typename BaseT >
template<typename OtherBaseT >
lsst::afw::table::CatalogIterator< BaseT >::CatalogIterator ( CatalogIterator< OtherBaseT > const & other)
inline

Definition at line 45 of file Catalog.h.

46 : CatalogIterator::iterator_adaptor_(other.base()) {}

◆ CatalogIterator() [3/3]

template<typename BaseT >
lsst::afw::table::CatalogIterator< BaseT >::CatalogIterator ( BaseT const & base)
inlineexplicit

Definition at line 48 of file Catalog.h.

48: CatalogIterator::iterator_adaptor_(base) {}

Member Function Documentation

◆ operator std::shared_ptr< RecordT >()

template<typename BaseT >
template<typename RecordT >
lsst::afw::table::CatalogIterator< BaseT >::operator std::shared_ptr< RecordT > ( ) const
inline

Definition at line 51 of file Catalog.h.

51 {
52 return *this->base();
53 }

◆ operator=()

template<typename BaseT >
template<typename RecordT >
CatalogIterator & lsst::afw::table::CatalogIterator< BaseT >::operator= ( std::shared_ptr< RecordT > const & other) const
inline

Definition at line 56 of file Catalog.h.

56 {
57 *this->base() = other;
58 return *this;
59 }

Friends And Related Symbol Documentation

◆ boost::iterator_core_access

template<typename BaseT >
friend class boost::iterator_core_access
friend

Definition at line 62 of file Catalog.h.


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