111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// <vstring.h> Forward declarations -*- C++ -*- 211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// Copyright (C) 2005-2014 Free Software Foundation, Inc. 411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// 511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// This file is part of the GNU ISO C++ Library. This library is free 611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// software; you can redistribute it and/or modify it under the 711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// terms of the GNU General Public License as published by the 811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// Free Software Foundation; either version 3, or (at your option) 911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// any later version. 1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// This library is distributed in the hope that it will be useful, 1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// but WITHOUT ANY WARRANTY; without even the implied warranty of 1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// GNU General Public License for more details. 1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// Under Section 7 of GPL version 3, you are granted additional 1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// permissions described in the GCC Runtime Library Exception, version 1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// 3.1, as published by the Free Software Foundation. 1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// You should have received a copy of the GNU General Public License and 2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// a copy of the GCC Runtime Library Exception along with this program; 2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// <http://www.gnu.org/licenses/>. 2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/** @file ext/vstring_fwd.h 2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * This is an internal header file, included by other library headers. 2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Do not attempt to use it directly. @headername{ext/vstring.h} 2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert */ 2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _VSTRING_FWD_H 3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _VSTRING_FWD_H 1 3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#pragma GCC system_header 3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <bits/c++config.h> 3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <bits/char_traits.h> 3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <bits/allocator.h> 3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertnamespace __gnu_cxx _GLIBCXX_VISIBILITY(default) 4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_GLIBCXX_BEGIN_NAMESPACE_VERSION 4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert template<typename _CharT, typename _Traits, typename _Alloc> 4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert class __sso_string_base; 4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert template<typename _CharT, typename _Traits, typename _Alloc> 4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert class __rc_string_base; 4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert template<typename _CharT, typename _Traits = std::char_traits<_CharT>, 5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typename _Alloc = std::allocator<_CharT>, 5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert template 5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert <typename, typename, typename> class _Base = __sso_string_base> 5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert class __versa_string; 5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef __versa_string<char> __vstring; 5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef __vstring __sso_string; 5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef 5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __versa_string<char, std::char_traits<char>, 5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert std::allocator<char>, __rc_string_base> __rc_string; 6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef _GLIBCXX_USE_WCHAR_T 6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef __versa_string<wchar_t> __wvstring; 6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef __wvstring __wsso_string; 6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef 6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __versa_string<wchar_t, std::char_traits<wchar_t>, 6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert std::allocator<wchar_t>, __rc_string_base> __wrc_string; 6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if ((__cplusplus >= 201103L) \ 7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert && defined(_GLIBCXX_USE_C99_STDINT_TR1)) 7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef __versa_string<char16_t> __u16vstring; 7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef __u16vstring __u16sso_string; 7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef 7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __versa_string<char16_t, std::char_traits<char16_t>, 7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert std::allocator<char16_t>, __rc_string_base> __u16rc_string; 7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef __versa_string<char32_t> __u32vstring; 7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef __u32vstring __u32sso_string; 8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef 8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __versa_string<char32_t, std::char_traits<char32_t>, 8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert std::allocator<char32_t>, __rc_string_base> __u32rc_string; 8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_GLIBCXX_END_NAMESPACE_VERSION 8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} // namespace 8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif /* _VSTRING_FWD_H */ 90