C++ Mathematical Expression Toolkit (ExprTk) release
Loading...
Searching...
No Matches
exprtk::details::vector_holder< Type > Class Template Reference

#include <exprtk.hpp>

Collaboration diagram for exprtk::details::vector_holder< Type >:
[legend]

Classes

class  vector_holder_base
class  array_vector_impl
class  sequence_vector_impl
class  vector_view_impl
class  resizable_vector_impl

Public Types

typedef details::vec_data_store< Type > vds_t

Public Member Functions

 vector_holder (Type *vec, const std::size_t &vec_size)
 vector_holder (const vds_t &vds)
template<typename Allocator>
 vector_holder (std::vector< Type, Allocator > &vec)
 vector_holder (exprtk::vector_view< Type > &vec)
 vector_holder (vector_holder_t &vec_holder, const vds_t &vds)
value_ptr operator[] (const std::size_t &index) const
std::size_t size () const
std::size_t base_size () const
value_ptr data () const
void set_ref (value_ptr *ref)
void set_size_ref (std::size_t *ref)
void remove_ref (value_ptr *ref)
void remove_size_ref (std::size_t *ref)
bool rebaseable () const
vector_view< Type > * rebaseable_instance ()

Private Types

typedef Type value_type
typedef value_type * value_ptr
typedef const value_ptr const_value_ptr
typedef vector_holder< Type > vector_holder_t

Private Member Functions

 vector_holder (const vector_holder< Type > &)
vector_holder< Type > & operator= (const vector_holder< Type > &)

Private Attributes

vector_holder_base * vector_holder_base_
uchar_t buffer [64]

Detailed Description

template<typename Type>
class exprtk::details::vector_holder< Type >

Definition at line 6433 of file exprtk.hpp.

Member Typedef Documentation

◆ const_value_ptr

template<typename Type>
typedef const value_ptr exprtk::details::vector_holder< Type >::const_value_ptr
private

Definition at line 6439 of file exprtk.hpp.

◆ value_ptr

template<typename Type>
typedef value_type* exprtk::details::vector_holder< Type >::value_ptr
private

Definition at line 6438 of file exprtk.hpp.

◆ value_type

template<typename Type>
typedef Type exprtk::details::vector_holder< Type >::value_type
private

Definition at line 6437 of file exprtk.hpp.

◆ vds_t

template<typename Type>
typedef details::vec_data_store<Type> exprtk::details::vector_holder< Type >::vds_t

Definition at line 6688 of file exprtk.hpp.

◆ vector_holder_t

template<typename Type>
typedef vector_holder<Type> exprtk::details::vector_holder< Type >::vector_holder_t
private

Definition at line 6440 of file exprtk.hpp.

Constructor & Destructor Documentation

◆ vector_holder() [1/6]

template<typename Type>
exprtk::details::vector_holder< Type >::vector_holder ( Type * vec,
const std::size_t & vec_size )
inline

Definition at line 6690 of file exprtk.hpp.

Referenced by exprtk::parser< Type >::parse_vector(), and exprtk::details::vector_holder< Type >::resizable_vector_impl::resizable_vector_impl().

Here is the caller graph for this function:

◆ vector_holder() [2/6]

template<typename Type>
exprtk::details::vector_holder< Type >::vector_holder ( const vds_t & vds)
inlineexplicit

Definition at line 6694 of file exprtk.hpp.

◆ vector_holder() [3/6]

template<typename Type>
template<typename Allocator>
exprtk::details::vector_holder< Type >::vector_holder ( std::vector< Type, Allocator > & vec)
inlineexplicit

◆ vector_holder() [4/6]

template<typename Type>
exprtk::details::vector_holder< Type >::vector_holder ( exprtk::vector_view< Type > & vec)
inlineexplicit

◆ vector_holder() [5/6]

template<typename Type>
exprtk::details::vector_holder< Type >::vector_holder ( vector_holder_t & vec_holder,
const vds_t & vds )
inlineexplicit

◆ vector_holder() [6/6]

template<typename Type>
exprtk::details::vector_holder< Type >::vector_holder ( const vector_holder< Type > & )
private

Member Function Documentation

◆ base_size()

template<typename Type>
std::size_t exprtk::details::vector_holder< Type >::base_size ( ) const
inline

Definition at line 6721 of file exprtk.hpp.

6722 {
6723 return vector_holder_base_->base_size();
6724 }

Referenced by exprtk::details::vector_node< T > *::base_size(), exprtk::details::make_memory_context(), and exprtk::details::vec_binop_vecvec_node< T, Operation >::vec_binop_vecvec_node().

Here is the caller graph for this function:

◆ data()

template<typename Type>
value_ptr exprtk::details::vector_holder< Type >::data ( ) const
inline

Definition at line 6726 of file exprtk.hpp.

6727 {
6728 return vector_holder_base_->data();
6729 }

Referenced by exprtk::parser< T >::scope_element_manager::get_vector_name(), exprtk::symbol_table< T >::load_vectors_from(), exprtk::parser< Type >::parse_pending_vector_index_operator(), and exprtk::parser< Type >::parse_vector().

Here is the caller graph for this function:

◆ operator=()

template<typename Type>
vector_holder< Type > & exprtk::details::vector_holder< Type >::operator= ( const vector_holder< Type > & )
private

◆ operator[]()

template<typename Type>
value_ptr exprtk::details::vector_holder< Type >::operator[] ( const std::size_t & index) const
inline

Definition at line 6711 of file exprtk.hpp.

6712 {
6713 return (*vector_holder_base_)[index];
6714 }

◆ rebaseable()

◆ rebaseable_instance()

template<typename Type>
vector_view< Type > * exprtk::details::vector_holder< Type >::rebaseable_instance ( )
inline

Definition at line 6768 of file exprtk.hpp.

6769 {
6770 return vector_holder_base_->rebaseable_instance();
6771 }

Referenced by exprtk::details::generic_function_node< T, StringFunction >::init_branches(), and exprtk::details::vector_holder< Type >::resizable_vector_impl::resizable_vector_impl().

Here is the caller graph for this function:

◆ remove_ref()

template<typename Type>
void exprtk::details::vector_holder< Type >::remove_ref ( value_ptr * ref)
inline

Definition at line 6747 of file exprtk.hpp.

6748 {
6749 if (rebaseable())
6750 {
6751 vector_holder_base_->remove_ref(ref);
6752 }
6753 }

◆ remove_size_ref()

template<typename Type>
void exprtk::details::vector_holder< Type >::remove_size_ref ( std::size_t * ref)
inline

Definition at line 6755 of file exprtk.hpp.

6756 {
6757 if (rebaseable())
6758 {
6759 vector_holder_base_->remove_size_ref(ref);
6760 }
6761 }

◆ set_ref()

template<typename Type>
void exprtk::details::vector_holder< Type >::set_ref ( value_ptr * ref)
inline

Definition at line 6731 of file exprtk.hpp.

6732 {
6733 if (rebaseable())
6734 {
6735 vector_holder_base_->set_ref(ref);
6736 }
6737 }

◆ set_size_ref()

template<typename Type>
void exprtk::details::vector_holder< Type >::set_size_ref ( std::size_t * ref)
inline

Definition at line 6739 of file exprtk.hpp.

6740 {
6741 if (rebaseable())
6742 {
6743 vector_holder_base_->set_size_ref(ref);
6744 }
6745 }

◆ size()

template<typename Type>
std::size_t exprtk::details::vector_holder< Type >::size ( ) const
inline

Definition at line 6716 of file exprtk.hpp.

6717 {
6718 return vector_holder_base_->size();
6719 }

Referenced by exprtk::symbol_table< T >::load_vectors_from(), exprtk::parser< Type >::parse_vector(), exprtk::details::vector_node< T > *::size(), exprtk::parser< Type >::synthesize_vector_element(), and exprtk::parser< T >::expression_generator< Type >::vector_element().

Here is the caller graph for this function:

Member Data Documentation

◆ buffer

template<typename Type>
uchar_t exprtk::details::vector_holder< Type >::buffer[64]
private

Definition at line 6779 of file exprtk.hpp.

◆ vector_holder_base_

template<typename Type>
vector_holder_base* exprtk::details::vector_holder< Type >::vector_holder_base_
mutableprivate

Definition at line 6778 of file exprtk.hpp.


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