adding some missing remove_reference in make_stl_allocator and is_simple_allocator
authorMarcelo Juchem <marcelo@fb.com>
Sat, 26 Jan 2013 01:22:57 +0000 (17:22 -0800)
committerJordan DeLong <jdelong@fb.com>
Mon, 4 Feb 2013 17:26:03 +0000 (09:26 -0800)
Summary: adding some missing remove_reference in make_stl_allocator and is_simple_allocator

Test Plan: unit tests

Reviewed By: jon.coens@fb.com

FB internal diff: D689524

folly/StlAllocator.h

index 629d8fece4cb71b5195336e4473e6a3079a3911a..1dd59248703707da65e70ac7dcfa7451b97b82a5 100644 (file)
@@ -190,7 +190,7 @@ class is_simple_allocator {
   typedef typename std::remove_const<
     typename std::remove_reference<Allocator>::type
   >::type allocator;
-  typedef T value_type;
+  typedef typename std::remove_reference<T>::type value_type;
   typedef value_type* pointer;
 
 public:
@@ -201,10 +201,14 @@ public:
 template <typename T, typename Allocator>
 typename std::enable_if<
   is_simple_allocator<T, Allocator>::value,
-  folly::StlAllocator<typename std::remove_reference<Allocator>::type, T>
+  folly::StlAllocator<
+    typename std::remove_reference<Allocator>::type,
+    typename std::remove_reference<T>::type
+  >
 >::type make_stl_allocator(Allocator&& allocator) {
   return folly::StlAllocator<
-    typename std::remove_reference<Allocator>::type, T
+    typename std::remove_reference<Allocator>::type,
+    typename std::remove_reference<T>::type
   >(&allocator);
 }