-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Arjun Comar
committed
Aug 4, 2011
1 parent
b39569a
commit 4f0f3da
Showing
117 changed files
with
70,177 additions
and
41 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
// <algorithm> -*- C++ -*- | ||
|
||
// Copyright (C) 2001, 2002 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 | ||
// terms of the GNU General Public License as published by the | ||
// Free Software Foundation; either version 2, or (at your option) | ||
// any later version. | ||
|
||
// This library is distributed in the hope that it will be useful, | ||
// but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
// GNU General Public License for more details. | ||
|
||
// You should have received a copy of the GNU General Public License along | ||
// with this library; see the file COPYING. If not, write to the Free | ||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, | ||
// USA. | ||
|
||
// As a special exception, you may use this file as part of a free software | ||
// library without restriction. Specifically, if other files instantiate | ||
// templates or use macros or inline functions from this file, or you compile | ||
// this file and link it with other files to produce an executable, this | ||
// file does not by itself cause the resulting executable to be covered by | ||
// the GNU General Public License. This exception does not however | ||
// invalidate any other reasons why the executable file might be covered by | ||
// the GNU General Public License. | ||
|
||
/* | ||
* | ||
* Copyright (c) 1994 | ||
* Hewlett-Packard Company | ||
* | ||
* Permission to use, copy, modify, distribute and sell this software | ||
* and its documentation for any purpose is hereby granted without fee, | ||
* provided that the above copyright notice appear in all copies and | ||
* that both that copyright notice and this permission notice appear | ||
* in supporting documentation. Hewlett-Packard Company makes no | ||
* representations about the suitability of this software for any | ||
* purpose. It is provided "as is" without express or implied warranty. | ||
* | ||
* | ||
* Copyright (c) 1996,1997 | ||
* Silicon Graphics Computer Systems, Inc. | ||
* | ||
* Permission to use, copy, modify, distribute and sell this software | ||
* and its documentation for any purpose is hereby granted without fee, | ||
* provided that the above copyright notice appear in all copies and | ||
* that both that copyright notice and this permission notice appear | ||
* in supporting documentation. Silicon Graphics makes no | ||
* representations about the suitability of this software for any | ||
* purpose. It is provided "as is" without express or implied warranty. | ||
*/ | ||
|
||
/** @file include/algorithm | ||
* This is a Standard C++ Library header. | ||
*/ | ||
|
||
#ifndef _GLIBCXX_ALGORITHM | ||
#define _GLIBCXX_ALGORITHM 1 | ||
|
||
#pragma GCC system_header | ||
|
||
#include <bits/stl_algobase.h> | ||
#include <bits/stl_construct.h> | ||
#include <bits/stl_uninitialized.h> | ||
#include <bits/stl_algo.h> | ||
|
||
#endif /* _GLIBCXX_ALGORITHM */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,163 @@ | ||
// Allocators -*- C++ -*- | ||
|
||
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 | ||
// 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 | ||
// terms of the GNU General Public License as published by the | ||
// Free Software Foundation; either version 2, or (at your option) | ||
// any later version. | ||
|
||
// This library is distributed in the hope that it will be useful, | ||
// but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
// GNU General Public License for more details. | ||
|
||
// You should have received a copy of the GNU General Public License along | ||
// with this library; see the file COPYING. If not, write to the Free | ||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, | ||
// USA. | ||
|
||
// As a special exception, you may use this file as part of a free software | ||
// library without restriction. Specifically, if other files instantiate | ||
// templates or use macros or inline functions from this file, or you compile | ||
// this file and link it with other files to produce an executable, this | ||
// file does not by itself cause the resulting executable to be covered by | ||
// the GNU General Public License. This exception does not however | ||
// invalidate any other reasons why the executable file might be covered by | ||
// the GNU General Public License. | ||
|
||
/* | ||
* Copyright (c) 1996-1997 | ||
* Silicon Graphics Computer Systems, Inc. | ||
* | ||
* Permission to use, copy, modify, distribute and sell this software | ||
* and its documentation for any purpose is hereby granted without fee, | ||
* provided that the above copyright notice appear in all copies and | ||
* that both that copyright notice and this permission notice appear | ||
* in supporting documentation. Silicon Graphics makes no | ||
* representations about the suitability of this software for any | ||
* purpose. It is provided "as is" without express or implied warranty. | ||
*/ | ||
|
||
/** @file allocator.h | ||
* This is an internal header file, included by other library headers. | ||
* You should not attempt to use it directly. | ||
*/ | ||
|
||
#ifndef _ALLOCATOR_H | ||
#define _ALLOCATOR_H 1 | ||
|
||
// Define the base class to std::allocator. | ||
#include <bits/c++allocator.h> | ||
|
||
#include <bits/cpp_type_traits.h> // for __is_empty | ||
|
||
namespace std { | ||
|
||
template<typename _Tp> | ||
class allocator; | ||
|
||
/// allocator<void> specialization. | ||
template<> | ||
class allocator<void> | ||
{ | ||
public: | ||
typedef size_t size_type; | ||
typedef ptrdiff_t difference_type; | ||
typedef void* pointer; | ||
typedef const void* const_pointer; | ||
typedef void value_type; | ||
|
||
template<typename _Tp1> | ||
struct rebind | ||
{ typedef allocator<_Tp1> other; }; | ||
}; | ||
|
||
/** | ||
* @brief The "standard" allocator, as per [20.4]. | ||
* | ||
* Further details: | ||
* http://gcc.gnu.org/onlinedocs/libstdc++/20_util/allocator.html | ||
*/ | ||
template<typename _Tp> | ||
class allocator: public __glibcxx_base_allocator<_Tp> | ||
{ | ||
public: | ||
typedef size_t size_type; | ||
typedef ptrdiff_t difference_type; | ||
typedef _Tp* pointer; | ||
typedef const _Tp* const_pointer; | ||
typedef _Tp& reference; | ||
typedef const _Tp& const_reference; | ||
typedef _Tp value_type; | ||
|
||
template<typename _Tp1> | ||
struct rebind | ||
{ typedef allocator<_Tp1> other; }; | ||
|
||
allocator() throw() { } | ||
|
||
allocator(const allocator& __a) throw() | ||
: __glibcxx_base_allocator<_Tp>(__a) { } | ||
|
||
template<typename _Tp1> | ||
allocator(const allocator<_Tp1>&) throw() { } | ||
|
||
~allocator() throw() { } | ||
|
||
// Inherit everything else. | ||
}; | ||
|
||
template<typename _T1, typename _T2> | ||
inline bool | ||
operator==(const allocator<_T1>&, const allocator<_T2>&) | ||
{ return true; } | ||
|
||
template<typename _Tp> | ||
inline bool | ||
operator==(const allocator<_Tp>&, const allocator<_Tp>&) | ||
{ return true; } | ||
|
||
template<typename _T1, typename _T2> | ||
inline bool | ||
operator!=(const allocator<_T1>&, const allocator<_T2>&) | ||
{ return false; } | ||
|
||
template<typename _Tp> | ||
inline bool | ||
operator!=(const allocator<_Tp>&, const allocator<_Tp>&) | ||
{ return false; } | ||
|
||
// Inhibit implicit instantiations for required instantiations, | ||
// which are defined via explicit instantiations elsewhere. | ||
// NB: This syntax is a GNU extension. | ||
#if _GLIBCXX_EXTERN_TEMPLATE | ||
extern template class allocator<char>; | ||
extern template class allocator<wchar_t>; | ||
#endif | ||
|
||
// Undefine. | ||
#undef __glibcxx_base_allocator | ||
|
||
// To implement Option 3 of DR 431. | ||
template<typename _Alloc, bool = std::__is_empty<_Alloc>::__value> | ||
struct __alloc_swap | ||
{ static void _S_do_it(_Alloc&, _Alloc&) { } }; | ||
|
||
template<typename _Alloc> | ||
struct __alloc_swap<_Alloc, false> | ||
{ | ||
static void | ||
_S_do_it(_Alloc& __one, _Alloc& __two) | ||
{ | ||
// Precondition: swappable allocators. | ||
if (__one != __two) | ||
swap(__one, __two); | ||
} | ||
}; | ||
|
||
} // namespace std | ||
|
||
#endif |
Oops, something went wrong.