struct destroying_delete_t { explicit destroying_delete_t() = default; }; (1) (C++20 起) inline constexpr destroying_delete_t destroying_delete{}; (2) (C++20 起) 用于鉴别 operator delete 的销毁 delete 形式的标签类型。 参阅operator deleteoperator delete[] 解分配函数 (函数) 首页...
structdestroying_delete_t{explicitdestroying_delete_t()=default;}; (C++20 起) inlineconstexprdestroying_delete_t destroying_delete{}; (C++20 起) 用于鉴别operator delete的销毁删除形式的标签类型。 参阅 operator deleteoperator delete[] 解分配函数 ...
operator delete[] get_new_handler set_new_handler launder (C++17) bad_alloc bad_array_new_length nothrow_t align_val_t destroying_delete_t new_handler nothrow Miscellaneous pointer_traits (C++11) to_address (C++20) addressof (C++11) align (C++11) assume_aligned (C++20) C Library malloc...
defer_lock_t (C++11 起)denorm_absentdenorm_indeterminatedenorm_presentdeque<>derived_from<> (C++20 起)destroy<>() (C++17 起)destroy_at<>() (C++17 起)destroy_n<>() (C++17 起)destroying_delete (C++20 起)destroying_delete_t (C++20 起)destructble (C++20 起)difftime()disable_sized_...
(nullptr_t ) -> basic_string_view<_CharT, _Traits>', 'auto (basic_string_view<_CharT, _Traits> ) -> basic_string_view<_CharT, _Traits>', 'auto (_It, _End ) -> basic_string_view<iter_value_t<_It>>', 'auto (_Range && ) -> basic_string_view<ranges::range_value_t<_...
destroying_delete_t new_handler nothrow Miscellaneous pointer_traits (C++11) to_address (C++20) addressof (C++11) align (C++11) assume_aligned (C++20) C Library malloc calloc realloc aligned_alloc (C++17) free std::unique_ptr Member functions unique_ptr::unique_ptr unique_ptr::~unique_pt...
defer_lock_t (C++11 起) denorm_absent denorm_indeterminate denorm_present deque<> derived_from<> (C++20 起) destroy<>() (C++17 起) destroy_at<>() (C++17 起) destroy_n<>() (C++17 起) destroying_delete (C++20 起) destroying_delete_t (C++20 起) destructible (C++20 起) dextents...
SYMBOL(destroying_delete, std::, <new>) SYMBOL(destroying_delete_t, std::, <new>) SYMBOL(difftime, std::, <ctime>) SYMBOL(discard_block_engine, std::, <random>) SYMBOL(discrete_distribution, std::, <random>) SYMBOL(disjunction, std::, <type_traits>) ...
产生的 std::unique_ptr<B> 的默认删除器将使用 B 的operator delete ,这导致未定义行为,除非 B 的析构函数为虚。注意 std::shared_ptr 表现有别: std::shared_ptr<B> 将使用类型 T 的operator delete ,而且即使 B 的析构函数非虚,也会正确删除被占有对象。
} // fclose() called here, but only if FILE* is not a null pointer // (that is, if fopen succeeded) std::cout << "Custom lambda-expression deleter demo\n"; { std::unique_ptr<D, std::function<void(D*)>> p(new D, [](D* ptr) { std::cout << "destroying from a custom ...