// 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
#include <new>
#include <bits/functexcept.h>
#include <bits/move.h>
+#if __cplusplus >= 201103L
+#include <type_traits>
+#endif
namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
{
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 { }
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)