std::io_errc
From cppreference.com
                    
                                        
                    
                    
                                                            
                    |   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
|    constructs an iostream error code  (function)  | |
|    constructs an iostream error_condition  (function)  | 
Helper classes
|    extends the type trait std::is_error_code_enum to identify iostream error codes  (class template)  | 
Example
Run this code
#include <iostream> #include <fstream> 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
|    (C++11)  | 
   holds a platform-dependent error code   (class)  | 
|    (C++11)  | 
   holds a portable error code  (class)  | 
|    stream exception   (public member class of std::ios_base)  |