With Boost 1.78 (installed on my system), I get a compiler error:

```
./fs.h: In function ‘fs::path fs::operator+(fs::path, fs::path)’:
./fs.h:91:8: error: no match for ‘operator+=’ (operand types are ‘fs::path’ and ‘std::remove_reference<fs::path&>::type’ {aka ‘fs::path’})
   91 |     p1 += std::move(p2);
      |     ~~~^~~~~~~~~~~~~~~~
```

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
FileLock(const FileLock&) = delete;
        FileLock(FileLock&&) = delete;
        explicit FileLock(const fs::path& file);
        ~FileLock();
        bool TryLock();
        std::string GetReason() { return reason; }
    private:
        std::string reason;
#ifndef WIN32
        int fd = -1;
#else
        void* hFile = (void*)-1; 
#endif
    };
    std::string get_filesystem_error_message(const fs::filesystem_error& e);
    
    
    
    
    
    
    
    
    
    
    
    
    
#if defined WIN32 && defined __GLIBCXX__
    class ifstream : public std::istream