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 remove_ref (data_ptr_t *data_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_
 

Detailed Description

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

Definition at line 4552 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 4556 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 4558 of file exprtk.hpp.

4559 : base_size_(size)
4560 , size_(size)
4561 , data_(data)
4562 , data_ref_(0)
4563 {
4564 assert(size_ > 0);
4565 }
const std::size_t base_size_
Definition exprtk.hpp:4653
std::size_t size() const
Definition exprtk.hpp:4599
std::vector< data_ptr_t * > data_ref_
Definition exprtk.hpp:4656
std::size_t size_
Definition exprtk.hpp:4654
data_ptr_t data() const
Definition exprtk.hpp:4589

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 4567 of file exprtk.hpp.

4568 : base_size_(vv.base_size_)
4569 , size_(vv.size_)
4570 , data_(vv.data_)
4571 , data_ref_(0)
4572 {
4573 assert(size_ > 0);
4574 }

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 4594 of file exprtk.hpp.

4595 {
4596 return base_size_;
4597 }

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 4589 of file exprtk.hpp.

4590 {
4591 return data_;
4592 }

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 4610 of file exprtk.hpp.

4611 {
4612 assert(index < size_);
4613 return data_[index];
4614 }

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 4604 of file exprtk.hpp.

4605 {
4606 assert(index < size_);
4607 return data_[index];
4608 }

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 4576 of file exprtk.hpp.

4577 {
4578 data_ = data;
4579
4580 if (!data_ref_.empty())
4581 {
4582 for (std::size_t i = 0; i < data_ref_.size(); ++i)
4583 {
4584 (*data_ref_[i]) = data;
4585 }
4586 }
4587 }

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 4624 of file exprtk.hpp.

4625 {
4626 data_ref_.erase(
4627 std::remove(data_ref_.begin(), data_ref_.end(), data_ref),
4628 data_ref_.end());
4629 exprtk_debug(("vector_view::remove_ref() - data_ref: %p data_ref_.size(): %d\n",
4630 reinterpret_cast<void*>(data_ref),
4631 static_cast<int>(data_ref_.size())));
4632 }
#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:

◆ set_ref()

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

Definition at line 4616 of file exprtk.hpp.

4617 {
4618 data_ref_.push_back(data_ref);
4619 exprtk_debug(("vector_view::set_ref() - data_ref: %p data_ref_.size(): %d\n",
4620 reinterpret_cast<void*>(data_ref),
4621 static_cast<int>(data_ref_.size())));
4622 }

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 4634 of file exprtk.hpp.

4635 {
4636 if ((new_size > 0) && (new_size <= base_size_))
4637 {
4638 size_ = new_size;
4639 exprtk_debug(("vector_view::set_size() - data_: %p size: %lu\n",
4640 reinterpret_cast<void*>(data_),
4641 size_));
4642 return true;
4643 }
4644
4645 exprtk_debug(("vector_view::set_size() - error invalid new_size: %lu base_size: %lu\n",
4646 new_size,
4647 base_size_));
4648 return false;
4649 }

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

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:

◆ 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

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