std::experimental::filesystem::path::replace_extension
From cppreference.com
                    
                                        
                    < cpp | experimental | fs | path
                    
                                                            
                    | path& replace_extension( const path& replacement = path() ); | (1) | (filesystem TS) | 
Replaces the extension with replacement.
Firstly, any existing extension is removed.
Then, a dot character is appended if replacement is not empty or does not begin with a dot character.
replacement is appended to the path.
| Contents | 
[edit] Parameters
| replacement | - | the extension to replace with | 
[edit] Return value
*this
[edit] Exceptions
(none)
[edit] See also
| replaces the last path component with another path (public member function) | 


