std::strstream:: ~strstream
      From cppreference.net
     
     
     
        
         C++
        
        
         
          
           
          
          
         
        
       
       
        
         Input/output library
        
        
         
          
           
            
          
          
          
         
        
       
       | I/O manipulators | ||||
| Print functions (C++23) | ||||
| C-style I/O | ||||
| Buffers | ||||
| 
                
                 
                  
                   (C++23)
                  
                 
                
                | ||||
| 
                
                 
                  
                   (
                   
                    C++98/26*
                   
                   )
                  
                 
                
                | ||||
| 
                
                 
                  
                   (C++20)
                  
                 
                
                | ||||
| Streams | ||||
| Abstractions | ||||
| File I/O | ||||
| String I/O | ||||
| Array I/O | ||||
| 
                
                 
                  
                   (C++23)
                  
                 
                
                | ||||
| 
                
                 
                  
                   (C++23)
                  
                 
                
                | ||||
| 
                
                 
                  
                   (C++23)
                  
                 
                
                | ||||
| 
                
                 
                  
                   (
                   
                    C++98/26*
                   
                   )
                  
                 
                
                | ||||
| 
                
                 
                  
                   (
                   
                    C++98/26*
                   
                   )
                  
                 
                
                | ||||
| 
                
                 
                  
                   (
                   
                    C++98/26*
                   
                   )
                  
                 
                
                | ||||
| Synchronized Output | ||||
| 
                
                 
                  
                   (C++20)
                  
                 
                
                | ||||
| Types | ||||
| Error category interface | ||||
| 
                
                 
                  
                   (C++11)
                  
                 
                
                | ||||
| 
                
                 
                  
                   (C++11)
                  
                 
                
                | 
        
         
          std::strstream
         
        
        
         
          
           
            
          
          
          
         
        
       
       | Member functions | ||||
| 
                
                 
                  
                   strstream::~strstream
                  
                 
                
                | ||||
| 
           
            
             virtual
            
            ~strstream
            
             (
            
            
             )
            
            
             ;
            
           
           | (C++98 中已弃用) (C++26 中移除) | |
       销毁一个
       
        std::strstream
       
       对象,该操作同时会销毁成员
       
        
         std::strstreambuf
        
       
       ,若底层缓冲区为动态分配且未被冻结,则可能调用释放函数。
      
参数
(无)
注释
       如果在动态
       
        strstream
       
       上调用过
       
        
         str()
        
       
       且之后未调用
       
        
         freeze(false)
        
       
       ,则该析构函数会发生内存泄漏。
      
示例
         运行此代码
        
       #include <iostream> #include <strstream> int main() { { std::ostrstream s; // 动态缓冲区 s << 1.23 << std::ends; std::cout << s.str() << '\n'; s.freeze(false); } // 析构函数调用,缓冲区被释放 { std::ostrstream s; s << 1.23 << std::ends; std::cout << s.str() << '\n'; // buf.freeze(false); } // 析构函数调用,内存泄漏 { std::istrstream s("1.23"); // 常量缓冲区 double d; s >> d; std::cout << d << '\n'; } // 析构函数调用,无需释放任何内容 }
输出:
1.23 1.23 1.23