C++ Mathematical Expression Toolkit (ExprTk) release
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Private Attributes | List of all members
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)
 
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 4626 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 4630 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 4632 of file exprtk.hpp.

4633 : base_size_(size)
4634 , size_(size)
4635 , data_(data)
4636 , data_ref_(0)
4637 {
4638 assert(size_ > 0);
4639 }
const std::size_t base_size_
Definition exprtk.hpp:4754
std::size_t size() const
Definition exprtk.hpp:4673
std::vector< data_ptr_t * > data_ref_
Definition exprtk.hpp:4757
std::size_t size_
Definition exprtk.hpp:4755
data_ptr_t data() const
Definition exprtk.hpp:4663

References exprtk::vector_view< T >::size_.

◆ vector_view() [2/2]

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

Definition at line 4641 of file exprtk.hpp.

4642 : base_size_(vv.base_size_)
4643 , size_(vv.size_)
4644 , data_(vv.data_)
4645 , data_ref_(0)
4646 {
4647 assert(size_ > 0);
4648 }

References exprtk::vector_view< T >::size_.

Member Function Documentation

◆ base_size()

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

Definition at line 4668 of file exprtk.hpp.

4669 {
4670 return base_size_;
4671 }

References exprtk::vector_view< T >::base_size_.

Referenced by vv_size_handler_t< T >::operator()(), my_vv_size_handler_t< T >::operator()(), run_test21(), exprtk::details::vector_holder< Type >::vector_view_impl::vector_base_size(), exprtk::details::vector_holder< Type >::resizable_vector_impl::vector_base_size(), 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 4663 of file exprtk.hpp.

4664 {
4665 return data_;
4666 }

References exprtk::vector_view< T >::data_.

Referenced by exprtk::vector_view< T >::rebase(), vv_size_handler_t< T >::register_vector_view(), and my_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 4684 of file exprtk.hpp.

4685 {
4686 assert(index < size_);
4687 return data_[index];
4688 }

References exprtk::vector_view< T >::data_, and exprtk::vector_view< T >::size_.

◆ operator[]() [2/2]

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

Definition at line 4678 of file exprtk.hpp.

4679 {
4680 assert(index < size_);
4681 return data_[index];
4682 }

References exprtk::vector_view< T >::data_, and exprtk::vector_view< T >::size_.

◆ rebase()

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

Definition at line 4650 of file exprtk.hpp.

4651 {
4652 data_ = data;
4653
4654 if (!data_ref_.empty())
4655 {
4656 for (std::size_t i = 0; i < data_ref_.size(); ++i)
4657 {
4658 (*data_ref_[i]) = data;
4659 }
4660 }
4661 }

References exprtk::vector_view< T >::data(), exprtk::vector_view< T >::data_, and exprtk::vector_view< T >::data_ref_.

Referenced by run_test18(), run_test21(), vector_inline_resize_example(), and vector_resize_example().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ remove_ref()

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

Definition at line 4706 of file exprtk.hpp.

4707 {
4708 data_ref_.erase(
4709 std::remove(data_ref_.begin(), data_ref_.end(), data_ref),
4710 data_ref_.end());
4711 exprtk_debug(("vector_view::remove_ref() - data_ref: %p data_ref_.size(): %d\n",
4712 reinterpret_cast<void*>(data_ref),
4713 static_cast<int>(data_ref_.size())));
4714 }
#define exprtk_debug(params)
Definition exprtk.hpp:64

References exprtk::vector_view< T >::data_ref_, and exprtk_debug.

Referenced by exprtk::details::vector_holder< Type >::vector_view_impl::remove_ref(), and exprtk::details::generic_function_node< T, GenericFunction >::~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 4716 of file exprtk.hpp.

4717 {
4718 size_ref_.erase(
4719 std::remove(size_ref_.begin(), size_ref_.end(), size_ref),
4720 size_ref_.end());
4721 exprtk_debug(("vector_view::remove_size_ref() - size_ref: %p size_ref_.size(): %d\n",
4722 reinterpret_cast<void*>(size_ref),
4723 static_cast<int>(size_ref_.size())));
4724 }
std::vector< std::size_t * > size_ref_
Definition exprtk.hpp:4758

References exprtk_debug, and exprtk::vector_view< T >::size_ref_.

◆ set_ref()

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

Definition at line 4690 of file exprtk.hpp.

4691 {
4692 data_ref_.push_back(data_ref);
4693 exprtk_debug(("vector_view::set_ref() - data_ref: %p data_ref_.size(): %d\n",
4694 reinterpret_cast<void*>(data_ref),
4695 static_cast<int>(data_ref_.size())));
4696 }

References exprtk::vector_view< T >::data_ref_, and exprtk_debug.

Referenced by exprtk::details::vector_holder< Type >::vector_view_impl::set_ref().

Here is the caller graph for this function:

◆ set_size()

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

Definition at line 4726 of file exprtk.hpp.

4727 {
4728 if ((new_size > 0) && (new_size <= base_size_))
4729 {
4730 size_ = new_size;
4731 exprtk_debug(("vector_view::set_size() - data_: %p size: %lu\n",
4732 reinterpret_cast<void*>(data_),
4733 size_));
4734
4735 if (!size_ref_.empty())
4736 {
4737 for (std::size_t i = 0; i < size_ref_.size(); ++i)
4738 {
4739 (*size_ref_[i]) = new_size;
4740 }
4741 }
4742
4743 return true;
4744 }
4745
4746 exprtk_debug(("vector_view::set_size() - error invalid new_size: %lu base_size: %lu\n",
4747 new_size,
4748 base_size_));
4749 return false;
4750 }

References exprtk::vector_view< T >::base_size_, exprtk::vector_view< T >::data_, exprtk_debug, exprtk::vector_view< T >::size_, and exprtk::vector_view< T >::size_ref_.

Referenced by vv_size_handler_t< T >::operator()(), my_vv_size_handler_t< T >::operator()(), 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 4698 of file exprtk.hpp.

4699 {
4700 size_ref_.push_back(size_ref);
4701 exprtk_debug(("vector_view::set_size_ref() - size_ref: %p size_ref_.size(): %d\n",
4702 reinterpret_cast<void*>(size_ref),
4703 static_cast<int>(size_ref_.size())));
4704 }

References exprtk_debug, and exprtk::vector_view< T >::size_ref_.

◆ size()

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

Member Data Documentation

◆ base_size_

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

◆ data_

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

◆ data_ref_

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

◆ size_

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

◆ size_ref_

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

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