Namespaces
Variants

std::filesystem::filesystem_error:: filesystem_error

From es.cppreference.net
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 filesystem_error objeto.

1-3) El código de error se establece en ec y opcionalmente, las rutas que estuvieron 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 (asumiendo que no contiene un carácter nulo incrustado). Si alguno o ambos argumentos de path no se proporcionan, se utiliza un path nulo en su lugar.
4) Constructor de copia. Inicializa el contenido con el de other . Si * this y other tienen ambos el tipo dinámico std::filesystem_error::filesystem_error entonces std:: strcmp ( what ( ) , other. what ( ) ) == 0 .

Parámetros

what_arg - cadena explicativa
ec - código de error para el error específico dependiente del sistema operativo
p1, p2 - rutas involucradas en la operación que genera el error del sistema
other - otro objeto filesystem_error para copiar

Notas

Debido a que copiar std::filesystem::filesystem_error no está permitido lanzar excepciones, la cadena explicativa normalmente se almacena internamente en un almacenamiento de recuento de referencias asignado por separado. Esta es también la razón por la cual no hay un constructor que tome std::string&& : tendría que copiar el contenido de todos modos.

Las implementaciones típicas también almacenan path objetos referenciados por path1() y path2() en el almacenamiento con conteo de referencias.

Ejemplo