With Boost 1.78 (installed on my system), I get a compiler error:
0./fs.h: In function ‘fs::path fs::operator+(fs::path, fs::path)’:
1./fs.h:91:8: error: no match for ‘operator+=’ (operand types are ‘fs::path’ and ‘std::remove_reference<fs::path&>::type’ {aka ‘fs::path’})
2 91 | p1 += std::move(p2);
3 | ~~~^~~~~~~~~~~~~~~~
It appears that in Boost 1.78, operator+=
became a template function, and our path
class which subclasses boost::filesystem::path::path
no longer has an operator+=
which will work with it.
I also opened an issue with boost: https://github.com/boostorg/filesystem/issues/223