<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.15"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>libstdc++: std::basic_streambuf< _CharT, _Traits > Class Template Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="navtree.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(document).ready(initResizable); /* @license-end */</script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">libstdc++ </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.15 --> </div><!-- top --> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> <div id="nav-sync" class="sync"></div> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(document).ready(function(){initNavTree('a02452.html','');}); /* @license-end */ </script> <div id="doc-content"> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="#pro-methods">Protected Member Functions</a> | <a href="#pro-attribs">Protected Attributes</a> | <a href="#friends">Friends</a> | <a href="a02449.html">List of all members</a> </div> <div class="headertitle"> <div class="title">std::basic_streambuf< _CharT, _Traits > Class Template Reference<div class="ingroups"><a class="el" href="a01470.html">I/O</a></div></div> </div> </div><!--header--> <div class="contents"> <div class="dynheader"> Inheritance diagram for std::basic_streambuf< _CharT, _Traits >:</div> <div class="dyncontent"> <div class="center"><iframe scrolling="no" frameborder="0" src="a02451.svg" width="563" height="314"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe> </div> <center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a> Public Types</h2></td></tr> <tr><td colspan="2"><div class="groupHeader"></div></td></tr> <tr class="memitem:a38ad1721a50a96c7d37d51a3f858a0cf"><td class="memItemLeft" align="right" valign="top">typedef _CharT </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a></td></tr> <tr class="separator:a38ad1721a50a96c7d37d51a3f858a0cf"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab3220592ca0efc72cf87e58cdc696bd6"><td class="memItemLeft" align="right" valign="top">typedef _Traits </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#ab3220592ca0efc72cf87e58cdc696bd6">traits_type</a></td></tr> <tr class="separator:ab3220592ca0efc72cf87e58cdc696bd6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a1c1565d5b66e703de4d9a8aef4957a8b"><td class="memItemLeft" align="right" valign="top">typedef traits_type::int_type </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#a1c1565d5b66e703de4d9a8aef4957a8b">int_type</a></td></tr> <tr class="separator:a1c1565d5b66e703de4d9a8aef4957a8b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5bc758d8b84fa134386d3ab683b880aa"><td class="memItemLeft" align="right" valign="top">typedef traits_type::pos_type </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#a5bc758d8b84fa134386d3ab683b880aa">pos_type</a></td></tr> <tr class="separator:a5bc758d8b84fa134386d3ab683b880aa"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae0d813da6c3d39659299a6e7831ae265"><td class="memItemLeft" align="right" valign="top">typedef traits_type::off_type </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#ae0d813da6c3d39659299a6e7831ae265">off_type</a></td></tr> <tr class="separator:ae0d813da6c3d39659299a6e7831ae265"><td class="memSeparator" colspan="2"> </td></tr> <tr><td colspan="2"><div class="groupHeader"></div></td></tr> <tr class="memitem:a20adcc1bccab9fa3678b34e078e59e8c"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a02452.html">basic_streambuf</a>< <a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a>, <a class="el" href="a02452.html#ab3220592ca0efc72cf87e58cdc696bd6">traits_type</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#a20adcc1bccab9fa3678b34e078e59e8c">__streambuf_type</a></td></tr> <tr class="separator:a20adcc1bccab9fa3678b34e078e59e8c"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr class="memitem:ae09ce37bf4266e600cdc23c7648b7808"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#ae09ce37bf4266e600cdc23c7648b7808">~basic_streambuf</a> ()</td></tr> <tr class="separator:ae09ce37bf4266e600cdc23c7648b7808"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a09508701b27d68740a5473d096437f65"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a05816.html">locale</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#a09508701b27d68740a5473d096437f65">getloc</a> () const</td></tr> <tr class="separator:a09508701b27d68740a5473d096437f65"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a924a684fe2a6844d766e25f4051b705c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a01538.html#a05eef5582eb5de62b76db4916f7adb84">streamsize</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#a924a684fe2a6844d766e25f4051b705c">in_avail</a> ()</td></tr> <tr class="separator:a924a684fe2a6844d766e25f4051b705c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8e7a46a08c85184d8b6ea1e5d87b7736"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a05816.html">locale</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#a8e7a46a08c85184d8b6ea1e5d87b7736">pubimbue</a> (const <a class="el" href="a05816.html">locale</a> &__loc)</td></tr> <tr class="separator:a8e7a46a08c85184d8b6ea1e5d87b7736"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a72d8037e21ad370e3643ff3c865f91f9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02452.html#a1c1565d5b66e703de4d9a8aef4957a8b">int_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#a72d8037e21ad370e3643ff3c865f91f9">sbumpc</a> ()</td></tr> <tr class="separator:a72d8037e21ad370e3643ff3c865f91f9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac773fb2c87cf938fb6eb89c987f8e04e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02452.html#a1c1565d5b66e703de4d9a8aef4957a8b">int_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#ac773fb2c87cf938fb6eb89c987f8e04e">sgetc</a> ()</td></tr> <tr class="separator:ac773fb2c87cf938fb6eb89c987f8e04e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7cfb11ce1eb1a31cf82d7a876c35351b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a01538.html#a05eef5582eb5de62b76db4916f7adb84">streamsize</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#a7cfb11ce1eb1a31cf82d7a876c35351b">sgetn</a> (<a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> *__s, <a class="el" href="a01538.html#a05eef5582eb5de62b76db4916f7adb84">streamsize</a> __n)</td></tr> <tr class="separator:a7cfb11ce1eb1a31cf82d7a876c35351b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6d281db46069df3043b566f10e5397b2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02452.html#a1c1565d5b66e703de4d9a8aef4957a8b">int_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#a6d281db46069df3043b566f10e5397b2">snextc</a> ()</td></tr> <tr class="separator:a6d281db46069df3043b566f10e5397b2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae77ef8a76529317abdc2e6a66336e3ec"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02452.html#a1c1565d5b66e703de4d9a8aef4957a8b">int_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#ae77ef8a76529317abdc2e6a66336e3ec">sputbackc</a> (<a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> __c)</td></tr> <tr class="separator:ae77ef8a76529317abdc2e6a66336e3ec"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af3504dac5b4cd940dbce97ddc5ed0c25"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02452.html#a1c1565d5b66e703de4d9a8aef4957a8b">int_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#af3504dac5b4cd940dbce97ddc5ed0c25">sputc</a> (<a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> __c)</td></tr> <tr class="separator:af3504dac5b4cd940dbce97ddc5ed0c25"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5d2917460a0283e7e2ff51940704ca95"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a01538.html#a05eef5582eb5de62b76db4916f7adb84">streamsize</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#a5d2917460a0283e7e2ff51940704ca95">sputn</a> (const <a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> *__s, <a class="el" href="a01538.html#a05eef5582eb5de62b76db4916f7adb84">streamsize</a> __n)</td></tr> <tr class="separator:a5d2917460a0283e7e2ff51940704ca95"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8d42bd5b22d246f15a8dd0a8614c0e3f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02452.html#a1c1565d5b66e703de4d9a8aef4957a8b">int_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#a8d42bd5b22d246f15a8dd0a8614c0e3f">sungetc</a> ()</td></tr> <tr class="separator:a8d42bd5b22d246f15a8dd0a8614c0e3f"><td class="memSeparator" colspan="2"> </td></tr> <tr><td colspan="2"><div class="groupHeader"></div></td></tr> <tr class="memitem:a51cd8c6721f963f8bf1c5474c628b70a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02452.html">basic_streambuf</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#a51cd8c6721f963f8bf1c5474c628b70a">pubsetbuf</a> (<a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> *__s, <a class="el" href="a01538.html#a05eef5582eb5de62b76db4916f7adb84">streamsize</a> __n)</td></tr> <tr class="separator:a51cd8c6721f963f8bf1c5474c628b70a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abaa4b2714067328ce4b91a503b17fa73"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02452.html#a5bc758d8b84fa134386d3ab683b880aa">pos_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#abaa4b2714067328ce4b91a503b17fa73">pubseekoff</a> (<a class="el" href="a02452.html#ae0d813da6c3d39659299a6e7831ae265">off_type</a> __off, <a class="el" href="a05796.html#ac19bbe98949795f6038952b6c7759a0a">ios_base::seekdir</a> __way, <a class="el" href="a05796.html#aa7e2408680d83e0bac8979774aeecdad">ios_base::openmode</a> __mode=<a class="el" href="a05796.html#a652e2323949eea3d906e1c81bd8ce8f7">ios_base::in</a>|<a class="el" href="a05796.html#a7187e216e5d16ec820ea1791002f85e0">ios_base::out</a>)</td></tr> <tr class="separator:abaa4b2714067328ce4b91a503b17fa73"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3138ab00e52afd7a538cdffa25e21937"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02452.html#a5bc758d8b84fa134386d3ab683b880aa">pos_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#a3138ab00e52afd7a538cdffa25e21937">pubseekpos</a> (<a class="el" href="a02452.html#a5bc758d8b84fa134386d3ab683b880aa">pos_type</a> __sp, <a class="el" href="a05796.html#aa7e2408680d83e0bac8979774aeecdad">ios_base::openmode</a> __mode=<a class="el" href="a05796.html#a652e2323949eea3d906e1c81bd8ce8f7">ios_base::in</a>|<a class="el" href="a05796.html#a7187e216e5d16ec820ea1791002f85e0">ios_base::out</a>)</td></tr> <tr class="separator:a3138ab00e52afd7a538cdffa25e21937"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac81d2dad6dac4c185c31937ee10077ce"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#ac81d2dad6dac4c185c31937ee10077ce">pubsync</a> ()</td></tr> <tr class="separator:ac81d2dad6dac4c185c31937ee10077ce"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a> Protected Member Functions</h2></td></tr> <tr class="memitem:af9ead45743a5b28a57d385ac881493e1"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#af9ead45743a5b28a57d385ac881493e1">basic_streambuf</a> ()</td></tr> <tr class="separator:af9ead45743a5b28a57d385ac881493e1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad4916dc6e01a357dfac36cf0bbda6382"><td class="memItemLeft" align="right" valign="top"><a id="ad4916dc6e01a357dfac36cf0bbda6382"></a>  </td><td class="memItemRight" valign="bottom"><b>basic_streambuf</b> (const <a class="el" href="a02452.html">basic_streambuf</a> &)</td></tr> <tr class="separator:ad4916dc6e01a357dfac36cf0bbda6382"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a08e47bff97f75d3e8ac1030a749d8050"><td class="memItemLeft" align="right" valign="top"><a id="a08e47bff97f75d3e8ac1030a749d8050"></a> void </td><td class="memItemRight" valign="bottom"><b>__safe_gbump</b> (<a class="el" href="a01538.html#a05eef5582eb5de62b76db4916f7adb84">streamsize</a> __n)</td></tr> <tr class="separator:a08e47bff97f75d3e8ac1030a749d8050"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:acf38c5ab3e2b5b2bf91ad67f255e45bf"><td class="memItemLeft" align="right" valign="top"><a id="acf38c5ab3e2b5b2bf91ad67f255e45bf"></a> void </td><td class="memItemRight" valign="bottom"><b>__safe_pbump</b> (<a class="el" href="a01538.html#a05eef5582eb5de62b76db4916f7adb84">streamsize</a> __n)</td></tr> <tr class="separator:acf38c5ab3e2b5b2bf91ad67f255e45bf"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9d130ff289d2617954156378a79dbdc0"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#a9d130ff289d2617954156378a79dbdc0">gbump</a> (int __n)</td></tr> <tr class="separator:a9d130ff289d2617954156378a79dbdc0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:affba476244b59486bd630e26ca375b0f"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#affba476244b59486bd630e26ca375b0f">imbue</a> (const <a class="el" href="a05816.html">locale</a> &__loc __attribute__((__unused__)))</td></tr> <tr class="separator:affba476244b59486bd630e26ca375b0f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad35735bd762ad7966b5562319aa79d9b"><td class="memItemLeft" align="right" valign="top"><a id="ad35735bd762ad7966b5562319aa79d9b"></a> <a class="el" href="a02452.html">basic_streambuf</a> & </td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="a02452.html">basic_streambuf</a> &)</td></tr> <tr class="separator:ad35735bd762ad7966b5562319aa79d9b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4e7aec20e76936e17df779db22877b19"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="a02452.html#a1c1565d5b66e703de4d9a8aef4957a8b">int_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#a4e7aec20e76936e17df779db22877b19">overflow</a> (<a class="el" href="a02452.html#a1c1565d5b66e703de4d9a8aef4957a8b">int_type</a> __c __attribute__((__unused__))=traits_type::eof())</td></tr> <tr class="separator:a4e7aec20e76936e17df779db22877b19"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a164c1056fe7d6d2cf5335c55541b8b52"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="a02452.html#a1c1565d5b66e703de4d9a8aef4957a8b">int_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#a164c1056fe7d6d2cf5335c55541b8b52">pbackfail</a> (<a class="el" href="a02452.html#a1c1565d5b66e703de4d9a8aef4957a8b">int_type</a> __c __attribute__((__unused__))=traits_type::eof())</td></tr> <tr class="separator:a164c1056fe7d6d2cf5335c55541b8b52"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abd017296cfc054910ca7de102e6a6998"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#abd017296cfc054910ca7de102e6a6998">pbump</a> (int __n)</td></tr> <tr class="separator:abd017296cfc054910ca7de102e6a6998"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad6d5177e376efdb0dccf62890eebc9b0"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="a02452.html#a5bc758d8b84fa134386d3ab683b880aa">pos_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#ad6d5177e376efdb0dccf62890eebc9b0">seekoff</a> (<a class="el" href="a02452.html#ae0d813da6c3d39659299a6e7831ae265">off_type</a>, <a class="el" href="a05796.html#ac19bbe98949795f6038952b6c7759a0a">ios_base::seekdir</a>, <a class="el" href="a05796.html#aa7e2408680d83e0bac8979774aeecdad">ios_base::openmode</a>=<a class="el" href="a05796.html#a652e2323949eea3d906e1c81bd8ce8f7">ios_base::in</a>|<a class="el" href="a05796.html#a7187e216e5d16ec820ea1791002f85e0">ios_base::out</a>)</td></tr> <tr class="separator:ad6d5177e376efdb0dccf62890eebc9b0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a008405d586f640e109c7ab7bf424aa39"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="a02452.html#a5bc758d8b84fa134386d3ab683b880aa">pos_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#a008405d586f640e109c7ab7bf424aa39">seekpos</a> (<a class="el" href="a02452.html#a5bc758d8b84fa134386d3ab683b880aa">pos_type</a>, <a class="el" href="a05796.html#aa7e2408680d83e0bac8979774aeecdad">ios_base::openmode</a>=<a class="el" href="a05796.html#a652e2323949eea3d906e1c81bd8ce8f7">ios_base::in</a>|<a class="el" href="a05796.html#a7187e216e5d16ec820ea1791002f85e0">ios_base::out</a>)</td></tr> <tr class="separator:a008405d586f640e109c7ab7bf424aa39"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aad2e731291673229100bde1f24ce828f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="a02452.html">basic_streambuf</a>< <a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a>, _Traits > * </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#aad2e731291673229100bde1f24ce828f">setbuf</a> (<a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> *, <a class="el" href="a01538.html#a05eef5582eb5de62b76db4916f7adb84">streamsize</a>)</td></tr> <tr class="separator:aad2e731291673229100bde1f24ce828f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a38c9b562c20b30bf9d21cf0e4dc90356"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#a38c9b562c20b30bf9d21cf0e4dc90356">setg</a> (<a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> *__gbeg, <a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> *__gnext, <a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> *__gend)</td></tr> <tr class="separator:a38c9b562c20b30bf9d21cf0e4dc90356"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab0f1b49870f87d288a737cd9f8f9ec00"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#ab0f1b49870f87d288a737cd9f8f9ec00">setp</a> (<a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> *__pbeg, <a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> *__pend)</td></tr> <tr class="separator:ab0f1b49870f87d288a737cd9f8f9ec00"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a85e9299b4d91188c1c0070111604ece8"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="a01538.html#a05eef5582eb5de62b76db4916f7adb84">streamsize</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#a85e9299b4d91188c1c0070111604ece8">showmanyc</a> ()</td></tr> <tr class="separator:a85e9299b4d91188c1c0070111604ece8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad0b564d6b3681022f710fcb917a97072"><td class="memItemLeft" align="right" valign="top"><a id="ad0b564d6b3681022f710fcb917a97072"></a> void </td><td class="memItemRight" valign="bottom"><b>swap</b> (<a class="el" href="a02452.html">basic_streambuf</a> &__sb)</td></tr> <tr class="separator:ad0b564d6b3681022f710fcb917a97072"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a407510ac810a42b173f3bd553959bfb5"><td class="memItemLeft" align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#a407510ac810a42b173f3bd553959bfb5">sync</a> ()</td></tr> <tr class="separator:a407510ac810a42b173f3bd553959bfb5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4e0c932f41122eaec83e7008ece5e207"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="a02452.html#a1c1565d5b66e703de4d9a8aef4957a8b">int_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#a4e0c932f41122eaec83e7008ece5e207">uflow</a> ()</td></tr> <tr class="separator:a4e0c932f41122eaec83e7008ece5e207"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aab4011ac7751c858f121b887f124529d"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="a02452.html#a1c1565d5b66e703de4d9a8aef4957a8b">int_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#aab4011ac7751c858f121b887f124529d">underflow</a> ()</td></tr> <tr class="separator:aab4011ac7751c858f121b887f124529d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5eaa7fbc16e49b8105d6387fcbbfad61"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="a01538.html#a05eef5582eb5de62b76db4916f7adb84">streamsize</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#a5eaa7fbc16e49b8105d6387fcbbfad61">xsgetn</a> (<a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> *__s, <a class="el" href="a01538.html#a05eef5582eb5de62b76db4916f7adb84">streamsize</a> __n)</td></tr> <tr class="separator:a5eaa7fbc16e49b8105d6387fcbbfad61"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a23e843afc42e2875d1f2fc945821499a"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="a01538.html#a05eef5582eb5de62b76db4916f7adb84">streamsize</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#a23e843afc42e2875d1f2fc945821499a">xsputn</a> (const <a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> *__s, <a class="el" href="a01538.html#a05eef5582eb5de62b76db4916f7adb84">streamsize</a> __n)</td></tr> <tr class="separator:a23e843afc42e2875d1f2fc945821499a"><td class="memSeparator" colspan="2"> </td></tr> <tr><td colspan="2"><div class="groupHeader"></div></td></tr> <tr class="memitem:aa15c80d916ef8065138eb6bd5b3ae1ef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#aa15c80d916ef8065138eb6bd5b3ae1ef">eback</a> () const</td></tr> <tr class="separator:aa15c80d916ef8065138eb6bd5b3ae1ef"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a344bded2a1c24ffcea69a918e7dc6c6f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#a344bded2a1c24ffcea69a918e7dc6c6f">gptr</a> () const</td></tr> <tr class="separator:a344bded2a1c24ffcea69a918e7dc6c6f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad02de7bae6f055a7b112aeef35a08d9b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#ad02de7bae6f055a7b112aeef35a08d9b">egptr</a> () const</td></tr> <tr class="separator:ad02de7bae6f055a7b112aeef35a08d9b"><td class="memSeparator" colspan="2"> </td></tr> <tr><td colspan="2"><div class="groupHeader"></div></td></tr> <tr class="memitem:a3feb8a3ab9393e19d53e0712af6a27e2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#a3feb8a3ab9393e19d53e0712af6a27e2">pbase</a> () const</td></tr> <tr class="separator:a3feb8a3ab9393e19d53e0712af6a27e2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af485f3989ebaf74cbfc5f8f578f2e63d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#af485f3989ebaf74cbfc5f8f578f2e63d">pptr</a> () const</td></tr> <tr class="separator:af485f3989ebaf74cbfc5f8f578f2e63d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6b3f675c4d60188e1291eca9fc755458"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#a6b3f675c4d60188e1291eca9fc755458">epptr</a> () const</td></tr> <tr class="separator:a6b3f675c4d60188e1291eca9fc755458"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a> Protected Attributes</h2></td></tr> <tr class="memitem:aef4d5a82b6a51fa750fa43d80b4a8564"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a05816.html">locale</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#aef4d5a82b6a51fa750fa43d80b4a8564">_M_buf_locale</a></td></tr> <tr class="separator:aef4d5a82b6a51fa750fa43d80b4a8564"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a08c7afbf0ec4df6f6d8e29a46484197d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#a08c7afbf0ec4df6f6d8e29a46484197d">_M_in_beg</a></td></tr> <tr class="separator:a08c7afbf0ec4df6f6d8e29a46484197d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7b4e50d872ecb80867eaab9e7897b625"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#a7b4e50d872ecb80867eaab9e7897b625">_M_in_cur</a></td></tr> <tr class="separator:a7b4e50d872ecb80867eaab9e7897b625"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:adf0f7b58227c057d018ab6a8b0a123d4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#adf0f7b58227c057d018ab6a8b0a123d4">_M_in_end</a></td></tr> <tr class="separator:adf0f7b58227c057d018ab6a8b0a123d4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a66b958241a34e8b7da6ade8f3434ce61"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#a66b958241a34e8b7da6ade8f3434ce61">_M_out_beg</a></td></tr> <tr class="separator:a66b958241a34e8b7da6ade8f3434ce61"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a83c368ebeed6b39269fd45d38b9a8b53"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#a83c368ebeed6b39269fd45d38b9a8b53">_M_out_cur</a></td></tr> <tr class="separator:a83c368ebeed6b39269fd45d38b9a8b53"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af2973fa34894190ce5885749fa148bbe"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a02452.html#af2973fa34894190ce5885749fa148bbe">_M_out_end</a></td></tr> <tr class="separator:af2973fa34894190ce5885749fa148bbe"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a> Friends</h2></td></tr> <tr class="memitem:ab633dd1f6a49a9f564dde31a67e8b1ee"><td class="memTemplParams" colspan="2"><a id="ab633dd1f6a49a9f564dde31a67e8b1ee"></a> template<bool _IsMove, typename _CharT2 > </td></tr> <tr class="memitem:ab633dd1f6a49a9f564dde31a67e8b1ee"><td class="memTemplItemLeft" align="right" valign="top">__gnu_cxx::__enable_if< __is_char< _CharT2 >::__value, _CharT2 * >::__type </td><td class="memTemplItemRight" valign="bottom"><b>__copy_move_a2</b> (<a class="el" href="a02484.html">istreambuf_iterator</a>< _CharT2 >, <a class="el" href="a02484.html">istreambuf_iterator</a>< _CharT2 >, _CharT2 *)</td></tr> <tr class="separator:ab633dd1f6a49a9f564dde31a67e8b1ee"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abb762ef418660aaacdfde160b55a6b2e"><td class="memItemLeft" align="right" valign="top"><a id="abb762ef418660aaacdfde160b55a6b2e"></a> <a class="el" href="a01538.html#a05eef5582eb5de62b76db4916f7adb84">streamsize</a> </td><td class="memItemRight" valign="bottom"><b>__copy_streambufs_eof</b> (<a class="el" href="a02452.html">basic_streambuf</a> *, <a class="el" href="a02452.html">basic_streambuf</a> *, bool &)</td></tr> <tr class="separator:abb762ef418660aaacdfde160b55a6b2e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a00f94c8b6acae5bbc1e0f29545cf6591"><td class="memTemplParams" colspan="2"><a id="a00f94c8b6acae5bbc1e0f29545cf6591"></a> template<typename _CharT2 , typename _Distance > </td></tr> <tr class="memitem:a00f94c8b6acae5bbc1e0f29545cf6591"><td class="memTemplItemLeft" align="right" valign="top">__gnu_cxx::__enable_if< __is_char< _CharT2 >::__value, void >::__type </td><td class="memTemplItemRight" valign="bottom"><b>advance</b> (<a class="el" href="a02484.html">istreambuf_iterator</a>< _CharT2 > &, _Distance)</td></tr> <tr class="separator:a00f94c8b6acae5bbc1e0f29545cf6591"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a12e09cd22a6cbff67aebd63e55dad3ee"><td class="memItemLeft" align="right" valign="top"><a id="a12e09cd22a6cbff67aebd63e55dad3ee"></a> class </td><td class="memItemRight" valign="bottom"><b>basic_ios< char_type, traits_type ></b></td></tr> <tr class="separator:a12e09cd22a6cbff67aebd63e55dad3ee"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a21edad2ce79435c762031272d6877d63"><td class="memItemLeft" align="right" valign="top"><a id="a21edad2ce79435c762031272d6877d63"></a> class </td><td class="memItemRight" valign="bottom"><b>basic_istream< char_type, traits_type ></b></td></tr> <tr class="separator:a21edad2ce79435c762031272d6877d63"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4887fc11197605c3ef70fa42d1dd633e"><td class="memItemLeft" align="right" valign="top"><a id="a4887fc11197605c3ef70fa42d1dd633e"></a> class </td><td class="memItemRight" valign="bottom"><b>basic_ostream< char_type, traits_type ></b></td></tr> <tr class="separator:a4887fc11197605c3ef70fa42d1dd633e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa7948a3a0acd26fb8139dfe763017b45"><td class="memTemplParams" colspan="2"><a id="aa7948a3a0acd26fb8139dfe763017b45"></a> template<typename _CharT2 > </td></tr> <tr class="memitem:aa7948a3a0acd26fb8139dfe763017b45"><td class="memTemplItemLeft" align="right" valign="top">__gnu_cxx::__enable_if< __is_char< _CharT2 >::__value, <a class="el" href="a02484.html">istreambuf_iterator</a>< _CharT2 > >::__type </td><td class="memTemplItemRight" valign="bottom"><b>find</b> (<a class="el" href="a02484.html">istreambuf_iterator</a>< _CharT2 >, <a class="el" href="a02484.html">istreambuf_iterator</a>< _CharT2 >, const _CharT2 &)</td></tr> <tr class="separator:aa7948a3a0acd26fb8139dfe763017b45"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:acff33fb156a067b31b4eb94659f1d0af"><td class="memTemplParams" colspan="2"><a id="acff33fb156a067b31b4eb94659f1d0af"></a> template<typename _CharT2 , typename _Traits2 , typename _Alloc > </td></tr> <tr class="memitem:acff33fb156a067b31b4eb94659f1d0af"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a02456.html">basic_istream</a>< _CharT2, _Traits2 > & </td><td class="memTemplItemRight" valign="bottom"><b>getline</b> (<a class="el" href="a02456.html">basic_istream</a>< _CharT2, _Traits2 > &, <a class="el" href="a04768.html">basic_string</a>< _CharT2, _Traits2, _Alloc > &, _CharT2)</td></tr> <tr class="separator:acff33fb156a067b31b4eb94659f1d0af"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5e445ab8cd4557229e92a7cf2194b776"><td class="memItemLeft" align="right" valign="top"><a id="a5e445ab8cd4557229e92a7cf2194b776"></a> class </td><td class="memItemRight" valign="bottom"><b>istreambuf_iterator< char_type, traits_type ></b></td></tr> <tr class="separator:a5e445ab8cd4557229e92a7cf2194b776"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abda6cc53bc2442a17c3a4aa873b917f9"><td class="memTemplParams" colspan="2"><a id="abda6cc53bc2442a17c3a4aa873b917f9"></a> template<typename _CharT2 , typename _Traits2 > </td></tr> <tr class="memitem:abda6cc53bc2442a17c3a4aa873b917f9"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a02456.html">basic_istream</a>< _CharT2, _Traits2 > & </td><td class="memTemplItemRight" valign="bottom"><b>operator>></b> (<a class="el" href="a02456.html">basic_istream</a>< _CharT2, _Traits2 > &, _CharT2 *)</td></tr> <tr class="separator:abda6cc53bc2442a17c3a4aa873b917f9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a0710e719075b7906e9664433eb9c8917"><td class="memTemplParams" colspan="2"><a id="a0710e719075b7906e9664433eb9c8917"></a> template<typename _CharT2 , typename _Traits2 , typename _Alloc > </td></tr> <tr class="memitem:a0710e719075b7906e9664433eb9c8917"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a02456.html">basic_istream</a>< _CharT2, _Traits2 > & </td><td class="memTemplItemRight" valign="bottom"><b>operator>></b> (<a class="el" href="a02456.html">basic_istream</a>< _CharT2, _Traits2 > &, <a class="el" href="a04768.html">basic_string</a>< _CharT2, _Traits2, _Alloc > &)</td></tr> <tr class="separator:a0710e719075b7906e9664433eb9c8917"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad274e0163d00ce8c473351e669b053a2"><td class="memItemLeft" align="right" valign="top"><a id="ad274e0163d00ce8c473351e669b053a2"></a> class </td><td class="memItemRight" valign="bottom"><b>ostreambuf_iterator< char_type, traits_type ></b></td></tr> <tr class="separator:ad274e0163d00ce8c473351e669b053a2"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><h3>template<typename _CharT, typename _Traits><br /> class std::basic_streambuf< _CharT, _Traits ></h3> <p>The actual work of input and output (interface). </p> <dl class="tparams"><dt>Template Parameters</dt><dd> <table class="tparams"> <tr><td class="paramname">_CharT</td><td>Type of character stream. </td></tr> <tr><td class="paramname">_Traits</td><td>Traits for character type, defaults to char_traits<_CharT>.</td></tr> </table> </dd> </dl> <p>This is a base class. Derived stream buffers each control a pair of character sequences: one for input, and one for output.</p> <p>Section [27.5.1] of the standard describes the requirements and behavior of stream buffer classes. That section (three paragraphs) is reproduced here, for simplicity and accuracy.</p> <ol type="1"> <li>Stream buffers can impose various constraints on the sequences they control. Some constraints are:<ul> <li>The controlled input sequence can be not readable.</li> <li>The controlled output sequence can be not writable.</li> <li>The controlled sequences can be associated with the contents of other representations for character sequences, such as external files.</li> <li>The controlled sequences can support operations <em>directly</em> to or from associated sequences.</li> <li>The controlled sequences can impose limitations on how the program can read characters from a sequence, write characters to a sequence, put characters back into an input sequence, or alter the stream position.</li> </ul> </li> <li>Each sequence is characterized by three pointers which, if non-null, all point into the same <code>charT</code> array object. The array object represents, at any moment, a (sub)sequence of characters from the sequence. Operations performed on a sequence alter the values stored in these pointers, perform reads and writes directly to or from associated sequences, and alter <em>the stream position</em> and conversion state as needed to maintain this subsequence relationship. The three pointers are:<ul> <li>the <em>beginning pointer</em>, or lowest element address in the array (called <em>xbeg</em> here);</li> <li>the <em>next pointer</em>, or next element address that is a current candidate for reading or writing (called <em>xnext</em> here);</li> <li>the <em>end pointer</em>, or first element address beyond the end of the array (called <em>xend</em> here).</li> </ul> </li> <li>The following semantic constraints shall always apply for any set of three pointers for a sequence, using the pointer names given immediately above:<ul> <li>If <em>xnext</em> is not a null pointer, then <em>xbeg</em> and <em>xend</em> shall also be non-null pointers into the same <code>charT</code> array, as described above; otherwise, <em>xbeg</em> and <em>xend</em> shall also be null.</li> <li>If <em>xnext</em> is not a null pointer and <em>xnext</em> < <em>xend</em> for an output sequence, then a <em>write position</em> is available. In this case, <em>*xnext</em> shall be assignable as the next element to write (to put, or to store a character value, into the sequence).</li> <li>If <em>xnext</em> is not a null pointer and <em>xbeg</em> < <em>xnext</em> for an input sequence, then a <em>putback position</em> is available. In this case, <em>xnext</em>[-1] shall have a defined value and is the next (preceding) element to store a character that is put back into the input sequence.</li> <li>If <em>xnext</em> is not a null pointer and <em>xnext<</em> <em>xend</em> for an input sequence, then a <em>read position</em> is available. In this case, <em>*xnext</em> shall have a defined value and is the next element to read (to get, or to obtain a character value, from the sequence). </li> </ul> </li> </ol> <p class="definition">Definition at line <a class="el" href="a00083_source.html#l00080">80</a> of file <a class="el" href="a00083_source.html">iosfwd</a>.</p> </div><h2 class="groupheader">Member Typedef Documentation</h2> <a id="a20adcc1bccab9fa3678b34e078e59e8c"></a> <h2 class="memtitle"><span class="permalink"><a href="#a20adcc1bccab9fa3678b34e078e59e8c">◆ </a></span>__streambuf_type</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="a02452.html">basic_streambuf</a><<a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a>, <a class="el" href="a02452.html#ab3220592ca0efc72cf87e58cdc696bd6">traits_type</a>> <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::<a class="el" href="a02452.html#a20adcc1bccab9fa3678b34e078e59e8c">__streambuf_type</a></td> </tr> </table> </div><div class="memdoc"> <p>This is a non-standard type. </p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00140">140</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> </div> </div> <a id="a38ad1721a50a96c7d37d51a3f858a0cf"></a> <h2 class="memtitle"><span class="permalink"><a href="#a38ad1721a50a96c7d37d51a3f858a0cf">◆ </a></span>char_type</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="memname"> <tr> <td class="memname">typedef _CharT <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::<a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a></td> </tr> </table> </div><div class="memdoc"> <p>These are standard types. They permit a standardized way of referring to names of (or names dependent on) the template parameters, which are specific to the implementation. </p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00131">131</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> </div> </div> <a id="a1c1565d5b66e703de4d9a8aef4957a8b"></a> <h2 class="memtitle"><span class="permalink"><a href="#a1c1565d5b66e703de4d9a8aef4957a8b">◆ </a></span>int_type</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="memname"> <tr> <td class="memname">typedef traits_type::int_type <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::<a class="el" href="a02452.html#a1c1565d5b66e703de4d9a8aef4957a8b">int_type</a></td> </tr> </table> </div><div class="memdoc"> <p>These are standard types. They permit a standardized way of referring to names of (or names dependent on) the template parameters, which are specific to the implementation. </p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00133">133</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> </div> </div> <a id="ae0d813da6c3d39659299a6e7831ae265"></a> <h2 class="memtitle"><span class="permalink"><a href="#ae0d813da6c3d39659299a6e7831ae265">◆ </a></span>off_type</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="memname"> <tr> <td class="memname">typedef traits_type::off_type <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::<a class="el" href="a02452.html#ae0d813da6c3d39659299a6e7831ae265">off_type</a></td> </tr> </table> </div><div class="memdoc"> <p>These are standard types. They permit a standardized way of referring to names of (or names dependent on) the template parameters, which are specific to the implementation. </p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00135">135</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> </div> </div> <a id="a5bc758d8b84fa134386d3ab683b880aa"></a> <h2 class="memtitle"><span class="permalink"><a href="#a5bc758d8b84fa134386d3ab683b880aa">◆ </a></span>pos_type</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="memname"> <tr> <td class="memname">typedef traits_type::pos_type <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::<a class="el" href="a02452.html#a5bc758d8b84fa134386d3ab683b880aa">pos_type</a></td> </tr> </table> </div><div class="memdoc"> <p>These are standard types. They permit a standardized way of referring to names of (or names dependent on) the template parameters, which are specific to the implementation. </p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00134">134</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> </div> </div> <a id="ab3220592ca0efc72cf87e58cdc696bd6"></a> <h2 class="memtitle"><span class="permalink"><a href="#ab3220592ca0efc72cf87e58cdc696bd6">◆ </a></span>traits_type</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="memname"> <tr> <td class="memname">typedef _Traits <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::<a class="el" href="a02452.html#ab3220592ca0efc72cf87e58cdc696bd6">traits_type</a></td> </tr> </table> </div><div class="memdoc"> <p>These are standard types. They permit a standardized way of referring to names of (or names dependent on) the template parameters, which are specific to the implementation. </p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00132">132</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> </div> </div> <h2 class="groupheader">Constructor & Destructor Documentation</h2> <a id="ae09ce37bf4266e600cdc23c7648b7808"></a> <h2 class="memtitle"><span class="permalink"><a href="#ae09ce37bf4266e600cdc23c7648b7808">◆ </a></span>~basic_streambuf()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::~<a class="el" href="a02452.html">basic_streambuf</a> </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Destructor deallocates no buffer space. </p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00204">204</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> </div> </div> <a id="af9ead45743a5b28a57d385ac881493e1"></a> <h2 class="memtitle"><span class="permalink"><a href="#af9ead45743a5b28a57d385ac881493e1">◆ </a></span>basic_streambuf()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::<a class="el" href="a02452.html">basic_streambuf</a> </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Base constructor. </p> <p>Only called from derived constructors, and sets up all the buffer data to zero, including the pointers described in the basic_streambuf class description. Note that, as a result,</p><ul> <li>the class starts with no read nor write positions available,</li> <li>this is not an error </li> </ul> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00470">470</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> </div> </div> <h2 class="groupheader">Member Function Documentation</h2> <a id="aa15c80d916ef8065138eb6bd5b3ae1ef"></a> <h2 class="memtitle"><span class="permalink"><a href="#aa15c80d916ef8065138eb6bd5b3ae1ef">◆ </a></span>eback()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a>* <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::eback </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Access to the get area. </p> <p>These functions are only available to other protected functions, including derived classes.</p> <ul> <li>eback() returns the beginning pointer for the input sequence</li> <li>gptr() returns the next pointer for the input sequence</li> <li>egptr() returns the end pointer for the input sequence </li> </ul> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00489">489</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> <p class="reference">Referenced by <a class="el" href="a00149_source.html#l00379">std::basic_streambuf< _Elem, _Tr >::sputbackc()</a>, and <a class="el" href="a00149_source.html#l00404">std::basic_streambuf< _Elem, _Tr >::sungetc()</a>.</p> </div> </div> <a id="ad02de7bae6f055a7b112aeef35a08d9b"></a> <h2 class="memtitle"><span class="permalink"><a href="#ad02de7bae6f055a7b112aeef35a08d9b">◆ </a></span>egptr()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a>* <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::egptr </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Access to the get area. </p> <p>These functions are only available to other protected functions, including derived classes.</p> <ul> <li>eback() returns the beginning pointer for the input sequence</li> <li>gptr() returns the next pointer for the input sequence</li> <li>egptr() returns the end pointer for the input sequence </li> </ul> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00495">495</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> <p class="reference">Referenced by <a class="el" href="a00068_source.html#l00199">std::basic_filebuf< char_type, traits_type >::_M_create_pback()</a>, <a class="el" href="a00149_source.html#l00291">std::basic_streambuf< _Elem, _Tr >::in_avail()</a>, <a class="el" href="a00149_source.html#l00323">std::basic_streambuf< _Elem, _Tr >::sbumpc()</a>, <a class="el" href="a00149_source.html#l00345">std::basic_streambuf< _Elem, _Tr >::sgetc()</a>, <a class="el" href="a00140_source.html#l00212">std::basic_stringbuf< _CharT, _Traits, _Alloc >::showmanyc()</a>, and <a class="el" href="a00140_source.html#l00167">std::basic_stringbuf< _CharT, _Traits, _Alloc >::str()</a>.</p> </div> </div> <a id="a6b3f675c4d60188e1291eca9fc755458"></a> <h2 class="memtitle"><span class="permalink"><a href="#a6b3f675c4d60188e1291eca9fc755458">◆ </a></span>epptr()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a>* <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::epptr </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Access to the put area. </p> <p>These functions are only available to other protected functions, including derived classes.</p> <ul> <li>pbase() returns the beginning pointer for the output sequence</li> <li>pptr() returns the next pointer for the output sequence</li> <li>epptr() returns the end pointer for the output sequence </li> </ul> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00542">542</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> <p class="reference">Referenced by <a class="el" href="a00149_source.html#l00431">std::basic_streambuf< _Elem, _Tr >::sputc()</a>.</p> </div> </div> <a id="a9d130ff289d2617954156378a79dbdc0"></a> <h2 class="memtitle"><span class="permalink"><a href="#a9d130ff289d2617954156378a79dbdc0">◆ </a></span>gbump()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::gbump </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>__n</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Moving the read position. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__n</td><td>The delta by which to move.</td></tr> </table> </dd> </dl> <p>This just advances the read position without returning any data. </p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00505">505</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> <p class="reference">Referenced by <a class="el" href="a00149_source.html#l00323">std::basic_streambuf< _Elem, _Tr >::sbumpc()</a>, <a class="el" href="a00149_source.html#l00379">std::basic_streambuf< _Elem, _Tr >::sputbackc()</a>, <a class="el" href="a00149_source.html#l00404">std::basic_streambuf< _Elem, _Tr >::sungetc()</a>, and <a class="el" href="a00149_source.html#l00707">std::basic_streambuf< _Elem, _Tr >::uflow()</a>.</p> </div> </div> <a id="a09508701b27d68740a5473d096437f65"></a> <h2 class="memtitle"><span class="permalink"><a href="#a09508701b27d68740a5473d096437f65">◆ </a></span>getloc()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a05816.html">locale</a> <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::getloc </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Locale access. </p> <dl class="section return"><dt>Returns</dt><dd>The current locale in effect.</dd></dl> <p>If pubimbue(loc) has been called, then the most recent <code>loc</code> is returned. Otherwise the global locale in effect at the time of construction is returned. </p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00233">233</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> <p class="reference">Referenced by <a class="el" href="a00149_source.html#l00216">std::basic_streambuf< _Elem, _Tr >::pubimbue()</a>.</p> </div> </div> <a id="a344bded2a1c24ffcea69a918e7dc6c6f"></a> <h2 class="memtitle"><span class="permalink"><a href="#a344bded2a1c24ffcea69a918e7dc6c6f">◆ </a></span>gptr()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a>* <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::gptr </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Access to the get area. </p> <p>These functions are only available to other protected functions, including derived classes.</p> <ul> <li>eback() returns the beginning pointer for the input sequence</li> <li>gptr() returns the next pointer for the input sequence</li> <li>egptr() returns the end pointer for the input sequence </li> </ul> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00492">492</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> <p class="reference">Referenced by <a class="el" href="a00068_source.html#l00199">std::basic_filebuf< char_type, traits_type >::_M_create_pback()</a>, <a class="el" href="a00149_source.html#l00291">std::basic_streambuf< _Elem, _Tr >::in_avail()</a>, <a class="el" href="a00149_source.html#l00323">std::basic_streambuf< _Elem, _Tr >::sbumpc()</a>, <a class="el" href="a00149_source.html#l00345">std::basic_streambuf< _Elem, _Tr >::sgetc()</a>, <a class="el" href="a00140_source.html#l00212">std::basic_stringbuf< _CharT, _Traits, _Alloc >::showmanyc()</a>, <a class="el" href="a00149_source.html#l00379">std::basic_streambuf< _Elem, _Tr >::sputbackc()</a>, <a class="el" href="a00149_source.html#l00404">std::basic_streambuf< _Elem, _Tr >::sungetc()</a>, and <a class="el" href="a00149_source.html#l00707">std::basic_streambuf< _Elem, _Tr >::uflow()</a>.</p> </div> </div> <a id="affba476244b59486bd630e26ca375b0f"></a> <h2 class="memtitle"><span class="permalink"><a href="#affba476244b59486bd630e26ca375b0f">◆ </a></span>imbue()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual void <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::imbue </td> <td>(</td> <td class="paramtype">const <a class="el" href="a05816.html">locale</a> &__loc  </td> <td class="paramname"><em>__attribute__</em>(__unused__)</td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Changes translations. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__loc</td><td>A new locale.</td></tr> </table> </dd> </dl> <p>Translations done during I/O which depend on the current locale are changed by this call. The standard adds, <em>Between invocations of this function a class derived from streambuf can safely cache results of calls to locale functions and to members of facets so obtained.</em></p> <dl class="section note"><dt>Note</dt><dd>Base class version does nothing. </dd></dl> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00583">583</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> <p class="reference">Referenced by <a class="el" href="a00149_source.html#l00216">std::basic_streambuf< _Elem, _Tr >::pubimbue()</a>.</p> </div> </div> <a id="a924a684fe2a6844d766e25f4051b705c"></a> <h2 class="memtitle"><span class="permalink"><a href="#a924a684fe2a6844d766e25f4051b705c">◆ </a></span>in_avail()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a01538.html#a05eef5582eb5de62b76db4916f7adb84">streamsize</a> <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::in_avail </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Looking ahead into the stream. </p> <dl class="section return"><dt>Returns</dt><dd>The number of characters available.</dd></dl> <p>If a read position is available, returns the number of characters available for reading before the buffer must be refilled. Otherwise returns the derived <code>showmanyc()</code>. </p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00291">291</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> </div> </div> <a id="a4e7aec20e76936e17df779db22877b19"></a> <h2 class="memtitle"><span class="permalink"><a href="#a4e7aec20e76936e17df779db22877b19">◆ </a></span>overflow()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="a02452.html#a1c1565d5b66e703de4d9a8aef4957a8b">int_type</a> <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::overflow </td> <td>(</td> <td class="paramtype"><a class="el" href="a02452.html#a1c1565d5b66e703de4d9a8aef4957a8b">int_type</a> __c  </td> <td class="paramname"><em>__attribute__</em>(__unused__) = <code>traits_type::eof()</code></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Consumes data from the buffer; writes to the controlled sequence. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__c</td><td>An additional character to consume. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>eof() to indicate failure, something else (usually <em>__c</em>, or not_eof())</dd></dl> <p>Informally, this function is called when the output buffer is full (or does not exist, as buffering need not actually be done). If a buffer exists, it is <em>consumed</em>, with <em>some effect</em> on the controlled sequence. (Typically, the buffer is written out to the sequence verbatim.) In either case, the character <em>c</em> is also written out, if <em>__c</em> is not <code>eof()</code>.</p> <p>For a formal definition of this function, see a good text such as Langer & Kreft, or [27.5.2.4.5]/3-7.</p> <p>A functioning output streambuf can be created by overriding only this function (no buffer area will be used).</p> <dl class="section note"><dt>Note</dt><dd>Base class version does nothing, returns eof(). </dd></dl> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00775">775</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> <p class="reference">Referenced by <a class="el" href="a00149_source.html#l00431">std::basic_streambuf< _Elem, _Tr >::sputc()</a>.</p> </div> </div> <a id="a164c1056fe7d6d2cf5335c55541b8b52"></a> <h2 class="memtitle"><span class="permalink"><a href="#a164c1056fe7d6d2cf5335c55541b8b52">◆ </a></span>pbackfail()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="a02452.html#a1c1565d5b66e703de4d9a8aef4957a8b">int_type</a> <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::pbackfail </td> <td>(</td> <td class="paramtype"><a class="el" href="a02452.html#a1c1565d5b66e703de4d9a8aef4957a8b">int_type</a> __c  </td> <td class="paramname"><em>__attribute__</em>(__unused__) = <code>traits_type::eof()</code></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Tries to back up the input sequence. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__c</td><td>The character to be inserted back into the sequence. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>eof() on failure, <em>some other value</em> on success </dd></dl> <dl class="section post"><dt>Postcondition</dt><dd>The constraints of <code>gptr()</code>, <code>eback()</code>, and <code>pptr()</code> are the same as for <code>underflow()</code>.</dd></dl> <dl class="section note"><dt>Note</dt><dd>Base class version does nothing, returns eof(). </dd></dl> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00731">731</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> <p class="reference">Referenced by <a class="el" href="a00149_source.html#l00379">std::basic_streambuf< _Elem, _Tr >::sputbackc()</a>, and <a class="el" href="a00149_source.html#l00404">std::basic_streambuf< _Elem, _Tr >::sungetc()</a>.</p> </div> </div> <a id="a3feb8a3ab9393e19d53e0712af6a27e2"></a> <h2 class="memtitle"><span class="permalink"><a href="#a3feb8a3ab9393e19d53e0712af6a27e2">◆ </a></span>pbase()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a>* <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::pbase </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Access to the put area. </p> <p>These functions are only available to other protected functions, including derived classes.</p> <ul> <li>pbase() returns the beginning pointer for the output sequence</li> <li>pptr() returns the next pointer for the output sequence</li> <li>epptr() returns the end pointer for the output sequence </li> </ul> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00536">536</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> <p class="reference">Referenced by <a class="el" href="a00140_source.html#l00167">std::basic_stringbuf< _CharT, _Traits, _Alloc >::str()</a>.</p> </div> </div> <a id="abd017296cfc054910ca7de102e6a6998"></a> <h2 class="memtitle"><span class="permalink"><a href="#abd017296cfc054910ca7de102e6a6998">◆ </a></span>pbump()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::pbump </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>__n</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Moving the write position. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__n</td><td>The delta by which to move.</td></tr> </table> </dd> </dl> <p>This just advances the write position without returning any data. </p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00552">552</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> <p class="reference">Referenced by <a class="el" href="a00149_source.html#l00431">std::basic_streambuf< _Elem, _Tr >::sputc()</a>.</p> </div> </div> <a id="af485f3989ebaf74cbfc5f8f578f2e63d"></a> <h2 class="memtitle"><span class="permalink"><a href="#af485f3989ebaf74cbfc5f8f578f2e63d">◆ </a></span>pptr()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a>* <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::pptr </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Access to the put area. </p> <p>These functions are only available to other protected functions, including derived classes.</p> <ul> <li>pbase() returns the beginning pointer for the output sequence</li> <li>pptr() returns the next pointer for the output sequence</li> <li>epptr() returns the end pointer for the output sequence </li> </ul> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00539">539</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> <p class="reference">Referenced by <a class="el" href="a00149_source.html#l00431">std::basic_streambuf< _Elem, _Tr >::sputc()</a>, and <a class="el" href="a00140_source.html#l00167">std::basic_stringbuf< _CharT, _Traits, _Alloc >::str()</a>.</p> </div> </div> <a id="a8e7a46a08c85184d8b6ea1e5d87b7736"></a> <h2 class="memtitle"><span class="permalink"><a href="#a8e7a46a08c85184d8b6ea1e5d87b7736">◆ </a></span>pubimbue()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a05816.html">locale</a> <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::pubimbue </td> <td>(</td> <td class="paramtype">const <a class="el" href="a05816.html">locale</a> & </td> <td class="paramname"><em>__loc</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Entry point for imbue(). </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__loc</td><td>The new locale. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The previous locale.</dd></dl> <p>Calls the derived imbue(__loc). </p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00216">216</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> </div> </div> <a id="abaa4b2714067328ce4b91a503b17fa73"></a> <h2 class="memtitle"><span class="permalink"><a href="#abaa4b2714067328ce4b91a503b17fa73">◆ </a></span>pubseekoff()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a02452.html#a5bc758d8b84fa134386d3ab683b880aa">pos_type</a> <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::pubseekoff </td> <td>(</td> <td class="paramtype"><a class="el" href="a02452.html#ae0d813da6c3d39659299a6e7831ae265">off_type</a> </td> <td class="paramname"><em>__off</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a05796.html#ac19bbe98949795f6038952b6c7759a0a">ios_base::seekdir</a> </td> <td class="paramname"><em>__way</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a05796.html#aa7e2408680d83e0bac8979774aeecdad">ios_base::openmode</a> </td> <td class="paramname"><em>__mode</em> = <code><a class="el" href="a05796.html#a652e2323949eea3d906e1c81bd8ce8f7">ios_base::in</a> | <a class="el" href="a05796.html#a7187e216e5d16ec820ea1791002f85e0">ios_base::out</a></code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Alters the stream position. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__off</td><td>Offset. </td></tr> <tr><td class="paramname">__way</td><td>Value for ios_base::seekdir. </td></tr> <tr><td class="paramname">__mode</td><td>Value for ios_base::openmode.</td></tr> </table> </dd> </dl> <p>Calls virtual seekoff function. </p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00258">258</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> </div> </div> <a id="a3138ab00e52afd7a538cdffa25e21937"></a> <h2 class="memtitle"><span class="permalink"><a href="#a3138ab00e52afd7a538cdffa25e21937">◆ </a></span>pubseekpos()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a02452.html#a5bc758d8b84fa134386d3ab683b880aa">pos_type</a> <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::pubseekpos </td> <td>(</td> <td class="paramtype"><a class="el" href="a02452.html#a5bc758d8b84fa134386d3ab683b880aa">pos_type</a> </td> <td class="paramname"><em>__sp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a05796.html#aa7e2408680d83e0bac8979774aeecdad">ios_base::openmode</a> </td> <td class="paramname"><em>__mode</em> = <code><a class="el" href="a05796.html#a652e2323949eea3d906e1c81bd8ce8f7">ios_base::in</a> | <a class="el" href="a05796.html#a7187e216e5d16ec820ea1791002f85e0">ios_base::out</a></code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Alters the stream position. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__sp</td><td>Position </td></tr> <tr><td class="paramname">__mode</td><td>Value for ios_base::openmode.</td></tr> </table> </dd> </dl> <p>Calls virtual seekpos function. </p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00270">270</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> </div> </div> <a id="a51cd8c6721f963f8bf1c5474c628b70a"></a> <h2 class="memtitle"><span class="permalink"><a href="#a51cd8c6721f963f8bf1c5474c628b70a">◆ </a></span>pubsetbuf()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a02452.html">basic_streambuf</a>* <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::pubsetbuf </td> <td>(</td> <td class="paramtype"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> * </td> <td class="paramname"><em>__s</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a01538.html#a05eef5582eb5de62b76db4916f7adb84">streamsize</a> </td> <td class="paramname"><em>__n</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Entry points for derived buffer functions. </p> <p>The public versions of <code>pubfoo</code> dispatch to the protected derived <code>foo</code> member functions, passing the arguments (if any) and returning the result unchanged. </p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00246">246</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> </div> </div> <a id="ac81d2dad6dac4c185c31937ee10077ce"></a> <h2 class="memtitle"><span class="permalink"><a href="#ac81d2dad6dac4c185c31937ee10077ce">◆ </a></span>pubsync()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">int <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::pubsync </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Calls virtual sync function. </p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00278">278</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> <p class="reference">Referenced by <a class="el" href="a00398_source.html#l00377">std::wbuffer_convert< _Codecvt, _Elem, _Tr >::sync()</a>.</p> </div> </div> <a id="a72d8037e21ad370e3643ff3c865f91f9"></a> <h2 class="memtitle"><span class="permalink"><a href="#a72d8037e21ad370e3643ff3c865f91f9">◆ </a></span>sbumpc()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a02452.html#a1c1565d5b66e703de4d9a8aef4957a8b">int_type</a> <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::sbumpc </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Getting the next character. </p> <dl class="section return"><dt>Returns</dt><dd>The next character, or eof.</dd></dl> <p>If the input read position is available, returns that character and increments the read pointer, otherwise calls and returns <code>uflow()</code>. </p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00323">323</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> <p class="reference">Referenced by <a class="el" href="a00149_source.html#l00305">std::basic_streambuf< _Elem, _Tr >::snextc()</a>.</p> </div> </div> <a id="ad6d5177e376efdb0dccf62890eebc9b0"></a> <h2 class="memtitle"><span class="permalink"><a href="#ad6d5177e376efdb0dccf62890eebc9b0">◆ </a></span>seekoff()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="a02452.html#a5bc758d8b84fa134386d3ab683b880aa">pos_type</a> <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::seekoff </td> <td>(</td> <td class="paramtype"><a class="el" href="a02452.html#ae0d813da6c3d39659299a6e7831ae265">off_type</a> </td> <td class="paramname">, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a05796.html#ac19bbe98949795f6038952b6c7759a0a">ios_base::seekdir</a> </td> <td class="paramname">, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a05796.html#aa7e2408680d83e0bac8979774aeecdad">ios_base::openmode</a> </td> <td class="paramname"> = <code><a class="el" href="a05796.html#a652e2323949eea3d906e1c81bd8ce8f7">ios_base::in</a> | <a class="el" href="a05796.html#a7187e216e5d16ec820ea1791002f85e0">ios_base::out</a></code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Alters the stream positions. </p> <p>Each derived class provides its own appropriate behavior. </p><dl class="section note"><dt>Note</dt><dd>Base class version does nothing, returns a <code>pos_type</code> that represents an invalid stream position. </dd></dl> <p>Reimplemented in <a class="el" href="a02060.html#a0152beebcac8c9542b6b0efe3de5bbfb">std::basic_filebuf< _CharT, _Traits ></a>, <a class="el" href="a02060.html#a0152beebcac8c9542b6b0efe3de5bbfb">std::basic_filebuf< _CharT, encoding_char_traits< _CharT > ></a>, <a class="el" href="a02060.html#a0152beebcac8c9542b6b0efe3de5bbfb">std::basic_filebuf< char_type, traits_type ></a>, and <a class="el" href="a02468.html#a87ffed7ed9940e5952303b31be0b6a11">std::basic_stringbuf< _CharT, _Traits, _Alloc ></a>.</p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00609">609</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> <p class="reference">Referenced by <a class="el" href="a00149_source.html#l00258">std::basic_streambuf< _Elem, _Tr >::pubseekoff()</a>.</p> </div> </div> <a id="a008405d586f640e109c7ab7bf424aa39"></a> <h2 class="memtitle"><span class="permalink"><a href="#a008405d586f640e109c7ab7bf424aa39">◆ </a></span>seekpos()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="a02452.html#a5bc758d8b84fa134386d3ab683b880aa">pos_type</a> <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::seekpos </td> <td>(</td> <td class="paramtype"><a class="el" href="a02452.html#a5bc758d8b84fa134386d3ab683b880aa">pos_type</a> </td> <td class="paramname">, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a05796.html#aa7e2408680d83e0bac8979774aeecdad">ios_base::openmode</a> </td> <td class="paramname"> = <code><a class="el" href="a05796.html#a652e2323949eea3d906e1c81bd8ce8f7">ios_base::in</a> | <a class="el" href="a05796.html#a7187e216e5d16ec820ea1791002f85e0">ios_base::out</a></code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Alters the stream positions. </p> <p>Each derived class provides its own appropriate behavior. </p><dl class="section note"><dt>Note</dt><dd>Base class version does nothing, returns a <code>pos_type</code> that represents an invalid stream position. </dd></dl> <p>Reimplemented in <a class="el" href="a02060.html#a91365d684bb298cb7ad42e3c73cd0252">std::basic_filebuf< _CharT, _Traits ></a>, <a class="el" href="a02060.html#a91365d684bb298cb7ad42e3c73cd0252">std::basic_filebuf< _CharT, encoding_char_traits< _CharT > ></a>, <a class="el" href="a02060.html#a91365d684bb298cb7ad42e3c73cd0252">std::basic_filebuf< char_type, traits_type ></a>, and <a class="el" href="a02468.html#a763bee40dfc04e2ee2816e322c3af297">std::basic_stringbuf< _CharT, _Traits, _Alloc ></a>.</p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00621">621</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> <p class="reference">Referenced by <a class="el" href="a00149_source.html#l00270">std::basic_streambuf< _Elem, _Tr >::pubseekpos()</a>.</p> </div> </div> <a id="aad2e731291673229100bde1f24ce828f"></a> <h2 class="memtitle"><span class="permalink"><a href="#aad2e731291673229100bde1f24ce828f">◆ </a></span>setbuf()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="a02452.html">basic_streambuf</a><<a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a>,_Traits>* <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::setbuf </td> <td>(</td> <td class="paramtype"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> * </td> <td class="paramname">, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a01538.html#a05eef5582eb5de62b76db4916f7adb84">streamsize</a> </td> <td class="paramname"> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Manipulates the buffer. </p> <p>Each derived class provides its own appropriate behavior. See the next-to-last paragraph of <a href="https://gcc.gnu.org/onlinedocs/libstdc++/manual/streambufs.html#io.streambuf.buffering">https://gcc.gnu.org/onlinedocs/libstdc++/manual/streambufs.html#io.streambuf.buffering</a> for more on this function.</p> <dl class="section note"><dt>Note</dt><dd>Base class version does nothing, returns <code>this</code>. </dd></dl> <p>Reimplemented in <a class="el" href="a02060.html#afdc468aedafb80e43f14569d09485e6b">std::basic_filebuf< _CharT, _Traits ></a>, <a class="el" href="a02060.html#afdc468aedafb80e43f14569d09485e6b">std::basic_filebuf< _CharT, encoding_char_traits< _CharT > ></a>, <a class="el" href="a02060.html#afdc468aedafb80e43f14569d09485e6b">std::basic_filebuf< char_type, traits_type ></a>, and <a class="el" href="a02468.html#a3ecbb2133b5c6b598b0344b7cbbe1757">std::basic_stringbuf< _CharT, _Traits, _Alloc ></a>.</p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00598">598</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> <p class="reference">Referenced by <a class="el" href="a00149_source.html#l00246">std::basic_streambuf< _Elem, _Tr >::pubsetbuf()</a>.</p> </div> </div> <a id="a38c9b562c20b30bf9d21cf0e4dc90356"></a> <h2 class="memtitle"><span class="permalink"><a href="#a38c9b562c20b30bf9d21cf0e4dc90356">◆ </a></span>setg()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::setg </td> <td>(</td> <td class="paramtype"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> * </td> <td class="paramname"><em>__gbeg</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> * </td> <td class="paramname"><em>__gnext</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> * </td> <td class="paramname"><em>__gend</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Setting the three read area pointers. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__gbeg</td><td>A pointer. </td></tr> <tr><td class="paramname">__gnext</td><td>A pointer. </td></tr> <tr><td class="paramname">__gend</td><td>A pointer. </td></tr> </table> </dd> </dl> <dl class="section post"><dt>Postcondition</dt><dd><em>__gbeg</em> == <code>eback()</code>, <em>__gnext</em> == <code>gptr()</code>, and <em>__gend</em> == <code>egptr()</code> </dd></dl> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00516">516</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> <p class="reference">Referenced by <a class="el" href="a00068_source.html#l00199">std::basic_filebuf< char_type, traits_type >::_M_create_pback()</a>, and <a class="el" href="a00068_source.html#l00443">std::basic_filebuf< char_type, traits_type >::_M_set_buffer()</a>.</p> </div> </div> <a id="ab0f1b49870f87d288a737cd9f8f9ec00"></a> <h2 class="memtitle"><span class="permalink"><a href="#ab0f1b49870f87d288a737cd9f8f9ec00">◆ </a></span>setp()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::setp </td> <td>(</td> <td class="paramtype"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> * </td> <td class="paramname"><em>__pbeg</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> * </td> <td class="paramname"><em>__pend</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Setting the three write area pointers. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__pbeg</td><td>A pointer. </td></tr> <tr><td class="paramname">__pend</td><td>A pointer. </td></tr> </table> </dd> </dl> <dl class="section post"><dt>Postcondition</dt><dd><em>__pbeg</em> == <code>pbase()</code>, <em>__pbeg</em> == <code>pptr()</code>, and <em>__pend</em> == <code>epptr()</code> </dd></dl> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00562">562</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> <p class="reference">Referenced by <a class="el" href="a00068_source.html#l00443">std::basic_filebuf< char_type, traits_type >::_M_set_buffer()</a>.</p> </div> </div> <a id="ac773fb2c87cf938fb6eb89c987f8e04e"></a> <h2 class="memtitle"><span class="permalink"><a href="#ac773fb2c87cf938fb6eb89c987f8e04e">◆ </a></span>sgetc()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a02452.html#a1c1565d5b66e703de4d9a8aef4957a8b">int_type</a> <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::sgetc </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Getting the next character. </p> <dl class="section return"><dt>Returns</dt><dd>The next character, or eof.</dd></dl> <p>If the input read position is available, returns that character, otherwise calls and returns <code>underflow()</code>. Does not move the read position after fetching the character. </p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00345">345</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> <p class="reference">Referenced by <a class="el" href="a00149_source.html#l00305">std::basic_streambuf< _Elem, _Tr >::snextc()</a>.</p> </div> </div> <a id="a7cfb11ce1eb1a31cf82d7a876c35351b"></a> <h2 class="memtitle"><span class="permalink"><a href="#a7cfb11ce1eb1a31cf82d7a876c35351b">◆ </a></span>sgetn()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a01538.html#a05eef5582eb5de62b76db4916f7adb84">streamsize</a> <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::sgetn </td> <td>(</td> <td class="paramtype"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> * </td> <td class="paramname"><em>__s</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a01538.html#a05eef5582eb5de62b76db4916f7adb84">streamsize</a> </td> <td class="paramname"><em>__n</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Entry point for xsgetn. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__s</td><td>A buffer area. </td></tr> <tr><td class="paramname">__n</td><td>A count.</td></tr> </table> </dd> </dl> <p>Returns xsgetn(__s,__n). The effect is to fill <em>__s</em>[0] through <em>__s</em>[__n-1] with characters from the input sequence, if possible. </p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00364">364</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> </div> </div> <a id="a85e9299b4d91188c1c0070111604ece8"></a> <h2 class="memtitle"><span class="permalink"><a href="#a85e9299b4d91188c1c0070111604ece8">◆ </a></span>showmanyc()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="a01538.html#a05eef5582eb5de62b76db4916f7adb84">streamsize</a> <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::showmanyc </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Investigating the data available. </p> <dl class="section return"><dt>Returns</dt><dd>An estimate of the number of characters available in the input sequence, or -1.</dd></dl> <p><em>If it returns a positive value, then successive calls to <code>underflow()</code> will not return <code>traits::eof()</code> until at least that number of characters have been supplied. If <code>showmanyc()</code> returns -1, then calls to <code>underflow()</code> or <code>uflow()</code> will fail.</em> [27.5.2.4.3]/1</p> <dl class="section note"><dt>Note</dt><dd>Base class version does nothing, returns zero. </dd> <dd> The standard adds that <em>the intention is not only that the calls [to underflow or uflow] will not return <code>eof()</code> but that they will return immediately.</em> </dd> <dd> The standard adds that <em>the morphemes of <code>showmanyc</code> are <b>es-how-many-see</b>, not <b>show-manic</b>.</em> </dd></dl> <p>Reimplemented in <a class="el" href="a02060.html#a0e8e4218ba9766e34b74e69b17fb28b3">std::basic_filebuf< _CharT, _Traits ></a>, <a class="el" href="a02060.html#a0e8e4218ba9766e34b74e69b17fb28b3">std::basic_filebuf< _CharT, encoding_char_traits< _CharT > ></a>, <a class="el" href="a02060.html#a0e8e4218ba9766e34b74e69b17fb28b3">std::basic_filebuf< char_type, traits_type ></a>, and <a class="el" href="a02468.html#a24490a3224662a3c57cbb8f591b2acbc">std::basic_stringbuf< _CharT, _Traits, _Alloc ></a>.</p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00656">656</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> <p class="reference">Referenced by <a class="el" href="a00149_source.html#l00291">std::basic_streambuf< _Elem, _Tr >::in_avail()</a>.</p> </div> </div> <a id="a6d281db46069df3043b566f10e5397b2"></a> <h2 class="memtitle"><span class="permalink"><a href="#a6d281db46069df3043b566f10e5397b2">◆ </a></span>snextc()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a02452.html#a1c1565d5b66e703de4d9a8aef4957a8b">int_type</a> <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::snextc </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Getting the next character. </p> <dl class="section return"><dt>Returns</dt><dd>The next character, or eof.</dd></dl> <p>Calls <code>sbumpc()</code>, and if that function returns <code>traits::eof()</code>, so does this function. Otherwise, <code>sgetc()</code>. </p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00305">305</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> </div> </div> <a id="ae77ef8a76529317abdc2e6a66336e3ec"></a> <h2 class="memtitle"><span class="permalink"><a href="#ae77ef8a76529317abdc2e6a66336e3ec">◆ </a></span>sputbackc()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a02452.html#a1c1565d5b66e703de4d9a8aef4957a8b">int_type</a> <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::sputbackc </td> <td>(</td> <td class="paramtype"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> </td> <td class="paramname"><em>__c</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Pushing characters back into the input stream. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__c</td><td>The character to push back. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The previous character, if possible.</dd></dl> <p>Similar to sungetc(), but <em>__c</em> is pushed onto the stream instead of <em>the previous character.</em> If successful, the next character fetched from the input stream will be <em>__c</em>. </p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00379">379</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> </div> </div> <a id="af3504dac5b4cd940dbce97ddc5ed0c25"></a> <h2 class="memtitle"><span class="permalink"><a href="#af3504dac5b4cd940dbce97ddc5ed0c25">◆ </a></span>sputc()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a02452.html#a1c1565d5b66e703de4d9a8aef4957a8b">int_type</a> <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::sputc </td> <td>(</td> <td class="paramtype"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> </td> <td class="paramname"><em>__c</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Entry point for all single-character output functions. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__c</td><td>A character to output. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd><em>__c</em>, if possible.</dd></dl> <p>One of two public output functions.</p> <p>If a write position is available for the output sequence (i.e., the buffer is not full), stores <em>__c</em> in that position, increments the position, and returns <code>traits::to_int_type(__c)</code>. If a write position is not available, returns <code>overflow(__c)</code>. </p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00431">431</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> <p class="reference">Referenced by <a class="el" href="a00608_source.html#l00249">std::ostreambuf_iterator< _CharT, _Traits >::operator=()</a>.</p> </div> </div> <a id="a5d2917460a0283e7e2ff51940704ca95"></a> <h2 class="memtitle"><span class="permalink"><a href="#a5d2917460a0283e7e2ff51940704ca95">◆ </a></span>sputn()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a01538.html#a05eef5582eb5de62b76db4916f7adb84">streamsize</a> <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::sputn </td> <td>(</td> <td class="paramtype">const <a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> * </td> <td class="paramname"><em>__s</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a01538.html#a05eef5582eb5de62b76db4916f7adb84">streamsize</a> </td> <td class="paramname"><em>__n</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Entry point for all single-character output functions. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__s</td><td>A buffer read area. </td></tr> <tr><td class="paramname">__n</td><td>A count.</td></tr> </table> </dd> </dl> <p>One of two public output functions.</p> <p>Returns xsputn(__s,__n). The effect is to write <em>__s</em>[0] through <em>__s</em>[__n-1] to the output sequence, if possible. </p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00457">457</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> </div> </div> <a id="a8d42bd5b22d246f15a8dd0a8614c0e3f"></a> <h2 class="memtitle"><span class="permalink"><a href="#a8d42bd5b22d246f15a8dd0a8614c0e3f">◆ </a></span>sungetc()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a02452.html#a1c1565d5b66e703de4d9a8aef4957a8b">int_type</a> <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::sungetc </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Moving backwards in the input stream. </p> <dl class="section return"><dt>Returns</dt><dd>The previous character, if possible.</dd></dl> <p>If a putback position is available, this function decrements the input pointer and returns that character. Otherwise, calls and returns pbackfail(). The effect is to <em>unget</em> the last character <em>gotten</em>. </p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00404">404</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> </div> </div> <a id="a407510ac810a42b173f3bd553959bfb5"></a> <h2 class="memtitle"><span class="permalink"><a href="#a407510ac810a42b173f3bd553959bfb5">◆ </a></span>sync()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual int <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::sync </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Synchronizes the buffer arrays with the controlled sequences. </p> <dl class="section return"><dt>Returns</dt><dd>-1 on failure.</dd></dl> <p>Each derived class provides its own appropriate behavior, including the definition of <em>failure</em>. </p><dl class="section note"><dt>Note</dt><dd>Base class version does nothing, returns zero. </dd></dl> <p>Reimplemented in <a class="el" href="a02060.html#af42cd30ec66c6eb0df56026098b6e04f">std::basic_filebuf< _CharT, _Traits ></a>, <a class="el" href="a02060.html#af42cd30ec66c6eb0df56026098b6e04f">std::basic_filebuf< _CharT, encoding_char_traits< _CharT > ></a>, <a class="el" href="a02060.html#af42cd30ec66c6eb0df56026098b6e04f">std::basic_filebuf< char_type, traits_type ></a>, <a class="el" href="a05844.html#aba9f090cf1273168ea80a024419dab92">std::wbuffer_convert< _Codecvt, _Elem, _Tr ></a>, and <a class="el" href="a10592.html#aaf870a6b01d27af87ca27c16e601d1df">__gnu_cxx::stdio_sync_filebuf< _CharT, _Traits ></a>.</p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00634">634</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> <p class="reference">Referenced by <a class="el" href="a00149_source.html#l00278">std::basic_streambuf< _Elem, _Tr >::pubsync()</a>.</p> </div> </div> <a id="a4e0c932f41122eaec83e7008ece5e207"></a> <h2 class="memtitle"><span class="permalink"><a href="#a4e0c932f41122eaec83e7008ece5e207">◆ </a></span>uflow()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="a02452.html#a1c1565d5b66e703de4d9a8aef4957a8b">int_type</a> <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::uflow </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Fetches more data from the controlled sequence. </p> <dl class="section return"><dt>Returns</dt><dd>The first character from the <em>pending sequence</em>.</dd></dl> <p>Informally, this function does the same thing as <code>underflow()</code>, and in fact is required to call that function. It also returns the new character, like <code>underflow()</code> does. However, this function also moves the read position forward by one. </p> <p>Reimplemented in <a class="el" href="a10592.html#ad8647cc09ffa804cfe6b903b8415c9aa">__gnu_cxx::stdio_sync_filebuf< _CharT, _Traits ></a>.</p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00707">707</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> <p class="reference">Referenced by <a class="el" href="a00149_source.html#l00323">std::basic_streambuf< _Elem, _Tr >::sbumpc()</a>.</p> </div> </div> <a id="aab4011ac7751c858f121b887f124529d"></a> <h2 class="memtitle"><span class="permalink"><a href="#aab4011ac7751c858f121b887f124529d">◆ </a></span>underflow()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="a02452.html#a1c1565d5b66e703de4d9a8aef4957a8b">int_type</a> <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::underflow </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Fetches more data from the controlled sequence. </p> <dl class="section return"><dt>Returns</dt><dd>The first character from the <em>pending sequence</em>.</dd></dl> <p>Informally, this function is called when the input buffer is exhausted (or does not exist, as buffering need not actually be done). If a buffer exists, it is <em>refilled</em>. In either case, the next available character is returned, or <code>traits::eof()</code> to indicate a null pending sequence.</p> <p>For a formal definition of the pending sequence, see a good text such as Langer & Kreft, or [27.5.2.4.3]/7-14.</p> <p>A functioning input streambuf can be created by overriding only this function (no buffer area will be used). For an example, see <a href="https://gcc.gnu.org/onlinedocs/libstdc++/manual/streambufs.html">https://gcc.gnu.org/onlinedocs/libstdc++/manual/streambufs.html</a></p> <dl class="section note"><dt>Note</dt><dd>Base class version does nothing, returns eof(). </dd></dl> <p>Reimplemented in <a class="el" href="a05844.html#a97e246ca437e006102d2cc72da58d6c4">std::wbuffer_convert< _Codecvt, _Elem, _Tr ></a>, <a class="el" href="a02060.html#a051ec9d0aa68d3bbf3a2b8cb2e41c93b">std::basic_filebuf< _CharT, _Traits ></a>, <a class="el" href="a02060.html#a051ec9d0aa68d3bbf3a2b8cb2e41c93b">std::basic_filebuf< _CharT, encoding_char_traits< _CharT > ></a>, <a class="el" href="a02060.html#a051ec9d0aa68d3bbf3a2b8cb2e41c93b">std::basic_filebuf< char_type, traits_type ></a>, <a class="el" href="a02468.html#a51561fccb6d01fb598c1885de0defc71">std::basic_stringbuf< _CharT, _Traits, _Alloc ></a>, and <a class="el" href="a10592.html#a4789b9e8139b3884909949d7ce9b15cd">__gnu_cxx::stdio_sync_filebuf< _CharT, _Traits ></a>.</p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00694">694</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> <p class="reference">Referenced by <a class="el" href="a00149_source.html#l00345">std::basic_streambuf< _Elem, _Tr >::sgetc()</a>, and <a class="el" href="a00149_source.html#l00707">std::basic_streambuf< _Elem, _Tr >::uflow()</a>.</p> </div> </div> <a id="a5eaa7fbc16e49b8105d6387fcbbfad61"></a> <h2 class="memtitle"><span class="permalink"><a href="#a5eaa7fbc16e49b8105d6387fcbbfad61">◆ </a></span>xsgetn()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT , typename _Traits > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a01538.html#a05eef5582eb5de62b76db4916f7adb84">streamsize</a> <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::xsgetn </td> <td>(</td> <td class="paramtype"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> * </td> <td class="paramname"><em>__s</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a01538.html#a05eef5582eb5de62b76db4916f7adb84">streamsize</a> </td> <td class="paramname"><em>__n</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Multiple character extraction. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__s</td><td>A buffer area. </td></tr> <tr><td class="paramname">__n</td><td>Maximum number of characters to assign. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The number of characters assigned.</dd></dl> <p>Fills <em>__s</em>[0] through <em>__s</em>[__n-1] with characters from the input sequence, as if by <code>sbumpc()</code>. Stops when either <em>__n</em> characters have been copied, or when <code>traits::eof()</code> would be copied.</p> <p>It is expected that derived classes provide a more efficient implementation by overriding this definition. </p> <p>Reimplemented in <a class="el" href="a02060.html#a4fb6d662a8351a9c790be9fbe78be8b4">std::basic_filebuf< _CharT, _Traits ></a>, <a class="el" href="a02060.html#a4fb6d662a8351a9c790be9fbe78be8b4">std::basic_filebuf< _CharT, encoding_char_traits< _CharT > ></a>, and <a class="el" href="a02060.html#a4fb6d662a8351a9c790be9fbe78be8b4">std::basic_filebuf< char_type, traits_type ></a>.</p> <p class="definition">Definition at line <a class="el" href="a00605_source.html#l00046">46</a> of file <a class="el" href="a00605_source.html">streambuf.tcc</a>.</p> <p class="reference">Referenced by <a class="el" href="a00149_source.html#l00364">std::basic_streambuf< _Elem, _Tr >::sgetn()</a>.</p> </div> </div> <a id="a23e843afc42e2875d1f2fc945821499a"></a> <h2 class="memtitle"><span class="permalink"><a href="#a23e843afc42e2875d1f2fc945821499a">◆ </a></span>xsputn()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT , typename _Traits > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a01538.html#a05eef5582eb5de62b76db4916f7adb84">streamsize</a> <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::xsputn </td> <td>(</td> <td class="paramtype">const <a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a> * </td> <td class="paramname"><em>__s</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a01538.html#a05eef5582eb5de62b76db4916f7adb84">streamsize</a> </td> <td class="paramname"><em>__n</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Multiple character insertion. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__s</td><td>A buffer area. </td></tr> <tr><td class="paramname">__n</td><td>Maximum number of characters to write. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The number of characters written.</dd></dl> <p>Writes <em>__s</em>[0] through <em>__s</em>[__n-1] to the output sequence, as if by <code>sputc()</code>. Stops when either <em>n</em> characters have been copied, or when <code>sputc()</code> would return <code>traits::eof()</code>.</p> <p>It is expected that derived classes provide a more efficient implementation by overriding this definition. </p> <p>Reimplemented in <a class="el" href="a02060.html#a9e78a1d5dec2c7eea816ada4e43d7576">std::basic_filebuf< _CharT, _Traits ></a>, <a class="el" href="a02060.html#a9e78a1d5dec2c7eea816ada4e43d7576">std::basic_filebuf< _CharT, encoding_char_traits< _CharT > ></a>, and <a class="el" href="a02060.html#a9e78a1d5dec2c7eea816ada4e43d7576">std::basic_filebuf< char_type, traits_type ></a>.</p> <p class="definition">Definition at line <a class="el" href="a00605_source.html#l00080">80</a> of file <a class="el" href="a00605_source.html">streambuf.tcc</a>.</p> <p class="reference">Referenced by <a class="el" href="a00149_source.html#l00457">std::basic_streambuf< _Elem, _Tr >::sputn()</a>.</p> </div> </div> <h2 class="groupheader">Member Data Documentation</h2> <a id="aef4d5a82b6a51fa750fa43d80b4a8564"></a> <h2 class="memtitle"><span class="permalink"><a href="#aef4d5a82b6a51fa750fa43d80b4a8564">◆ </a></span>_M_buf_locale</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a05816.html">locale</a> <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::_M_buf_locale</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Current locale setting. </p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00199">199</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> <p class="reference">Referenced by <a class="el" href="a00149_source.html#l00233">std::basic_streambuf< _Elem, _Tr >::getloc()</a>, and <a class="el" href="a00149_source.html#l00216">std::basic_streambuf< _Elem, _Tr >::pubimbue()</a>.</p> </div> </div> <a id="a08c7afbf0ec4df6f6d8e29a46484197d"></a> <h2 class="memtitle"><span class="permalink"><a href="#a08c7afbf0ec4df6f6d8e29a46484197d">◆ </a></span>_M_in_beg</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a>* <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::_M_in_beg</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Start of get area. </p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00191">191</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> <p class="reference">Referenced by <a class="el" href="a00149_source.html#l00489">std::basic_streambuf< _Elem, _Tr >::eback()</a>, and <a class="el" href="a00149_source.html#l00516">std::basic_streambuf< _Elem, _Tr >::setg()</a>.</p> </div> </div> <a id="a7b4e50d872ecb80867eaab9e7897b625"></a> <h2 class="memtitle"><span class="permalink"><a href="#a7b4e50d872ecb80867eaab9e7897b625">◆ </a></span>_M_in_cur</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a>* <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::_M_in_cur</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Current read area. </p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00192">192</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> <p class="reference">Referenced by <a class="el" href="a00149_source.html#l00505">std::basic_streambuf< _Elem, _Tr >::gbump()</a>, <a class="el" href="a00149_source.html#l00492">std::basic_streambuf< _Elem, _Tr >::gptr()</a>, and <a class="el" href="a00149_source.html#l00516">std::basic_streambuf< _Elem, _Tr >::setg()</a>.</p> </div> </div> <a id="adf0f7b58227c057d018ab6a8b0a123d4"></a> <h2 class="memtitle"><span class="permalink"><a href="#adf0f7b58227c057d018ab6a8b0a123d4">◆ </a></span>_M_in_end</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a>* <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::_M_in_end</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>End of get area. </p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00193">193</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> <p class="reference">Referenced by <a class="el" href="a00149_source.html#l00495">std::basic_streambuf< _Elem, _Tr >::egptr()</a>, and <a class="el" href="a00149_source.html#l00516">std::basic_streambuf< _Elem, _Tr >::setg()</a>.</p> </div> </div> <a id="a66b958241a34e8b7da6ade8f3434ce61"></a> <h2 class="memtitle"><span class="permalink"><a href="#a66b958241a34e8b7da6ade8f3434ce61">◆ </a></span>_M_out_beg</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a>* <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::_M_out_beg</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Start of put area. </p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00194">194</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> <p class="reference">Referenced by <a class="el" href="a00149_source.html#l00536">std::basic_streambuf< _Elem, _Tr >::pbase()</a>, and <a class="el" href="a00149_source.html#l00562">std::basic_streambuf< _Elem, _Tr >::setp()</a>.</p> </div> </div> <a id="a83c368ebeed6b39269fd45d38b9a8b53"></a> <h2 class="memtitle"><span class="permalink"><a href="#a83c368ebeed6b39269fd45d38b9a8b53">◆ </a></span>_M_out_cur</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a>* <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::_M_out_cur</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Current put area. </p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00195">195</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> <p class="reference">Referenced by <a class="el" href="a00149_source.html#l00552">std::basic_streambuf< _Elem, _Tr >::pbump()</a>, <a class="el" href="a00149_source.html#l00539">std::basic_streambuf< _Elem, _Tr >::pptr()</a>, and <a class="el" href="a00149_source.html#l00562">std::basic_streambuf< _Elem, _Tr >::setp()</a>.</p> </div> </div> <a id="af2973fa34894190ce5885749fa148bbe"></a> <h2 class="memtitle"><span class="permalink"><a href="#af2973fa34894190ce5885749fa148bbe">◆ </a></span>_M_out_end</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _CharT, typename _Traits> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a02452.html#a38ad1721a50a96c7d37d51a3f858a0cf">char_type</a>* <a class="el" href="a02452.html">std::basic_streambuf</a>< _CharT, _Traits >::_M_out_end</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>End of put area. </p> <p class="definition">Definition at line <a class="el" href="a00149_source.html#l00196">196</a> of file <a class="el" href="a00149_source.html">streambuf</a>.</p> <p class="reference">Referenced by <a class="el" href="a00149_source.html#l00542">std::basic_streambuf< _Elem, _Tr >::epptr()</a>, and <a class="el" href="a00149_source.html#l00562">std::basic_streambuf< _Elem, _Tr >::setp()</a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="a00083_source.html">iosfwd</a></li> <li><a class="el" href="a00149_source.html">streambuf</a></li> <li><a class="el" href="a00605_source.html">streambuf.tcc</a></li> </ul> </div><!-- contents --> </div><!-- doc-content --> <!-- start footer part --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <ul> <li class="navelem"><a class="el" href="a01538.html">std</a></li><li class="navelem"><a class="el" href="a02452.html">basic_streambuf</a></li> <li class="footer">Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li> </ul> </div> </body> </html>