std::io_errc(3)

NAME
std::io_errc - std::io_errc

Synopsis
   Defined in header <ios>
   enum class io_errc {
       stream = 1, (since C++11)
   };
   The scoped enumeration std::io_errc defines the error codes reported by I/O streams
   in std::ios_base::failure exception objects. Only one error code
   (std::io_errc::stream) is required, although the implementation may define
   additional error codes. Because the appropriate specialization of
   std::is_error_code_enum is provided, values of type std::io_errc are implicitly
   convertible to std::error_code.

Member constants
   Enumeration constant Value
   stream 1

Non-member functions
   make_error_code(std::io_errc) constructs an iostream error code
   (C++11) (function)
   make_error_condition(std::io_errc) constructs an iostream error condition
   (C++11) (function)

Helper classes
   is_error_code_enum<std::io_errc> extends the type trait std::is_error_code_enum to
   (C++11) identify iostream error codes
                        (class template specialization)

Example
// Run this code
 #include <fstream>
 #include <iostream>
 int main()
 {
     std::ifstream f("doesn't exist");
     try
     {
         f.exceptions(f.failbit);
     }
     catch (const std::ios_base::failure& e)
     {
         std::cout << "Caught an ios_base::failure.\n";
         if (e.code() == std::io_errc::stream)
             std::cout << "The error code is std::io_errc::stream\n";
     }
 }

Output:
 Caught an ios_base::failure.
 The error code is std::io_errc::stream

See also
   error_code holds a platform-dependent error code
   (C++11) (class)
   error_condition holds a portable error code
   (C++11) (class)
   failure stream exception
                   (public member class of std::ios_base)