std::filesystem::filesystem_error::filesystem_error
From cppreference.com
< cpp | filesystem | filesystem error
filesystem_error( const std::string& what_arg, std::error_code ec ); |
(1) | (since C++17) |
filesystem_error( const std::string& what_arg, const std::filesystem::path& p1, |
(2) | (since C++17) |
filesystem_error( const std::string& what_arg, const std::filesystem::path& p1, |
(3) | (since C++17) |
filesystem_error( const filesystem_error& other ) noexcept; |
(4) | (since C++17) |
Constructs a new filesystem_error
object.
1-3) The error code is set to
ec
and optionally, the paths that were involved in the operation that resulted in the error, are set to p1
and p2
. what()
after construction returns a string that contains what_arg
(assuming that it does not contain an embedded null character ). If either or both path
arguments are not provided, a null path
is used instead.4) Copy constructor. Initialize the contents with those of
other
. If *this
and other
both have dynamic type std::filesystem_error::filesystem_error
then std::strcmp(what(), other.what()) == 0.Parameters
what_arg | - | explanatory string |
ec | - | error code for the specific operating system dependent error |
p1, p2 | - | paths involved in the operation raising system error |
other | - | another filesystem_error object to copy
|
Notes
Because copying std::filesystem::filesystem_error
is not permitted to throw exceptions, the explanatory string is typically stored internally in a separately-allocated reference-counted storage. This is also why there is no constructor taking std::string&&
: it would have to copy the content anyway.
Typical implementations also store path
objects referenced by path1() and path2() in the reference-counted storage.
Example
This section is incomplete Reason: no example |