std::filesystem::path::replace_filename
Min standard notice:
Replaces a single filename component with replacement.
# Declarations
path& replace_filename( const path& replacement );
(since C++17)
# Parameters
replacement: path used for replacing the filename component
# Return value
*this
# Example
#include <filesystem>
#include <iostream>
namespace fs = std::filesystem;
int main()
{
std::cout << fs::path("/foo").replace_filename("bar") << '\n'
<< fs::path("/").replace_filename("bar") << '\n'
<< fs::path("").replace_filename("pub") << '\n';
}