I/O manipulators | ||||
Print functions(C++23) | ||||
C-style I/O | ||||
Buffers | ||||
(C++23) | ||||
(C++98/26*) | ||||
(C++20) | ||||
Streams | ||||
Abstractions | ||||
File I/O | ||||
String I/O | ||||
Array I/O | ||||
(C++23) | ||||
(C++23) | ||||
(C++23) | ||||
(C++98/26*) | ||||
(C++98/26*) | ||||
(C++98/26*) | ||||
Synchronized Output | ||||
(C++20) | ||||
Types | ||||
Error category interface | ||||
(C++11) | ||||
(C++11) |
Non-member functions | ||||
make_error_code(std::io_errc) (C++11) | ||||
Helper classes | ||||
Defined in header <ios> | ||
std::error_code make_error_code(std::io_errc e)noexcept; | (since C++11) | |
Constructs anstd::error_code object from a value of typestd::io_errc as if byreturnstd::error_code(static_cast<int>(e),std::iostream_category()).
This function is called by the constructor ofstd::error_code with anstd::io_errc argument.
Contents |
e | - | error code number |
A value of typestd::error_code that holds the error code number frome associated with the error category"iostream".
#include <iostream>#include <system_error> int main(){std::error_code ec=std::make_error_code(std::io_errc::stream); // This works because of the overloaded method// and the is_error_code_enum specialization. ec=std::io_errc::stream; std::cout<<"Error code from io_errc::stream has category "<< ec.category().name()<<'\n';}
Output:
Error code from io_errc::stream has category iostream
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
DR | Applied to | Behavior as published | Correct behavior |
---|---|---|---|
LWG 2087 | C++11 | make_error_code(io_errc) was not declarednoexcept | declarednoexcept |
(C++11) | holds a platform-dependent error code (class)[edit] |
(C++11) | the IO stream error codes (enum)[edit] |
(C++11) | creates error code value forerrc enume(function)[edit] |
constructs a future error code (function)[edit] |