Template Class shared_vector< E, typename meta::is_void< E >::type >

Inheritance Relationships

Base Type

Class Documentation

template<typename E>
class shared_vector<E, typename meta::is_void<E>::type> : public epics::pvData::detail::shared_vector_base<E>

Specialization for storing untyped pointers.

Does not allow access or iteration of contents other than as void* or const void*

In order to support shared_vector_convert<>() information about the type of the underlying allocation is stored. This is implicitly set by static_shared_vector_cast<>() and may be explicitly checked/changed using original_type()/set_original_type().

A shared_vector<void> directly constructed from a smart pointer does not have an associated original_type(). Use epics::pvData::ScalarTypeFunc::allocArray() to convienently allocate an array with a known original_type().

Public Types

typedef E value_type
typedef E *pointer
typedef ptrdiff_t difference_type
typedef size_t size_type
typedef std::tr1::shared_ptr<E> shared_pointer_type

Public Functions

inline shared_vector()
inline shared_vector(pointer v, size_t o, size_t c)
template<typename B>
inline shared_vector(pointer d, B b, size_t o, size_t c)
template<typename E1>
inline shared_vector(const std::tr1::shared_ptr<E1> &d, size_t o, size_t c)
inline shared_vector(const shared_vector &o)
template<typename FROM>
inline shared_vector(const shared_vector<FROM> &src, detail::_shared_vector_cast_tag)
inline shared_vector(shared_vector<void> &O, detail::_shared_vector_freeze_tag t)
inline shared_vector(shared_vector<const void> &O, detail::_shared_vector_thaw_tag t)
inline shared_vector &operator=(const shared_vector &o)
inline void swap(shared_vector &o)
inline size_t max_size() const
inline pointer data() const
inline shared_vector &set_original_type(ScalarType t)
inline ScalarType original_type() const