atomicfwd_cxx.h

Go to the documentation of this file.
00001 // -*- C++ -*- header.
00002 
00003 // Copyright (C) 2008, 2009
00004 // Free Software Foundation, Inc.
00005 //
00006 // This file is part of the GNU ISO C++ Library.  This library is free
00007 // software; you can redistribute it and/or modify it under the
00008 // terms of the GNU General Public License as published by the
00009 // Free Software Foundation; either version 3, or (at your option)
00010 // any later version.
00011 
00012 // This library is distributed in the hope that it will be useful,
00013 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00014 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015 // GNU General Public License for more details.
00016 
00017 // Under Section 7 of GPL version 3, you are granted additional
00018 // permissions described in the GCC Runtime Library Exception, version
00019 // 3.1, as published by the Free Software Foundation.
00020 
00021 // You should have received a copy of the GNU General Public License and
00022 // a copy of the GCC Runtime Library Exception along with this program;
00023 // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
00024 // <http://www.gnu.org/licenses/>.
00025 
00026 /** @file bits/atomicfwd_cxx.h
00027  *  This is an internal header file, included by other library headers.
00028  *  You should not attempt to use it directly.
00029  */
00030 
00031 // "C++" only bits.
00032 
00033 #define _ATOMIC_MEMBER_ _M_i
00034 
00035 _GLIBCXX_END_EXTERN_C
00036 
00037   namespace __atomic0
00038   {
00039     template<typename _IntTp>
00040       struct __atomic_base;
00041 
00042     struct atomic_flag;
00043     struct atomic_address;
00044     struct atomic_bool;
00045   } 
00046 
00047   namespace __atomic2
00048   {
00049     template<typename _IntTp>
00050       struct __atomic_base;
00051 
00052     struct atomic_flag;
00053     struct atomic_address;
00054     struct atomic_bool;
00055   } 
00056 
00057   namespace __atomic1
00058   {
00059     using __atomic2::atomic_flag;
00060     using __atomic2::atomic_bool;
00061     using __atomic0::atomic_address;
00062     using __atomic0::__atomic_base;
00063   } 
00064 
00065   /// atomic_char
00066   typedef __atomic_base<char>               atomic_char;
00067 
00068   /// atomic_schar
00069   typedef __atomic_base<signed char>            atomic_schar;
00070 
00071   /// atomic_uchar
00072   typedef __atomic_base<unsigned char>      atomic_uchar;
00073 
00074   /// atomic_short
00075   typedef __atomic_base<short>          atomic_short;
00076 
00077   /// atomic_ushort
00078   typedef __atomic_base<unsigned short>     atomic_ushort;
00079 
00080   /// atomic_int
00081   typedef __atomic_base<int>                atomic_int;
00082 
00083   /// atomic_uint
00084   typedef __atomic_base<unsigned int>           atomic_uint;
00085 
00086   /// atomic_long
00087   typedef __atomic_base<long>               atomic_long;
00088 
00089   /// atomic_ulong
00090   typedef __atomic_base<unsigned long>      atomic_ulong;
00091 
00092   /// atomic_llong
00093   typedef __atomic_base<long long>          atomic_llong;
00094 
00095   /// atomic_ullong
00096   typedef __atomic_base<unsigned long long>     atomic_ullong;
00097 
00098   /// atomic_wchar_t
00099   typedef __atomic_base<wchar_t>        atomic_wchar_t;
00100 
00101   /// atomic_char16_t
00102   typedef __atomic_base<char16_t>       atomic_char16_t;
00103 
00104   /// atomic_char32_t
00105   typedef __atomic_base<char32_t>       atomic_char32_t;
00106 
00107   template<typename _Tp>
00108     struct atomic;
00109 _GLIBCXX_BEGIN_EXTERN_C

Generated on Thu Jul 23 21:15:57 2009 for libstdc++ by  doxygen 1.5.8