std::strstream::~strstream
From cppreference.com
| virtual ~strstream(); |
(C++98で非推奨) (C++26で削除) |
|
std::strstream オブジェクトを破棄します。これにより、メンバである std::strstreambuf も破棄されます。このメンバは、基になるバッファが動的に割り当てられたもので、かつ凍結されていなかった場合に、解放関数を呼び出すことがあります。
[編集] パラメータ
(なし)
[編集] 注釈
動的な strstream に対して str() が呼び出され、その後 freeze(false) が呼び出されなかった場合、このデストラクタはメモリリークを引き起こします。
[編集] 例
このコードを実行
#include <iostream> #include <strstream> int main() { { std::ostrstream s; // dynamic buffer s << 1.23 << std::ends; std::cout << s.str() << '\n'; s.freeze(false); } // destructor called, buffer deallocated { std::ostrstream s; s << 1.23 << std::ends; std::cout << s.str() << '\n'; // buf.freeze(false); } // destructor called, memory leaked { std::istrstream s("1.23"); // constant buffer double d; s >> d; std::cout << d << '\n'; } // destructor called, nothing to deallocate }
出力
1.23 1.23 1.23