Tatooine
Public Types | Public Member Functions | Private Attributes | List of all members
tatooine::typed_vector_property< Handle, ValueType > Struct Template Reference

#include <property.h>

Inheritance diagram for tatooine::typed_vector_property< Handle, ValueType >:
[legend]
Collaboration diagram for tatooine::typed_vector_property< Handle, ValueType >:
[legend]

Public Types

using this_type = typed_vector_property< Handle, ValueType >
 
using parent_type = vector_property< Handle >
 
using container_type = std::vector< ValueType >
 
using value_type = typename container_type::value_type
 
using allocator_type = typename container_type::allocator_type
 
using size_type = typename container_type::size_type
 
using difference_type = typename container_type::difference_type
 
using reference = typename container_type::reference
 
using const_reference = typename container_type::const_reference
 
using pointer = typename container_type::pointer
 
using const_pointer = typename container_type::const_pointer
 
using iterator = typename container_type::iterator
 
using const_iterator = typename container_type::const_iterator
 
using reverse_iterator = typename container_type::reverse_iterator
 
using const_reverse_iterator = typename container_type::const_reverse_iterator
 
- Public Types inherited from tatooine::vector_property< Handle >
using this_type = vector_property< Handle >
 

Public Member Functions

 typed_vector_property (const ValueType &value=ValueType{})
 
 typed_vector_property (const typed_vector_property &other)
 
 typed_vector_property (typed_vector_property &&other) noexcept
 
auto operator= (const typed_vector_property &other) -> auto &
 
auto operator= (typed_vector_property &&other) noexcept -> auto &
 
auto size ()
 
void reserve (std::size_t n) override
 Reserve memory for n elements. More...
 
void resize (std::size_t n) override
 Resize storage to hold n elements. More...
 
void push_back () override
 pushes element at back More...
 
void push_back (const ValueType &value)
 
auto front () -> auto &
 
auto front () const -> const auto &
 
auto back () -> auto &
 
auto back () const -> const auto &
 
auto erase (iterator pos)
 
auto erase (const_iterator pos)
 
auto erase (iterator first, iterator last)
 
auto erase (const_iterator first, const_iterator last)
 
auto erase (std::size_t i) -> void override
 Resize storage to hold n elements. More...
 
auto begin ()
 
auto begin () const
 
auto end ()
 
auto end () const
 
template<typename... Ts>
void emplace_back (Ts &&... ts)
 
void clear () override
 Free unused memory. More...
 
auto data () const
 
auto internal_container () const -> auto const &
 
auto size () const
 
auto at (std::size_t const i) -> auto &
 Access the i'th element. More...
 
auto at (std::size_t const i) const -> const auto &
 Const access to the i'th element. More...
 
auto at (Handle handle) -> auto &
 Access the i'th element. More...
 
auto at (Handle handle) const -> const auto &
 Const access to the i'th element. More...
 
auto operator[] (Handle handle) -> auto &
 Access the i'th element. More...
 
auto operator[] (Handle handle) const -> const auto &
 Const access to the i'th element. More...
 
auto operator[] (std::size_t const i) -> auto &
 Access the i'th element. More...
 
auto operator[] (std::size_t const i) const -> const auto &
 Const access to the i'th element. More...
 
auto type () const -> const std::type_info &override
 for identifying type. More...
 
auto clone () const -> std::unique_ptr< parent_type > override
 
auto clean (std::set< Handle > const &invalid_handles) -> void override
 
- Public Member Functions inherited from tatooine::vector_property< Handle >
 vector_property ()=default
 
 vector_property (const vector_property &other)=default
 
 vector_property (vector_property &&other) noexcept=default
 
auto operator= (const vector_property &) -> vector_property &=default
 
auto operator= (vector_property &&) noexcept -> vector_property &=default
 
virtual ~vector_property ()=default
 Destructor. More...
 
virtual void reserve (std::size_t n)=0
 Reserve memory for n elements. More...
 
virtual void resize (std::size_t n)=0
 Resize storage to hold n elements. More...
 
virtual void push_back ()=0
 pushes element at back More...
 
virtual void erase (std::size_t)=0
 Resize storage to hold n elements. More...
 
virtual void clear ()=0
 Free unused memory. More...
 
virtual auto type () const -> const std::type_info &=0
 for identifying type. More...
 
template<typename ValueType >
auto holds_type () const
 
virtual auto clone () const -> std::unique_ptr< this_type >=0
 
template<typename ValueType >
auto cast_to_typed () -> decltype(auto)
 
template<typename ValueType >
auto cast_to_typed () const -> decltype(auto)
 
virtual auto clean (std::set< Handle > const &) -> void=0
 

Private Attributes

container_type m_data
 
ValueType m_value
 

Member Typedef Documentation

◆ allocator_type

template<typename Handle , typename ValueType >
using tatooine::typed_vector_property< Handle, ValueType >::allocator_type = typename container_type::allocator_type

◆ const_iterator

template<typename Handle , typename ValueType >
using tatooine::typed_vector_property< Handle, ValueType >::const_iterator = typename container_type::const_iterator

◆ const_pointer

template<typename Handle , typename ValueType >
using tatooine::typed_vector_property< Handle, ValueType >::const_pointer = typename container_type::const_pointer

◆ const_reference

template<typename Handle , typename ValueType >
using tatooine::typed_vector_property< Handle, ValueType >::const_reference = typename container_type::const_reference

◆ const_reverse_iterator

template<typename Handle , typename ValueType >
using tatooine::typed_vector_property< Handle, ValueType >::const_reverse_iterator = typename container_type::const_reverse_iterator

◆ container_type

template<typename Handle , typename ValueType >
using tatooine::typed_vector_property< Handle, ValueType >::container_type = std::vector<ValueType>

◆ difference_type

template<typename Handle , typename ValueType >
using tatooine::typed_vector_property< Handle, ValueType >::difference_type = typename container_type::difference_type

◆ iterator

template<typename Handle , typename ValueType >
using tatooine::typed_vector_property< Handle, ValueType >::iterator = typename container_type::iterator

◆ parent_type

template<typename Handle , typename ValueType >
using tatooine::typed_vector_property< Handle, ValueType >::parent_type = vector_property<Handle>

◆ pointer

template<typename Handle , typename ValueType >
using tatooine::typed_vector_property< Handle, ValueType >::pointer = typename container_type::pointer

◆ reference

template<typename Handle , typename ValueType >
using tatooine::typed_vector_property< Handle, ValueType >::reference = typename container_type::reference

◆ reverse_iterator

template<typename Handle , typename ValueType >
using tatooine::typed_vector_property< Handle, ValueType >::reverse_iterator = typename container_type::reverse_iterator

◆ size_type

template<typename Handle , typename ValueType >
using tatooine::typed_vector_property< Handle, ValueType >::size_type = typename container_type::size_type

◆ this_type

template<typename Handle , typename ValueType >
using tatooine::typed_vector_property< Handle, ValueType >::this_type = typed_vector_property<Handle, ValueType>

◆ value_type

template<typename Handle , typename ValueType >
using tatooine::typed_vector_property< Handle, ValueType >::value_type = typename container_type::value_type

Constructor & Destructor Documentation

◆ typed_vector_property() [1/3]

template<typename Handle , typename ValueType >
tatooine::typed_vector_property< Handle, ValueType >::typed_vector_property ( const ValueType &  value = ValueType{})
inlineexplicit

◆ typed_vector_property() [2/3]

template<typename Handle , typename ValueType >
tatooine::typed_vector_property< Handle, ValueType >::typed_vector_property ( const typed_vector_property< Handle, ValueType > &  other)
inline

◆ typed_vector_property() [3/3]

template<typename Handle , typename ValueType >
tatooine::typed_vector_property< Handle, ValueType >::typed_vector_property ( typed_vector_property< Handle, ValueType > &&  other)
inlinenoexcept

Member Function Documentation

◆ at() [1/4]

template<typename Handle , typename ValueType >
auto tatooine::typed_vector_property< Handle, ValueType >::at ( Handle  handle) -> auto&
inline

Access the i'th element.

◆ at() [2/4]

template<typename Handle , typename ValueType >
auto tatooine::typed_vector_property< Handle, ValueType >::at ( Handle  handle) const -> const auto&
inline

Const access to the i'th element.

◆ at() [3/4]

template<typename Handle , typename ValueType >
auto tatooine::typed_vector_property< Handle, ValueType >::at ( std::size_t const  i) -> auto&
inline

Access the i'th element.

◆ at() [4/4]

template<typename Handle , typename ValueType >
auto tatooine::typed_vector_property< Handle, ValueType >::at ( std::size_t const  i) const -> const auto&
inline

Const access to the i'th element.

◆ back() [1/2]

template<typename Handle , typename ValueType >
auto tatooine::typed_vector_property< Handle, ValueType >::back ( ) -> auto&
inline

◆ back() [2/2]

template<typename Handle , typename ValueType >
auto tatooine::typed_vector_property< Handle, ValueType >::back ( ) const -> const auto&
inline

◆ begin() [1/2]

template<typename Handle , typename ValueType >
auto tatooine::typed_vector_property< Handle, ValueType >::begin ( )
inline

◆ begin() [2/2]

template<typename Handle , typename ValueType >
auto tatooine::typed_vector_property< Handle, ValueType >::begin ( ) const
inline

◆ clean()

template<typename Handle , typename ValueType >
auto tatooine::typed_vector_property< Handle, ValueType >::clean ( std::set< Handle > const &  invalid_handles) -> void
inlineoverridevirtual

◆ clear()

template<typename Handle , typename ValueType >
void tatooine::typed_vector_property< Handle, ValueType >::clear ( )
inlineoverridevirtual

Free unused memory.

Implements tatooine::vector_property< Handle >.

◆ clone()

template<typename Handle , typename ValueType >
auto tatooine::typed_vector_property< Handle, ValueType >::clone ( ) const -> std::unique_ptr<parent_type>
inlineoverridevirtual

◆ data()

template<typename Handle , typename ValueType >
auto tatooine::typed_vector_property< Handle, ValueType >::data ( ) const
inline

◆ emplace_back()

template<typename Handle , typename ValueType >
template<typename... Ts>
void tatooine::typed_vector_property< Handle, ValueType >::emplace_back ( Ts &&...  ts)
inline

◆ end() [1/2]

template<typename Handle , typename ValueType >
auto tatooine::typed_vector_property< Handle, ValueType >::end ( )
inline

◆ end() [2/2]

template<typename Handle , typename ValueType >
auto tatooine::typed_vector_property< Handle, ValueType >::end ( ) const
inline

◆ erase() [1/5]

template<typename Handle , typename ValueType >
auto tatooine::typed_vector_property< Handle, ValueType >::erase ( const_iterator  first,
const_iterator  last 
)
inline

◆ erase() [2/5]

template<typename Handle , typename ValueType >
auto tatooine::typed_vector_property< Handle, ValueType >::erase ( const_iterator  pos)
inline

◆ erase() [3/5]

template<typename Handle , typename ValueType >
auto tatooine::typed_vector_property< Handle, ValueType >::erase ( iterator  first,
iterator  last 
)
inline

◆ erase() [4/5]

template<typename Handle , typename ValueType >
auto tatooine::typed_vector_property< Handle, ValueType >::erase ( iterator  pos)
inline

◆ erase() [5/5]

template<typename Handle , typename ValueType >
auto tatooine::typed_vector_property< Handle, ValueType >::erase ( std::size_t  ) -> void
inlineoverridevirtual

Resize storage to hold n elements.

Implements tatooine::vector_property< Handle >.

◆ front() [1/2]

template<typename Handle , typename ValueType >
auto tatooine::typed_vector_property< Handle, ValueType >::front ( ) -> auto&
inline

◆ front() [2/2]

template<typename Handle , typename ValueType >
auto tatooine::typed_vector_property< Handle, ValueType >::front ( ) const -> const auto&
inline

◆ internal_container()

template<typename Handle , typename ValueType >
auto tatooine::typed_vector_property< Handle, ValueType >::internal_container ( ) const -> auto const&
inline

◆ operator=() [1/2]

template<typename Handle , typename ValueType >
auto tatooine::typed_vector_property< Handle, ValueType >::operator= ( const typed_vector_property< Handle, ValueType > &  other) -> auto&
inline

◆ operator=() [2/2]

template<typename Handle , typename ValueType >
auto tatooine::typed_vector_property< Handle, ValueType >::operator= ( typed_vector_property< Handle, ValueType > &&  other) -> auto&
inlinenoexcept

◆ operator[]() [1/4]

template<typename Handle , typename ValueType >
auto tatooine::typed_vector_property< Handle, ValueType >::operator[] ( Handle  handle) -> auto&
inline

Access the i'th element.

◆ operator[]() [2/4]

template<typename Handle , typename ValueType >
auto tatooine::typed_vector_property< Handle, ValueType >::operator[] ( Handle  handle) const -> const auto&
inline

Const access to the i'th element.

◆ operator[]() [3/4]

template<typename Handle , typename ValueType >
auto tatooine::typed_vector_property< Handle, ValueType >::operator[] ( std::size_t const  i) -> auto&
inline

Access the i'th element.

◆ operator[]() [4/4]

template<typename Handle , typename ValueType >
auto tatooine::typed_vector_property< Handle, ValueType >::operator[] ( std::size_t const  i) const -> const auto&
inline

Const access to the i'th element.

◆ push_back() [1/2]

template<typename Handle , typename ValueType >
void tatooine::typed_vector_property< Handle, ValueType >::push_back ( )
inlineoverridevirtual

pushes element at back

Implements tatooine::vector_property< Handle >.

◆ push_back() [2/2]

template<typename Handle , typename ValueType >
void tatooine::typed_vector_property< Handle, ValueType >::push_back ( const ValueType &  value)
inline

◆ reserve()

template<typename Handle , typename ValueType >
void tatooine::typed_vector_property< Handle, ValueType >::reserve ( std::size_t  n)
inlineoverridevirtual

Reserve memory for n elements.

Implements tatooine::vector_property< Handle >.

◆ resize()

template<typename Handle , typename ValueType >
void tatooine::typed_vector_property< Handle, ValueType >::resize ( std::size_t  n)
inlineoverridevirtual

Resize storage to hold n elements.

Implements tatooine::vector_property< Handle >.

◆ size() [1/2]

template<typename Handle , typename ValueType >
auto tatooine::typed_vector_property< Handle, ValueType >::size ( )
inline

◆ size() [2/2]

template<typename Handle , typename ValueType >
auto tatooine::typed_vector_property< Handle, ValueType >::size ( ) const
inline

◆ type()

template<typename Handle , typename ValueType >
auto tatooine::typed_vector_property< Handle, ValueType >::type ( ) const -> const std::type_info &override
inlineoverridevirtual

for identifying type.

Implements tatooine::vector_property< Handle >.

Member Data Documentation

◆ m_data

template<typename Handle , typename ValueType >
container_type tatooine::typed_vector_property< Handle, ValueType >::m_data
private

◆ m_value

template<typename Handle , typename ValueType >
ValueType tatooine::typed_vector_property< Handle, ValueType >::m_value
private

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