Localization library | |||||||||||||||||||||||||
Regular expressions library(C++11) | |||||||||||||||||||||||||
Formatting library(C++20) | |||||||||||||||||||||||||
Null-terminated sequence utilities | |||||||||||||||||||||||||
Byte strings | |||||||||||||||||||||||||
Multibyte strings | |||||||||||||||||||||||||
Wide strings | |||||||||||||||||||||||||
Primitive numeric conversions | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
Text encoding identifications | |||||||||||||||||||||||||
|
Standard format specification | ||||
Formatting functions | ||||
(C++20) | ||||
(C++20) | ||||
(C++20) | ||||
(C++20) | ||||
(C++20) | ||||
(C++20) | ||||
Format strings | ||||
(C++20)(C++20)(C++20) | ||||
(C++26) | ||||
Formatting concepts | ||||
(C++23) | ||||
Formatter | ||||
(C++20) | ||||
(C++23) | ||||
(C++23) | ||||
(C++23) | ||||
(C++20)(C++20)(C++20) | ||||
(C++20)(C++20)(C++20) | ||||
(C++23) | ||||
(C++23) | ||||
Formatting arguments | ||||
(C++20) | ||||
(C++20) | ||||
(C++20)(C++20)(C++20) | ||||
(C++20)(deprecated in C++26) | ||||
(C++20)(C++20) | ||||
Format error | ||||
format_error (C++20) |
Defined in header <format> | ||
class format_error:public runtime_error | (since C++20) | |
Defines the type of exception object thrown to report errors in the formatting library.
All member functions ofstd::format_error areconstexpr: it is possible to create and usestd::format_error objects in the evaluation of a constant expression.However, | (since C++26) |
Inheritance diagram
Contents |
(constructor) | constructs a newformat_error object with the given message(public member function) |
operator= | replaces theformat_error object(public member function) |
format_error(conststd::string& what_arg); | (1) | (constexpr since C++26) |
format_error(constchar* what_arg); | (2) | (constexpr since C++26) |
format_error(const format_error& other)noexcept; | (3) | (constexpr since C++26) |
std::format_error
thenstd::strcmp(what(), other.what())==0. No exception can be thrown from the copy constructor.what_arg | - | explanatory string |
other | - | another exception object to copy |
Because copyingstd::format_error
is not permitted to throw exceptions, this message is typically stored internally as a separately-allocated reference-counted string. This is also why there is no constructor takingstd::string&&
: it would have to copy the content anyway.
A derived standard exception class must have a publicly accessible copy constructor. It can be implicitly defined as long as the explanatory strings obtained bywhat()
are the same for the original object and the copied object.
format_error& operator=(const format_error& other)noexcept; | (constexpr since C++26) | |
Assigns the contents with those ofother. If*this andother both have dynamic typestd::format_error
thenstd::strcmp(what(), other.what())==0 after assignment. No exception can be thrown from the copy assignment operator.
other | - | another exception object to assign with |
*this
A derived standard exception class must have a publicly accessible copy assignment operator. It can be implicitly defined as long as the explanatory strings obtained bywhat()
are the same for the original object and the copied object.
[virtual] | destroys the exception object (virtual public member function of std::exception )[edit] |
[virtual] | returns an explanatory string (virtual public member function of std::exception )[edit] |
Feature-test macro | Value | Std | Feature |
---|---|---|---|
__cpp_lib_constexpr_exceptions | 202502L | (C++26) | constexpr exception types |
#include <format>#include <print>#include <string_view>#include <utility> int main(){try{auto x13{37};auto args{std::make_format_args(x13)};std::ignore=std::vformat("{:()}", args);// throws}catch(const std::format_error& ex){std::println("{}", ex.what());}}
Possible output:
format error: failed to parse format-spec