barretenberg
Loading...
Searching...
No Matches
Classes | Public Member Functions | List of all members
RefVector< T > Class Template Reference

A template class for a reference vector. Behaves as if std::vector<T&> was possible. More...

#include <ref_vector.hpp>

Classes

class  iterator
 Nested iterator class for RefVector, based on indexing into the pointer vector. Provides semantics similar to what would be expected if std::vector<T&, N> was possible. More...
 

Public Member Functions

 RefVector (const std::vector< T * > &ptr_vector)
 
 RefVector (std::vector< T > &vector)
 
template<typename... Ts>
 RefVector (T &ref, Ts &... rest)
 
T & operator[] (std::size_t idx) const
 
std::size_t size () const
 
void push_back (T &element)
 
iterator begin () const
 
iterator end () const
 
template<typename ConvertibleFromT >
 operator std::vector< ConvertibleFromT > () const
 
std::vector< T * > & get_storage ()
 
const std::vector< T * > & get_storage () const
 

Detailed Description

template<typename T>
class RefVector< T >

A template class for a reference vector. Behaves as if std::vector<T&> was possible.

This class provides a dynamic-size vector of pointers to elements of type T, exposed as references. It offers random access to its elements and provides an iterator class for traversal.

Template Parameters
TThe type of elements stored in the vector.
Warning
This should NOT be used for long-term storage, only for efficient passing. Any long-term sharing of values should use shared pointers.

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