...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::container::small_vector_base
// In header: <boost/container/small_vector.hpp> template<typename T, typename SecondaryAllocator> class small_vector_base : public boost::container::vector< T, small_vector_allocator< SecondaryAllocator > > { public: // construct/copy/destruct small_vector_base & operator=(const small_vector_base &); small_vector_base & operator=(small_vector_base &&); // public member functions void swap(small_vector_base &); };
Clients can pass any small_vector<Foo, N>. void read_any_small_vector_of_foo(const small_vector_base<Foo> &in_parameter); void modify_any_small_vector_of_foo(small_vector_base<Foo> &in_out_parameter); void some_function() { small_vector<Foo, 8> myvector; read_any_small_vector_of_foo(myvector); // Reads myvector modify_any_small_vector_of_foo(myvector); // Modifies myvector }
All `boost::container:vector` member functions are inherited. See `vector` documentation for details.
small_vector_base
public
construct/copy/destructsmall_vector_base & operator=(const small_vector_base & other);
small_vector_base & operator=(small_vector_base && other);