diff --git a/alib2std/src/extensions/ptr_vector.hpp b/alib2std/src/extensions/ptr_vector.hpp index d08a994c5ea32b09f6192bae585b270047045119..409151bf001ea16020eb1eb3908a35d92466f032 100644 --- a/alib2std/src/extensions/ptr_vector.hpp +++ b/alib2std/src/extensions/ptr_vector.hpp @@ -34,7 +34,7 @@ public: using reference = value_type &; using const_reference = const value_type &; using pointer = T *; - using const_pointer = T * const; + using const_pointer = const T *; using iterator = dereferencing_iterator < typename std::vector < T * >::iterator >; using const_iterator = dereferencing_iterator < typename std::vector < T * >::const_iterator >; @@ -50,8 +50,9 @@ public: insert ( cbegin ( ), std::move ( init ) ); } + template < class R > explicit ptr_vector ( size_type count ) { - resize ( count ); + resize < R > ( count ); } template < class InputIt > @@ -294,9 +295,9 @@ public: insert ( cend ( ), std::forward < R > ( value ) ); } - template < class ... Args > + template < class R = T, class ... Args > reference emplace_back ( Args && ... args ) { - return * emplace ( cend ( ), std::forward < Args > ( args ) ... ); + return * emplace < R > ( cend ( ), std::forward < Args > ( args ) ... ); } void pop_back ( ) {