<HTML>
<HEAD>
<TITLE>&lt;string&gt;</TITLE>
<LINK REL=StyleSheet HREF="../rw.css" TYPE="text/css" TITLE="Apache stdcxx Stylesheet"></HEAD>
<BODY BGCOLOR=#FFFFFF>
<A HREF="streambuf-h.html"><IMG SRC="images/bprev.gif" WIDTH=20 HEIGHT=21 ALT="Previous file" BORDER=O></A><A HREF="noframes.html"><IMG SRC="images/btop.gif" WIDTH=56 HEIGHT=21 ALT="Top of Document" BORDER=O></A><A HREF="booktoc.html"><IMG SRC="images/btoc.gif" WIDTH=56 HEIGHT=21 ALT="Contents" BORDER=O></A><A HREF="tindex.html"><IMG SRC="images/bindex.gif" WIDTH=56 HEIGHT=21 ALT="Index page" BORDER=O></A><A HREF="string.html"><IMG SRC="images/bnext.gif" WIDTH=25 HEIGHT=21 ALT="Next file" BORDER=O></A><DIV CLASS="DOCUMENTNAME"><B>Apache C++ Standard Library Reference Guide</B></DIV>
<H2>&lt;string&gt;</H2>
<P><B>Library:</B>&nbsp;&nbsp;<A HREF="2-5.html">Strings</A></P>

<PRE><HR><B><I>Header</I></B><HR></PRE>

<UL>
<LI><A HREF="#sec1">Local Index</A></LI>
<LI><A HREF="#sec2">Summary</A></LI>
<LI><A HREF="#sec3">Synopsis</A></LI>
<LI><A HREF="#sec4">See Also</A></LI>
<LI><A HREF="#sec5">Standards Conformance</A></LI>
</UL>
<A NAME="sec1"><H3>Local Index</H3></A>
No Entries
<A NAME="sec2"><H3>Summary</H3></A>
<P> The header <SAMP>&lt;string&gt;</SAMP> represents the Strings library of the Standard C++  Library. It defines the following entities:</P>
<UL>
<LI><P CLASS="LIST">the class template <B><I><A HREF="char-traits.html">char_traits</A></I></B>, and the specializations of <B><I>char_traits</I></B> on <SAMP>char</SAMP> and <SAMP>wchar_t</SAMP></P></LI>
<LI><P CLASS="LIST">the class template <B><I><A HREF="basic-string.html">basic_string</A></I></B>, and the types <B><I><A HREF="basic-string.html">string</A></I></B> and <B><I><A HREF="wstring.html">wstring</A></I></B></P></LI>
<LI><P CLASS="LIST">a set of relational operators that C++ programs may use to perform equality and inequality tests on specializations of <B><I><A HREF="basic-string.html">basic_string</A></I></B></P></LI>
<LI><P CLASS="LIST">a number of overloads of the function template <SAMP>operator+()</SAMP> specialized for <B><I><A HREF="basic-string.html">basic_string</A></I></B></P></LI>
<LI><P CLASS="LIST">a specialization of the <SAMP><A HREF="swap.html">swap()</A></SAMP> algorithm for <B><I><A HREF="basic-string.html">basic_string</A></I></B></P></LI>
<LI><P CLASS="LIST">specializations of <SAMP>operator&lt;&lt;()</SAMP> and <SAMP>operator&gt;&gt;()</SAMP> for <B><I><A HREF="basic-string.html">basic_string</A></I></B>, and two overloads of the function template <SAMP>getline()</SAMP> for <B><I>basic_string</I></B></P></LI>
</UL>
<A NAME="sec3"><H3>Synopsis</H3></A>

<PRE>namespace std {
  template&lt;class charT&gt;
  struct <SAMP><A HREF="char-traits.html">char_traits</A></SAMP>;
  template &lt;&gt; struct char_traits&lt;char&gt;;
  template &lt;&gt; struct char_traits&lt;wchar_t&gt;;

  template&lt;class charT, class traits = char_traits&lt;charT&gt;, 
           class Allocator = allocator&lt;charT&gt; &gt;
  class <SAMP><A HREF="basic-string.html">basic_string</A></SAMP>;

  template&lt;class charT, class traits, class Allocator&gt;
  basic_string&lt;charT, traits, Allocator&gt;
  operator+(const basic_string&lt;charT, traits, Allocator&gt;&amp;, 
            const basic_string&lt;charT, traits, Allocator&gt;&amp;);
  
  template&lt;class charT, class traits, class Allocator&gt;
  basic_string&lt;charT, traits, Allocator&gt;
  operator+(const charT*, 
            const basic_string&lt;charT, traits, Allocator&gt;&amp;);
  
  template&lt;class charT, class traits, class Allocator&gt;
  basic_string&lt;charT, traits, Allocator&gt;
  operator+(charT, const basic_string&lt;charT, 
            traits, Allocator&gt;&amp;);
  
  template&lt;class charT, class traits, class Allocator&gt;
  basic_string&lt;charT, traits, Allocator&gt;
  operator+(const basic_string&lt;charT, traits, Allocator&gt;&amp;, 
            const charT*);
  
  template&lt;class charT, class traits, class Allocator&gt;
  basic_string&lt;charT, traits, Allocator&gt;
  operator+(const basic_string&lt;charT, traits, 
            Allocator&gt;&amp;, charT);

  template&lt;class charT, class traits, class Allocator&gt;
  bool operator==(const basic_string&lt;charT, traits,
                                     Allocator&gt;&amp;,
                  const basic_string&lt;charT, traits,
                                     Allocator&gt;&amp;);
  
  template&lt;class charT, class traits, class Allocator&gt;
  bool operator==(const charT*,
                  const basic_string&lt;charT, traits,
                                     Allocator&gt;&amp;);
  
  template&lt;class charT, class traits, class Allocator&gt;
  bool operator==(const basic_string&lt;charT, traits,
                                     Allocator&gt;&amp;,
                  const charT*);
  
  template&lt;class charT, class traits, class Allocator&gt;
  bool operator!=(const basic_string&lt;charT, traits,
                                     Allocator&gt;&amp;,
                  const basic_string&lt;charT, traits,
                                     Allocator&gt;&amp;);
  
  template&lt;class charT, class traits, class Allocator&gt;
  bool operator!=(const charT*, const basic_string&lt;charT,
                  traits, Allocator&gt;&amp;);
  
  template&lt;class charT, class traits, class Allocator&gt;
  bool operator!=(const basic_string&lt;charT, traits,
                                     Allocator&gt;&amp;, 
                  const charT*);

  template&lt;class charT, class traits, class Allocator&gt;
  bool operator&lt;(const basic_string&lt;charT, traits,
                                    Allocator&gt;&amp;, 
                 const basic_string&lt;charT, traits,
                                    Allocator&gt;&amp;);
  
  template&lt;class charT, class traits, class Allocator&gt;
  bool operator&lt;(const basic_string&lt;charT, traits,
                                    Allocator&gt;&amp;, 
                  const charT*);
  
  template&lt;class charT, class traits, class Allocator&gt;
  bool operator&lt;(const charT*, 
                 const basic_string&lt;charT, traits,
                                    Allocator&gt;&amp;);
  
  template&lt;class charT, class traits, class Allocator&gt;
  bool operator&gt;(const basic_string&lt;charT, traits,
                                    Allocator&gt;&amp;, 
                 const basic_string&lt;charT, traits,
                                    Allocator&gt;&amp;);
  
  template&lt;class charT, class traits, class Allocator&gt;
  bool operator&gt;(const basic_string&lt;charT, traits,
                                    Allocator&gt;&amp;, 
                 const charT*);
  
  template&lt;class charT, class traits, class Allocator&gt;
  bool operator&gt;(const charT*, 
                 const basic_string&lt;charT, traits,
                                    Allocator&gt;&amp;);

  template&lt;class charT, class traits, class Allocator&gt;
  bool operator&lt;=(const basic_string&lt;charT, traits,
                                     Allocator&gt;&amp;, 
                  const basic_string&lt;charT, traits,
                                     Allocator&gt;&amp;);
  
  template&lt;class charT, class traits, class Allocator&gt;
  bool operator&lt;=(const basic_string&lt;charT, traits,
                                     Allocator&gt;&amp;,
                  const charT*);
  
  template&lt;class charT, class traits, class Allocator&gt;
  bool operator&lt;=(const charT*, 
                  const basic_string&lt;charT, traits,
                                     Allocator&gt;&amp;);
  
  template&lt;class charT, class traits, class Allocator&gt;
  bool operator&gt;=(const basic_string&lt;charT, traits,
                                     Allocator&gt;&amp;,
                  const basic_string&lt;charT, traits,
                                     Allocator&gt;&amp;);
  
  template&lt;class charT, class traits, class Allocator&gt;
  bool operator&gt;=(const basic_string&lt;charT, traits,
                                     Allocator&gt;&amp;, 
                  const charT*);
  
  template&lt;class charT, class traits, class Allocator&gt;
  bool operator&gt;=(const charT*, 
                 const basic_string&lt;charT, traits,
                                    Allocator&gt;&amp;);

  template&lt;class charT, class traits, class Allocator&gt;
  void <SAMP><A HREF="swap.html">swap</A></SAMP>(basic_string&lt;charT, traits, Allocator&gt;&amp;, 
            basic_string&lt;charT, traits, Allocator&gt;&amp;);

  template&lt;class charT, class traits, class Allocator&gt;
  basic_istream&lt;charT, traits&gt;&amp;
  operator&gt;&gt;(basic_istream&lt;charT, traits&gt;&amp;, 
             basic_string&lt;charT, traits, Allocator&gt;&amp; );
  
  template&lt;class charT, class traits, class Allocator&gt;
  basic_ostream&lt;charT, traits&gt;&amp;
  operator&lt;&lt;(basic_ostream&lt;charT, traits&gt;&amp;, 
             const basic_string&lt;charT, traits, Allocator&gt;&amp;);
  
  template&lt;class charT, class traits, class Allocator&gt;
  basic_istream&lt;charT, traits&gt;&amp;
  getline(basic_istream&lt;charT, traits&gt;&amp;, 
          basic_string&lt;charT, traits, Allocator&gt;&amp;, charT);
  
  template&lt;class charT, class traits, class Allocator&gt;
  basic_istream&lt;charT, traits&gt;&amp;
  getline(basic_istream&lt;charT, traits&gt;&amp;, 
          basic_string&lt;charT, traits, Allocator&gt;&amp;);

  typedef basic_string&lt;char&gt; string;
  typedef basic_string&lt;wchar_t&gt; wstring;
}
</PRE>
<A NAME="sec4"><H3>See Also</H3></A>
<P><A HREF="sequences.html">Sequences</A>, <B><I><A HREF="char-traits.html">char_traits</A></I></B>, <B><I><A HREF="basic-string.html">basic_string</A></I></B></P>
<A NAME="sec5"><H3>Standards Conformance</H3></A>
<P><I>ISO/IEC 14882:1998 -- International Standard for Information Systems --Programming Language C++, Section 21.2</I></P>

<BR>
<HR>
<A HREF="streambuf-h.html"><IMG SRC="images/bprev.gif" WIDTH=20 HEIGHT=21 ALT="Previous file" BORDER=O></A><A HREF="noframes.html"><IMG SRC="images/btop.gif" WIDTH=56 HEIGHT=21 ALT="Top of Document" BORDER=O></A><A HREF="booktoc.html"><IMG SRC="images/btoc.gif" WIDTH=56 HEIGHT=21 ALT="Contents" BORDER=O></A><A HREF="tindex.html"><IMG SRC="images/bindex.gif" WIDTH=56 HEIGHT=21 ALT="Index page" BORDER=O></A><A HREF="string.html"><IMG SRC="images/bnext.gif" WIDTH=20 HEIGHT=21 ALT="Next file" BORDER=O></A>

<!-- Google Analytics tracking code -->
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
    _uacct = "UA-1775151-1";
    urchinTracker();
</script>
<!-- end of Google Analytics tracking code -->

</BODY>
</HTML>
