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 ( ) {