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

#include <exprtk.hpp>

Public Types

typedef T * data_ptr_t

Public Member Functions

 vector_view (data_ptr_t data, const std::size_t &size)
 vector_view (const vector_view< T > &vv)
void rebase (data_ptr_t data)
bool rebase (data_ptr_t data, const std::size_t new_size)
data_ptr_t data () const
std::size_t base_size () const
std::size_t size () const
const T & operator[] (const std::size_t index) const
T & operator[] (const std::size_t index)
void set_ref (data_ptr_t *data_ref)
void set_size_ref (std::size_t *size_ref)
void remove_ref (data_ptr_t *data_ref)
void remove_size_ref (std::size_t *size_ref)
bool set_size (const std::size_t new_size)

Private Attributes

const std::size_t base_size_
std::size_t size_
data_ptr_t data_
std::vector< data_ptr_t * > data_ref_
std::vector< std::size_t * > size_ref_

Detailed Description

template<typename T>
class exprtk::vector_view< T >

Definition at line 4634 of file exprtk.hpp.

Member Typedef Documentation

◆ data_ptr_t

template<typename T>
typedef T* exprtk::vector_view< T >::data_ptr_t

Definition at line 4638 of file exprtk.hpp.

Constructor & Destructor Documentation

◆ vector_view() [1/2]

template<typename T>
exprtk::vector_view< T >::vector_view ( data_ptr_t data,
const std::size_t & size )
inline

Definition at line 4640 of file exprtk.hpp.

4641 : base_size_(size)
4642 , size_(size)
4643 , data_(data)
4644 , data_ref_(0)
4645 {
4646 assert(size_ > 0);
4647 }
const std::size_t base_size_
Definition exprtk.hpp:4775
std::size_t size() const
Definition exprtk.hpp:4694
std::vector< data_ptr_t * > data_ref_
Definition exprtk.hpp:4778
std::size_t size_
Definition exprtk.hpp:4776
data_ptr_t data() const
Definition exprtk.hpp:4684

◆ vector_view() [2/2]

template<typename T>
exprtk::vector_view< T >::vector_view ( const vector_view< T > & vv)
inline

Definition at line 4649 of file exprtk.hpp.

4651 , size_(vv.size_)
4652 , data_(vv.data_)
4653 , data_ref_(0)
4654 {
4655 assert(size_ > 0);
4656 }

Member Function Documentation

◆ base_size()

template<typename T>
std::size_t exprtk::vector_view< T >::base_size ( ) const
inline

Definition at line 4689 of file exprtk.hpp.

4690 {
4691 return base_size_;
4692 }

Referenced by my_vv_size_handler_t< T >::operator()(), vv_size_handler_t< T >::operator()(), run_test21(), and vector_resize_example().

Here is the caller graph for this function:

◆ data()

template<typename T>
data_ptr_t exprtk::vector_view< T >::data ( ) const
inline

Definition at line 4684 of file exprtk.hpp.

4685 {
4686 return data_;
4687 }

Referenced by my_vv_size_handler_t< T >::register_vector_view(), and vv_size_handler_t< T >::register_vector_view().

Here is the caller graph for this function:

◆ operator[]() [1/2]

template<typename T>
T & exprtk::vector_view< T >::operator[] ( const std::size_t index)
inline

Definition at line 4705 of file exprtk.hpp.

4706 {
4707 assert(index < size_);
4708 return data_[index];
4709 }

◆ operator[]() [2/2]

template<typename T>
const T & exprtk::vector_view< T >::operator[] ( const std::size_t index) const
inline

Definition at line 4699 of file exprtk.hpp.

4700 {
4701 assert(index < size_);
4702 return data_[index];
4703 }

◆ rebase() [1/2]

template<typename T>
void exprtk::vector_view< T >::rebase ( data_ptr_t data)
inline

Definition at line 4658 of file exprtk.hpp.

4659 {
4660 assert(data);
4661
4662 data_ = data;
4663
4664 if (!data_ref_.empty())
4665 {
4666 for (std::size_t i = 0; i < data_ref_.size(); ++i)
4667 {
4668 (*data_ref_[i]) = data;
4669 }
4670 }
4671 }

Referenced by exprtk::vector_view< Type >::rebase(), run_test18(), run_test21(), vector_inline_resize_example(), and vector_resize_example().

Here is the caller graph for this function:

◆ rebase() [2/2]

template<typename T>
bool exprtk::vector_view< T >::rebase ( data_ptr_t data,
const std::size_t new_size )
inline

Definition at line 4673 of file exprtk.hpp.

4674 {
4675 if (set_size(new_size))
4676 {
4677 rebase(data);
4678 return true;
4679 }
4680
4681 return false;
4682 }
void rebase(data_ptr_t data)
Definition exprtk.hpp:4658
bool set_size(const std::size_t new_size)
Definition exprtk.hpp:4747

◆ remove_ref()

template<typename T>
void exprtk::vector_view< T >::remove_ref ( data_ptr_t * data_ref)
inline

Definition at line 4727 of file exprtk.hpp.

4728 {
4729 data_ref_.erase(
4730 std::remove(data_ref_.begin(), data_ref_.end(), data_ref),
4731 data_ref_.end());
4732 exprtk_debug(("vector_view::remove_ref() - data_ref: %p data_ref_.size(): %d\n",
4733 reinterpret_cast<void*>(data_ref),
4734 static_cast<int>(data_ref_.size())));
4735 }
#define exprtk_debug(params)
Definition exprtk.hpp:64

Referenced by exprtk::details::generic_function_node< T, StringFunction >::~generic_function_node().

Here is the caller graph for this function:

◆ remove_size_ref()

template<typename T>
void exprtk::vector_view< T >::remove_size_ref ( std::size_t * size_ref)
inline

Definition at line 4737 of file exprtk.hpp.

4738 {
4739 size_ref_.erase(
4740 std::remove(size_ref_.begin(), size_ref_.end(), size_ref),
4741 size_ref_.end());
4742 exprtk_debug(("vector_view::remove_size_ref() - size_ref: %p size_ref_.size(): %d\n",
4743 reinterpret_cast<void*>(size_ref),
4744 static_cast<int>(size_ref_.size())));
4745 }
std::vector< std::size_t * > size_ref_
Definition exprtk.hpp:4779

Referenced by exprtk::details::generic_function_node< T, StringFunction >::~generic_function_node().

Here is the caller graph for this function:

◆ set_ref()

template<typename T>
void exprtk::vector_view< T >::set_ref ( data_ptr_t * data_ref)
inline

Definition at line 4711 of file exprtk.hpp.

4712 {
4713 data_ref_.push_back(data_ref);
4714 exprtk_debug(("vector_view::set_ref() - data_ref: %p data_ref_.size(): %d\n",
4715 reinterpret_cast<void*>(data_ref),
4716 static_cast<int>(data_ref_.size())));
4717 }

◆ set_size()

template<typename T>
bool exprtk::vector_view< T >::set_size ( const std::size_t new_size)
inline

Definition at line 4747 of file exprtk.hpp.

4748 {
4749 if ((new_size > 0) && (new_size <= base_size_))
4750 {
4751 size_ = new_size;
4752 exprtk_debug(("vector_view::set_size() - data_: %p size: %lu\n",
4753 reinterpret_cast<void*>(data_),
4754 size_));
4755
4756 if (!size_ref_.empty())
4757 {
4758 for (std::size_t i = 0; i < size_ref_.size(); ++i)
4759 {
4760 (*size_ref_[i]) = new_size;
4761 }
4762 }
4763
4764 return true;
4765 }
4766
4767 exprtk_debug(("vector_view::set_size() - error invalid new_size: %lu base_size: %lu\n",
4768 new_size,
4769 base_size_));
4770 return false;
4771 }

Referenced by my_vv_size_handler_t< T >::operator()(), vv_size_handler_t< T >::operator()(), exprtk::vector_view< Type >::rebase(), run_test21(), and vector_resize_example().

Here is the caller graph for this function:

◆ set_size_ref()

template<typename T>
void exprtk::vector_view< T >::set_size_ref ( std::size_t * size_ref)
inline

Definition at line 4719 of file exprtk.hpp.

4720 {
4721 size_ref_.push_back(size_ref);
4722 exprtk_debug(("vector_view::set_size_ref() - size_ref: %p size_ref_.size(): %d\n",
4723 reinterpret_cast<void*>(size_ref),
4724 static_cast<int>(size_ref_.size())));
4725 }

◆ size()

template<typename T>
std::size_t exprtk::vector_view< T >::size ( ) const
inline

Definition at line 4694 of file exprtk.hpp.

4695 {
4696 return size_;
4697 }

Referenced by exprtk::symbol_table< T >::add_vector().

Here is the caller graph for this function:

Member Data Documentation

◆ base_size_

template<typename T>
const std::size_t exprtk::vector_view< T >::base_size_
private

Definition at line 4775 of file exprtk.hpp.

◆ data_

template<typename T>
data_ptr_t exprtk::vector_view< T >::data_
private

Definition at line 4777 of file exprtk.hpp.

◆ data_ref_

template<typename T>
std::vector<data_ptr_t*> exprtk::vector_view< T >::data_ref_
private

Definition at line 4778 of file exprtk.hpp.

◆ size_

template<typename T>
std::size_t exprtk::vector_view< T >::size_
private

Definition at line 4776 of file exprtk.hpp.

◆ size_ref_

template<typename T>
std::vector<std::size_t*> exprtk::vector_view< T >::size_ref_
private

Definition at line 4779 of file exprtk.hpp.


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