1*404b540aSrobert // Versatile string forward -*- C++ -*- 2*404b540aSrobert 3*404b540aSrobert // Copyright (C) 2005 Free Software Foundation, Inc. 4*404b540aSrobert // 5*404b540aSrobert // This file is part of the GNU ISO C++ Library. This library is free 6*404b540aSrobert // software; you can redistribute it and/or modify it under the 7*404b540aSrobert // terms of the GNU General Public License as published by the 8*404b540aSrobert // Free Software Foundation; either version 2, or (at your option) 9*404b540aSrobert // any later version. 10*404b540aSrobert 11*404b540aSrobert // This library is distributed in the hope that it will be useful, 12*404b540aSrobert // but WITHOUT ANY WARRANTY; without even the implied warranty of 13*404b540aSrobert // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14*404b540aSrobert // GNU General Public License for more details. 15*404b540aSrobert 16*404b540aSrobert // You should have received a copy of the GNU General Public License along 17*404b540aSrobert // with this library; see the file COPYING. If not, write to the Free 18*404b540aSrobert // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 19*404b540aSrobert // USA. 20*404b540aSrobert 21*404b540aSrobert // As a special exception, you may use this file as part of a free software 22*404b540aSrobert // library without restriction. Specifically, if other files instantiate 23*404b540aSrobert // templates or use macros or inline functions from this file, or you compile 24*404b540aSrobert // this file and link it with other files to produce an executable, this 25*404b540aSrobert // file does not by itself cause the resulting executable to be covered by 26*404b540aSrobert // the GNU General Public License. This exception does not however 27*404b540aSrobert // invalidate any other reasons why the executable file might be covered by 28*404b540aSrobert // the GNU General Public License. 29*404b540aSrobert 30*404b540aSrobert /** @file ext/vstring_fwd.h 31*404b540aSrobert * This file is a GNU extension to the Standard C++ Library. 32*404b540aSrobert * This is an internal header file, included by other library headers. 33*404b540aSrobert * You should not attempt to use it directly. 34*404b540aSrobert */ 35*404b540aSrobert 36*404b540aSrobert #ifndef _VSTRING_FWD_H 37*404b540aSrobert #define _VSTRING_FWD_H 1 38*404b540aSrobert 39*404b540aSrobert #pragma GCC system_header 40*404b540aSrobert 41*404b540aSrobert #include <bits/c++config.h> 42*404b540aSrobert #include <bits/char_traits.h> 43*404b540aSrobert #include <memory> // For allocator. 44*404b540aSrobert 45*404b540aSrobert _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) 46*404b540aSrobert 47*404b540aSrobert template<typename _CharT, typename _Traits, typename _Alloc> 48*404b540aSrobert class __sso_string_base; 49*404b540aSrobert 50*404b540aSrobert template<typename _CharT, typename _Traits, typename _Alloc> 51*404b540aSrobert class __rc_string_base; 52*404b540aSrobert 53*404b540aSrobert template<typename _CharT, typename _Traits = std::char_traits<_CharT>, 54*404b540aSrobert typename _Alloc = std::allocator<_CharT>, 55*404b540aSrobert template 56*404b540aSrobert <typename, typename, typename> class _Base = __sso_string_base> 57*404b540aSrobert class __versa_string; 58*404b540aSrobert 59*404b540aSrobert typedef __versa_string<char> __vstring; 60*404b540aSrobert typedef __vstring __sso_string; 61*404b540aSrobert typedef 62*404b540aSrobert __versa_string<char, std::char_traits<char>, 63*404b540aSrobert std::allocator<char>, __rc_string_base> __rc_string; 64*404b540aSrobert 65*404b540aSrobert #ifdef _GLIBCXX_USE_WCHAR_T 66*404b540aSrobert typedef __versa_string<wchar_t> __wvstring; 67*404b540aSrobert typedef __wvstring __wsso_string; 68*404b540aSrobert typedef 69*404b540aSrobert __versa_string<wchar_t, std::char_traits<wchar_t>, 70*404b540aSrobert std::allocator<wchar_t>, __rc_string_base> __wrc_string; 71*404b540aSrobert #endif 72*404b540aSrobert 73*404b540aSrobert _GLIBCXX_END_NAMESPACE 74*404b540aSrobert 75*404b540aSrobert #endif /* _VSTRING_FWD_H */ 76