Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::strstream::freeze

      From cppreference.com
      <cpp‎ |io‎ |strstream

      [edit template]
       
       
       
       
      void freeze(bool flag=true);
      (deprecated in C++98)
      (removed in C++26)

      If the stream is using a dynamically-allocated array for output, disables (flag==true) or enables (flag==false) automatic allocation/deallocation of the buffer. Effectively callsrdbuf()->freeze(flag).

      Contents

      [edit]Notes

      After a call tostr(), dynamic streams become frozen automatically. A call tofreeze(false) is required before exiting the scope in which thisstrstream object was created, otherwise the destructor will leak memory. Also, additional output to a frozen stream may be truncated once it reaches the end of the allocated buffer.

      [edit]Parameters

      flag - desired status

      [edit]Return value

      (none)

      [edit]Example

      Run this code
      #include <iostream>#include <strstream> int main(){std::strstream dyn;// dynamically-allocated output buffer    dyn<<"Test: "<<1.23;// note: no std::ends to demonstrate appendingstd::cout<<"The output stream contains\"";std::cout.write(dyn.str(), dyn.pcount())<<"\"\n";// the stream is now frozen due to str()    dyn<<" More text";// output to a frozen stream may be truncatedstd::cout<<"The output stream contains\"";std::cout.write(dyn.str(), dyn.pcount())<<"\"\n";    dyn.freeze(false);// freeze(false) must be called or the  destructor will leak std::strstream dyn2;// dynamically-allocated output buffer    dyn2<<"Test: "<<1.23;// note: no std::endsstd::cout<<"The output stream contains\"";std::cout.write(dyn2.str(), dyn2.pcount())<<"\"\n";    dyn2.freeze(false);// unfreeze the stream after str()    dyn2<<" More text"<<std::ends;// output will not be truncated (buffer grows)std::cout<<"The output stream contains\""<< dyn2.str()<<"\"\n";    dyn2.freeze(false);// freeze(false) must be called or the  destructor will leak}

      Possible output:

      The output stream contains "Test: 1.23"The output stream contains "Test: 1.23 More "The output stream contains "Test: 1.23"The output stream contains "Test: 1.23 More text"

      [edit]See also

      sets/clears the frozen state of the buffer
      (public member function ofstd::strstreambuf)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/io/strstream/freeze&oldid=105233"

      [8]ページ先頭

      ©2009-2025 Movatter.jp