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
#include <wallet/load.h>
#include <fs.h>
#include <interfaces/chain.h>
#include <scheduler.h>
#include <util/check.h>
#include <util/string.h>
#include <util/system.h>
#include <util/translation.h>
#include <wallet/context.h>
#include <wallet/spend.h>
#include <wallet/wallet.h>
#include <wallet/walletdb.h>
#include <univalue.h>
n {
bool VerifyWallets(WalletContext& context)
{
    interfaces::Chain& chain = *context.chain;
    ArgsManager& args = *Assert(context.args);
    if (args.IsArgSet("-walletdir")) {
        fs::path wallet_dir = fs::PathFromString(args.GetArg("-walletdir", ""));
        boost::system::error_code error;
        
        fs::path canonical_wallet_dir = fs::canonical(wallet_dir, error);
        if (error || !fs::exists(wallet_dir)) {
            chain.initError(strprintf(_("Specified -walletdir \"%s\" does not exist"), fs::PathToString(wallet_dir)));
            return false;