std::filesystem::filesystem_error::filesystem_error
De cppreference.com
<tbody>
</tbody>
filesystem_error( const std::string& what_arg, std::error_code ec ); |
(1) | (desde C++17) |
filesystem_error( const std::string& what_arg, const std::filesystem::path& p1, std::error_code ec ); |
(2) | (desde C++17) |
filesystem_error( const std::string& what_arg, const std::filesystem::path& p1, const std::filesystem::path& p2, std::error_code ec ); |
(3) | (desde C++17) |
filesystem_error( const filesystem_error& other ) noexcept; |
(4) | (desde C++17) |
Construye un nuevo objeto filesystem_error.
1-3) El código de error se establece en
ec, y opcionalmente, las rutas de acceso que estaban involucradas en la operación que resultó en el error se establecen en p1 y p2. what() después de la construcción devuelve una cadena que contiene what_arg (suponiendo que no contiene un carácter nulo incrustado ). Si no se proporciona uno o ambos argumentos path, en su lugar se utiliza un objeto path nulo.4) Constructor de copia. Inicializa el contenido con el de
other. Si tanto *this como other tienen un tipo dinámico std::filesystem_error::filesystem_error, entonces std::strcmp(what(), other.what()) == 0.Parámetros
| what_arg | - | Una cadena aclaratoria. |
| ec | - | El código de error para el error específico que depende del sistema operativo. |
| p1, p2 | - | Las rutas de acceso involucradas en la operación que generó el error del sistema. |
| other | - | El otro objeto filesystem_error a copiar.
|
Notas
Ya que no se permite que std::filesystem::filesystem_error lance excepciones, generalmente la cadena aclaratoria se almacena internamente en un almacenamiento asignado de manera separada y con conteo de referencias. Esta es la razón por la que no hay un constructor que tome un parámetro de tipo std::string&&: de todas formas tendría que copiar el contenido.
Las implementaciones habituales también almacenan objetos path referenciados por path1() y path2() en el almacenamiento con conteo de referencias.
Ejemplo
| Esta sección está incompleta Razón: sin ejemplo |