refactor: Avoid copy/move in fs.h

The operator accepts a const& reference, so no copy or move is needed.
See https://en.cppreference.com/w/cpp/filesystem/path/append
pull/29040/head
MarcoFalke 1 year ago
parent faea30227b
commit fa2bac08c2
No known key found for this signature in database

@ -35,7 +35,7 @@ public:
// Allow path objects arguments for compatibility. // Allow path objects arguments for compatibility.
path(std::filesystem::path path) : std::filesystem::path::path(std::move(path)) {} path(std::filesystem::path path) : std::filesystem::path::path(std::move(path)) {}
path& operator=(std::filesystem::path path) { std::filesystem::path::operator=(std::move(path)); return *this; } path& operator=(std::filesystem::path path) { std::filesystem::path::operator=(std::move(path)); return *this; }
path& operator/=(std::filesystem::path path) { std::filesystem::path::operator/=(path); return *this; } path& operator/=(const std::filesystem::path& path) { std::filesystem::path::operator/=(path); return *this; }
// Allow literal string arguments, which are safe as long as the literals are ASCII. // Allow literal string arguments, which are safe as long as the literals are ASCII.
path(const char* c) : std::filesystem::path(c) {} path(const char* c) : std::filesystem::path(c) {}
@ -97,9 +97,9 @@ static inline auto quoted(const std::string& s)
} }
// Allow safe path append operations. // Allow safe path append operations.
static inline path operator/(path p1, path p2) static inline path operator/(path p1, const path& p2)
{ {
p1 /= std::move(p2); p1 /= p2;
return p1; return p1;
} }
static inline path operator/(path p1, const char* p2) static inline path operator/(path p1, const char* p2)

Loading…
Cancel
Save