1// Base to std::allocator -*- C++ -*- 2 3// Copyright (C) 2004-2013 Free Software Foundation, Inc. 4// 5// This file is part of the GNU ISO C++ Library. This library is free 6// software; you can redistribute it and/or modify it under the 7// terms of the GNU General Public License as published by the 8// Free Software Foundation; either version 3, or (at your option) 9// any later version. 10 11// This library is distributed in the hope that it will be useful, 12// but WITHOUT ANY WARRANTY; without even the implied warranty of 13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14// GNU General Public License for more details. 15 16// Under Section 7 of GPL version 3, you are granted additional 17// permissions described in the GCC Runtime Library Exception, version 18// 3.1, as published by the Free Software Foundation. 19 20// You should have received a copy of the GNU General Public License and 21// a copy of the GCC Runtime Library Exception along with this program; 22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 23// <http://www.gnu.org/licenses/>. 24 25/** @file bits/c++allocator.h 26 * This is an internal header file, included by other library headers. 27 * Do not attempt to use it directly. @headername{memory} 28 */ 29 30#ifndef _GLIBCXX_CXX_ALLOCATOR_H 31#define _GLIBCXX_CXX_ALLOCATOR_H 1 32 33#include <ext/new_allocator.h> 34 35#if __cplusplus >= 201103L 36namespace std 37{ 38 /** 39 * @brief An alias to the base class for std::allocator. 40 * @ingroup allocators 41 * 42 * Used to set the std::allocator base class to 43 * __gnu_cxx::new_allocator. 44 * 45 * @tparam _Tp Type of allocated object. 46 */ 47 template<typename _Tp> 48 using __allocator_base = __gnu_cxx::new_allocator<_Tp>; 49} 50#else 51// Define new_allocator as the base class to std::allocator. 52# define __allocator_base __gnu_cxx::new_allocator 53#endif 54 55#endif 56