]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/include/tr1/memory
boost_shared_ptr.h: Add support for allocators, aliasing, make_shared and rvalue...
[thirdparty/gcc.git] / libstdc++-v3 / include / tr1 / memory
CommitLineData
7dfded91
JW
1// <tr1/memory> -*- C++ -*-
2
41e56bf7 3// Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
7dfded91
JW
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 2, 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// You should have received a copy of the GNU General Public License along
17// with this library; see the file COPYING. If not, write to the Free
83f51799 18// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
7dfded91
JW
19// USA.
20
21// As a special exception, you may use this file as part of a free software
22// library without restriction. Specifically, if other files instantiate
23// templates or use macros or inline functions from this file, or you compile
24// this file and link it with other files to produce an executable, this
25// file does not by itself cause the resulting executable to be covered by
26// the GNU General Public License. This exception does not however
27// invalidate any other reasons why the executable file might be covered by
28// the GNU General Public License.
29
78a53887 30/**
143c27b0 31 * @file tr1/memory
78a53887
BK
32 * This is a TR1 C++ Library header.
33 */
34
e133ace8
PC
35#ifndef _GLIBCXX_TR1_MEMORY
36#define _GLIBCXX_TR1_MEMORY 1
7dfded91 37
e133ace8
PC
38#pragma GCC system_header
39
40#if defined(_GLIBCXX_INCLUDE_AS_CXX0X)
41# error TR1 header cannot be included from C++0x header
42#endif
43
44#include <memory>
af13a7a6 45#include <exception> // std::exception
af13a7a6 46#include <typeinfo> // std::type_info in get_deleter
41e56bf7 47#include <bits/stl_algobase.h> // std::swap
af13a7a6 48#include <iosfwd> // std::basic_ostream
2e362c74
BK
49#include <ext/atomicity.h>
50#include <ext/concurrence.h>
7dfded91 51#include <bits/functexcept.h>
af13a7a6 52#include <bits/stl_function.h> // std::less
7dfded91 53#include <debug/debug.h>
e133ace8 54#include <tr1/type_traits>
7dfded91 55
e133ace8 56#if defined(_GLIBCXX_INCLUDE_AS_TR1)
aaf0ca6f
JW
57# include <tr1_impl/boost_sp_counted_base.h>
58# include <tr1/boost_sp_shared_count.h>
e133ace8
PC
59# include <tr1_impl/boost_shared_ptr.h>
60#else
61# define _GLIBCXX_INCLUDE_AS_TR1
62# define _GLIBCXX_BEGIN_NAMESPACE_TR1 namespace tr1 {
63# define _GLIBCXX_END_NAMESPACE_TR1 }
64# define _GLIBCXX_TR1 tr1::
aaf0ca6f
JW
65# include <tr1_impl/boost_sp_counted_base.h>
66# include <tr1/boost_sp_shared_count.h>
e133ace8
PC
67# include <tr1_impl/boost_shared_ptr.h>
68# undef _GLIBCXX_TR1
69# undef _GLIBCXX_END_NAMESPACE_TR1
70# undef _GLIBCXX_BEGIN_NAMESPACE_TR1
71# undef _GLIBCXX_INCLUDE_AS_TR1
7dfded91 72#endif
e133ace8
PC
73
74#endif // _GLIBCXX_TR1_MEMORY