From 15d8d12da060c4aab95c8f00996a58b0f16c9742 Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Wed, 11 Jul 2018 23:01:08 +0200
Subject: [PATCH] continue on tuning ptr_vector

---
 alib2std/src/extensions/ptr_vector.hpp | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/alib2std/src/extensions/ptr_vector.hpp b/alib2std/src/extensions/ptr_vector.hpp
index d08a994c5e..409151bf00 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 ( ) {
-- 
GitLab