Archivo de encabezado de la biblioteca estándar <stacktrace>
De cppreference.com
Este archivo de encabezado es parte de la biblioteca de utilerías generales.
Clases | ||
(C++23) | Representación de una evaluación en un listado de pila (clase) | |
(C++23) | Una representación aproximada de una secuencia de invocación que consiste de entradas de listado de pila. (plantilla de clase) | |
Soporte de hash (resumen) para std::stacktrace_entry (especialización de plantilla de clase) | ||
Soporte para hash (resumen) para el listado de pila, std::basic_stacktrace (especialización de plantilla de clase) | ||
Declaraciones adelantadas | ||
Definido en el archivo de encabezado <functional> | ||
(C++11) | Objeto función de dispersión (hash ). (plantilla de clase) | |
Funciones | ||
Especializa el algoritmo std::swap (plantilla de función) | ||
(C++23) | Devuelve una cadena con una descripción del objeto stacktrace_entry (función) | |
(C++23) | Devuelve una cadena con una descripción del listado de pila, basic_stacktrace (plantilla de función) | |
(C++23) | Ejecuta salida de flujo del objeto stacktrace_entry (plantilla de función) | |
(C++23) | Ejecuta salida de flujo del listado de pila, basic_stracktrace (plantilla de función) |
[editar]Sinopsis
namespace std {// clase stacktrace_entryclass stacktrace_entry; // plantilla de clase basic_stacktracetemplate<class Allocator>class basic_stacktrace; // nombres de definiciones de tipo de basic_stacktraceusing stacktrace = basic_stacktrace<allocator<stacktrace_entry>>; // funciones no miembrotemplate<class Allocator>void swap(basic_stacktrace<Allocator>& a, basic_stacktrace<Allocator>& b)noexcept(noexcept(a.swap(b))); string to_string(const stacktrace_entry& f); template<class Allocator> string to_string(const basic_stacktrace<Allocator>& st); template<class CharT, class traits> basic_ostream<CharT, traits>& operator<<(basic_ostream<CharT, traits>& os, const stacktrace_entry& f); template<class CharT, class Traits, class Allocator> basic_ostream<CharT, traits>& operator<<(basic_ostream<CharT, Traits>& os, const basic_stacktrace<Allocator>& st); // soporte para hash (resumen)template<class T>struct hash;template<>struct hash<stacktrace_entry>;template<class Allocator>struct hash<basic_stacktrace<Allocator>>;}
[editar]Clase std::stacktrace_entry
namespace std {class stacktrace_entry {public:using native_handle_type =/* definido por la implementación */; // constructoresconstexpr stacktrace_entry()noexcept;constexpr stacktrace_entry(const stacktrace_entry& other)noexcept;constexpr stacktrace_entry& operator=(const stacktrace_entry& other)noexcept; ~stacktrace_entry(); // observadoresconstexpr native_handle_type native_handle()constnoexcept;constexprexplicit operator bool()constnoexcept; // consulta string description()const; string source_file()const; uint_least32_t source_line()const; // comparaciónfriendconstexprbool operator==(const stacktrace_entry& x, const stacktrace_entry& y)noexcept;friendconstexpr strong_ordering operator<=>(const stacktrace_entry& x, const stacktrace_entry& y)noexcept;};}
[editar]Plantilla de clase std::basic_stacktrace
namespace std {template<class Allocator>class basic_stacktrace {public:using value_type = stacktrace_entry;using const_reference =const value_type&;using reference = value_type&;using const_iterator =/* definido por la implementación */;using iterator = const_iterator;using reverse_iterator =std::reverse_iterator<iterator>;using const_reverse_iterator =std::reverse_iterator<const_iterator>;using difference_type =/* definido por la implementación */;using size_type =/* definido por la implementación */;using allocator_type = Allocator; // creación y asignaciónstatic basic_stacktrace current(const allocator_type& alloc = allocator_type())noexcept;static basic_stacktrace current(size_type skip, const allocator_type& alloc = allocator_type())noexcept;static basic_stacktrace current(size_type skip, size_type max_depth, const allocator_type& alloc = allocator_type())noexcept; basic_stacktrace()noexcept(is_nothrow_default_constructible_v<allocator_type>);explicit basic_stacktrace(const allocator_type& alloc)noexcept; basic_stacktrace(const basic_stacktrace& other); basic_stacktrace(basic_stacktrace&& other)noexcept; basic_stacktrace(const basic_stacktrace& other, const allocator_type& alloc); basic_stacktrace(basic_stacktrace&& other, const allocator_type& alloc); basic_stacktrace& operator=(const basic_stacktrace& other); basic_stacktrace& operator=(basic_stacktrace&& other)noexcept( allocator_traits<Allocator>::propagate_on_container_move_assignment::value|| allocator_traits<Allocator>::is_always_equal::value); ~basic_stacktrace(); // observadores allocator_type get_allocator()constnoexcept; const_iterator begin()constnoexcept; const_iterator end()constnoexcept; const_reverse_iterator rbegin()constnoexcept; const_reverse_iterator rend()constnoexcept; const_iterator cbegin()constnoexcept; const_iterator cend()constnoexcept; const_reverse_iterator crbegin()constnoexcept; const_reverse_iterator crend()constnoexcept; [[nodiscard]]bool empty()constnoexcept; size_type size()constnoexcept; size_type max_size()constnoexcept; const_reference operator[](size_type)const; const_reference at(size_type)const; // comparacionestemplate<class Allocator2>friendbool operator==(const basic_stacktrace& x, const basic_stacktrace<Allocator2>& y)noexcept;template<class Allocator2>friend strong_ordering operator<=>(const basic_stacktrace& x, const basic_stacktrace<Allocator2>& y)noexcept; // modificadoresvoid swap(basic_stacktrace& other)noexcept(allocator_traits<Allocator>::propagate_on_container_swap::value|| allocator_traits<Allocator>::is_always_equal::value); private: vector<value_type, allocator_type> frames_;// solo exposición};}