std::optional<T>:: ~optional
| 
 | 
 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| 
                
                 
                  
                   optional::~optional
                  
                 
                
                | ||||
| Observers | ||||
| Iterators | ||||
| 
                
                 
                  
                   (C++26)
                  
                 
                
                | ||||
| 
                
                 
                  
                   (C++26)
                  
                 
                
                | ||||
| Monadic operations | ||||
| 
                
                 
                  
                   (C++23)
                  
                 
                
                | ||||
| 
                
                 
                  
                   (C++23)
                  
                 
                
                | ||||
| 
                
                 
                  
                   (C++23)
                  
                 
                
                | ||||
| Modifiers | ||||
| Non-member functions | ||||
| Deduction guides | ||||
| Helper classes | ||||
| Helper objects | ||||
| 
           
            ~optional
            
             (
            
            
             )
            
            
             ;
            
           
           | (自 C++17 起) (自 C++20 起为 constexpr) | |
       如果对象包含值且类型
       
        T
       
       非可平凡析构(参见
       
        
         std::is_trivially_destructible
        
       
       ),则通过调用其析构函数销毁所含值,如同通过
       
        
         value
         
          (
         
         
          )
         
         .
         
          T
         
         
          ::
         
         ~T
         
          (
         
         
          )
         
        
       
       实现。
      
否则,不执行任何操作。
注释
       如果
       
        T
       
       是平凡可析构的,那么此析构函数也是平凡的,因此
       
        
         
          
           std::
           
            optional
           
          
         
         
          <
         
         T
         
          >
         
        
       
       也是平凡可析构的。
      
| 功能测试宏 | 值 | 标准 | 功能特性 | 
|---|---|---|---|
| 
           __cpp_lib_optional
           | 
           202106L
           | (C++20) (DR20) | 完全 constexpr 化 | 
缺陷报告
下列行为变更缺陷报告被追溯应用于先前发布的 C++ 标准。
| 缺陷报告 | 适用范围 | 发布时行为 | 正确行为 | 
|---|---|---|---|
| P2231R1 | C++20 | 析构函数未声明为 constexpr ,但C++20允许非平凡析构函数为 constexpr | 已改为 constexpr |