std::bad

您所在的位置:网站首页 《bad》 std::bad

std::bad

2023-05-17 02:28| 来源: 网络整理| 查看: 265

  C++ Compiler support Freestanding and hosted Language Standard library Standard library headers Named requirements Feature test macros (C++20) Language support library Concepts library (C++20) Metaprogramming library (C++11) Diagnostics library General utilities library Strings library Containers library Iterators library Ranges library (C++20) Algorithms library Numerics library Localizations library Input/output library Filesystem library (C++17) Regular expressions library (C++11) Concurrency support library (C++11) Technical specifications Symbols index External libraries [edit]  Utilities library Language support Type support (basic types, RTTI) Library feature-test macros (C++20) Dynamic memory management Program utilities Coroutine support (C++20) Variadic functions is_constant_evaluated(C++20) initializer_list(C++11) source_location(C++20) Three-way comparison (C++20) three_way_comparablethree_way_comparable_with(C++20)(C++20) strong_ordering(C++20) weak_ordering(C++20) partial_ordering(C++20) common_comparison_category(C++20) compare_three_way_result(C++20) compare_three_way(C++20) strong_order(C++20) weak_order(C++20) partial_order(C++20) compare_strong_order_fallback(C++20) compare_weak_order_fallback(C++20) compare_partial_order_fallback(C++20)    is_eqis_neqis_ltis_lteqis_gtis_gteq(C++20)(C++20)(C++20)(C++20)(C++20)(C++20) General utilities Date and time Function objects Formatting library (C++20) bitset hash(C++11) Relational operators (deprecated in C++20) rel_ops::operator!=rel_ops::operator> rel_ops::operator= Integer comparison functions cmp_equalcmp_lesscmp_less_than(C++20)(C++20)(C++20)    cmp_not_equalcmp_greatercmp_greater_than(C++20)(C++20)(C++20) in_range(C++20) Swap and type operations swap ranges::swap(C++20) exchange(C++14) declval(C++11) to_underlying(C++23) forward(C++11) forward_like(C++23) move(C++11) move_if_noexcept(C++11) as_const(C++17) Common vocabulary types pair tuple(C++11) optional(C++17) any(C++17) variant(C++17) tuple_size(C++11) tuple_element(C++11) apply(C++17) make_from_tuple(C++17) expected(C++23) Elementary string conversions to_chars(C++17) from_chars(C++17) chars_format(C++17) [edit]  Dynamic memory management Smart pointers unique_ptr(C++11) shared_ptr(C++11) weak_ptr(C++11) auto_ptr(until C++17) owner_less(C++11) enable_shared_from_this(C++11) bad_weak_ptr(C++11) default_delete(C++11) out_ptr_t(C++23) inout_ptr_t(C++23) Allocators allocator allocator_traits(C++11) allocation_result(C++23) allocator_arg(C++11) uses_allocator(C++11) uses_allocator_construction_args(C++20) make_obj_using_allocator(C++20) uninitialized_construct_using_allocator(C++20)   scoped_allocator_adaptor(C++11) pmr::polymorphic_allocator(C++17) Memory resources pmr::memory_resource(C++17) pmr::get_default_resource(C++17) pmr::set_default_resource(C++17) pmr::new_delete_resource(C++17) pmr::null_memory_resource(C++17) pmr::synchronized_pool_resource(C++17) pmr::unsynchronized_pool_resource(C++17) pmr::monotonic_buffer_resource(C++17) pmr::pool_options(C++17) Uninitialized storage raw_storage_iterator(until C++20) get_temporary_buffer(until C++20) return_temporary_buffer(until C++20) Uninitialized memory algorithms uninitialized_copy uninitialized_fill uninitialized_move(C++17) uninitialized_default_construct(C++17) uninitialized_value_construct(C++17) destroy(C++17) destroy_at(C++17) uninitialized_copy_n(C++11) uninitialized_fill_n uninitialized_move_n(C++17) uninitialized_default_construct_n(C++17) uninitialized_value_construct_n(C++17) destroy_n(C++17) construct_at(C++20) Constrained uninitialized memory algorithms ranges::uninitialized_copy(C++20) ranges::uninitialized_fill(C++20) ranges::uninitialized_move(C++20) ranges::uninitialized_default_construct(C++20)   ranges::uninitialized_value_construct(C++20) ranges::destroy(C++20) ranges::destroy_at(C++20) ranges::uninitialized_copy_n(C++20) ranges::uninitialized_fill_n(C++20) ranges::uninitialized_move_n(C++20) ranges::uninitialized_default_construct_n(C++20) ranges::uninitialized_value_construct_n(C++20) ranges::destroy_n(C++20) ranges::construct_at(C++20) Garbage collection support declare_reachable(C++11)(until C++23) undeclare_reachable(C++11)(until C++23) declare_no_pointers(C++11)(until C++23) undeclare_no_pointers(C++11)(until C++23) pointer_safety(C++11)(until C++23) get_pointer_safety(C++11)(until C++23) Miscellaneous pointer_traits(C++11) to_address(C++20) addressof(C++11) align(C++11) assume_aligned(C++20) C Library malloc aligned_alloc(C++17) calloc realloc free Low level memory management operator new operator new[] operator 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 [edit]  Low level memory management Functions operator newoperator new[] operator deleteoperator delete[] get_new_handler(C++11) set_new_handler Classes bad_alloc bad_array_new_length(C++11) align_val_t(C++17) Types new_handler Objects nothrow destroying_delete(C++20) Object access launder(C++17) [edit]  Defined in header class bad_alloc;

std::bad_alloc is the type of the object thrown as exceptions by the allocation functions to report failure to allocate storage.

std-bad alloc-inheritance.svg

Inheritance diagram

Contents 1 Member functions 2 std::bad_alloc::bad_alloc 2.1 Parameters 3 std::bad_alloc::operator= 3.1 Parameters 3.2 Return value 4 std::bad_alloc::what 4.1 Parameters 4.2 Return value 4.3 Notes 5 Inherited from std::exception 5.1 Member functions 5.2 Example 5.3 See also [edit] Member functions (constructor) constructs a new bad_alloc object (public member function) operator= replaces the bad_alloc object (public member function) what returns the explanatory string (public member function) std::bad_alloc::bad_alloc (1) bad_alloc() throw(); (until C++11) bad_alloc() noexcept; (since C++11) (2) bad_alloc( const bad_alloc& other ) throw(); (until C++11) bad_alloc( const bad_alloc& other ) noexcept; (since C++11)

Constructs a new bad_alloc object with an implementation-defined null-terminated byte string which is accessible through what().

1) Default constructor. 2) Copy constructor. If *this and other both have dynamic type std::bad_alloc then std::strcmp(what(), other.what()) == 0. (since C++11) Parameters other - another exception object to copy std::bad_alloc::operator= bad_alloc& operator=( const bad_alloc& other ) throw(); (until C++11) bad_alloc& operator=( const bad_alloc& other ) noexcept; (since C++11)

Assigns the contents with those of other. If *this and other both have dynamic type std::bad_alloc then std::strcmp(what(), other.what()) == 0 after assignment. (since C++11)

Parameters other - another exception object to assign with Return value

*this

std::bad_alloc::what virtual const char* what() const throw(); (until C++11) virtual const char* what() const noexcept; (since C++11)

Returns the explanatory string.

Parameters

(none)

Return value

Pointer to a null-terminated string with explanatory information. The string is suitable for conversion and display as a std::wstring. The pointer is guaranteed to be valid at least until the exception object from which it is obtained is destroyed, or until a non-const member function (e.g. copy assignment operator) on the exception object is called.

Notes

Implementations are allowed but not required to override what().

Inherited from std::exception Member functions (destructor)[virtual] destroys the exception object (virtual public member function of std::exception) [edit] what[virtual] returns an explanatory string (virtual public member function of std::exception) [edit] [edit] Example Run this code #include #include   int main() { try { while (true) { new int[100000000ul]; } } catch (const std::bad_alloc& e) { std::cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3