Espacios de nombres
Variantes

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