Imported Upstream version 4.8.1
[platform/upstream/gcc48.git] / libstdc++-v3 / include / ext / malloc_allocator.h
index 4900723..9f0934e 100644 (file)
@@ -1,8 +1,6 @@
 // Allocator that wraps "C" malloc -*- C++ -*-
 
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-// 2010, 2011
-// Free Software Foundation, Inc.
+// Copyright (C) 2001-2013 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -35,6 +33,9 @@
 #include <new>
 #include <bits/functexcept.h>
 #include <bits/move.h>
+#if __cplusplus >= 201103L
+#include <type_traits>
+#endif
 
 namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
 {
@@ -67,6 +68,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
         struct rebind
         { typedef malloc_allocator<_Tp1> other; };
 
+#if __cplusplus >= 201103L
+      // _GLIBCXX_RESOLVE_LIB_DEFECTS
+      // 2103. propagate_on_container_move_assignment
+      typedef std::true_type propagate_on_container_move_assignment;
+#endif
+
       malloc_allocator() _GLIBCXX_USE_NOEXCEPT { }
 
       malloc_allocator(const malloc_allocator&) _GLIBCXX_USE_NOEXCEPT { }
@@ -108,7 +115,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       max_size() const _GLIBCXX_USE_NOEXCEPT 
       { return size_t(-1) / sizeof(_Tp); }
 
-#ifdef __GXX_EXPERIMENTAL_CXX0X__
+#if __cplusplus >= 201103L
       template<typename _Up, typename... _Args>
         void
         construct(_Up* __p, _Args&&... __args)