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
const auto& name = wallet.get_str();
            if (!wallet_paths.insert(fs::PathFromString(name)).second) {
                continue;
            }
            DatabaseOptions options;
            DatabaseStatus status;
            options.require_existing = true;
            options.verify = false; // 
            bilingual_str error;
            std::vector<bilingual_str> warnings;
            std::unique_ptr<WalletDatabase> database = MakeWalletDatabase(name, options, status, error);
            if (!database && status == DatabaseStatus::FAILED_NOT_FOUND) {
                continue;
            }
            chain.initMessage(_("Loading wallet…").translated);
            std::shared_ptr<CWallet> pwallet = database ? CWallet::Create(context, name, std::move(database), options.create_flags, error, warnings) : nullptr;
            if (!warnings.empty()) chain.initWarning(Join(warnings, Untranslated("\n")));
            if (!pwallet) {
                chain.initError(error);
                return false;
            }
            AddWallet(context, pwallet);
        }
        return true;
    } catch (const std::runtime_error& e) {
        chain.initError(Untranslated(e.what()));
        return false;
    }
}
void StartWallets(WalletContext& context, CScheduler& scheduler)