1 // Base to std::allocator -*- C++ -*- 2 3 // Copyright (C) 2004-2014 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 36 namespace 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