Namespaces
Variants

std::filesystem::filesystem_error:: filesystem_error

From cppreference.net
filesystem_error ( const std:: string & what_arg,
std:: error_code ec ) ;
(1) (seit C++17)
filesystem_error ( const std:: string & what_arg,

const std:: filesystem :: path & p1,

std:: error_code ec ) ;
(2) (seit C++17)
filesystem_error ( const std:: string & what_arg,

const std:: filesystem :: path & p1,
const std:: filesystem :: path & p2,

std:: error_code ec ) ;
(3) (seit C++17)
filesystem_error ( const filesystem_error & other ) noexcept ;
(4) (seit C++17)

Konstruiert ein neues filesystem_error -Objekt.

1-3) Der Fehlercode wird auf ec gesetzt und optional werden die Pfade, die an der Operation beteiligt waren, die zum Fehler führte, auf p1 und p2 gesetzt. what() gibt nach der Konstruktion eine Zeichenkette zurück, die what_arg enthält (vorausgesetzt, sie enthält kein eingebettetes Nullzeichen). Falls eines oder beide path Argumente nicht angegeben werden, wird stattdessen ein Null- path verwendet.
4) Kopierkonstruktor. Initialisiert die Inhalte mit denen von other . Wenn * this und other beide den dynamischen Typ std::filesystem_error::filesystem_error haben, dann std:: strcmp ( what ( ) , other. what ( ) ) == 0 .

Parameter

what_arg - erläuternde Zeichenkette
ec - Fehlercode für den spezifischen betriebssystemabhängigen Fehler
p1, p2 - an der Operation beteiligte Pfade, die den Systemfehler verursachen
other - ein weiteres filesystem_error Objekt zum Kopieren

Hinweise

Da das Kopieren von std::filesystem::filesystem_error nicht zum Auslösen von Ausnahmen führen darf, wird der erläuternde String typischerweise intern in einem separat allozierten referenzgezählten Speicher gespeichert. Dies ist auch der Grund, warum es keinen Konstruktor gibt, der std::string&& akzeptiert: Er müsste den Inhalt ohnehin kopieren.

Typische Implementierungen speichern auch path Objekte, auf die durch path1() und path2() referenziert wird, im referenzgezählten Speicher.

Beispiel