The wallet code uses Optional::emplace(), which was only added in boost 1.56, see https://github.com/boostorg/optional/commit/2e583aaf30964afd66c1284aa71d0d8b42fa440d
So for 0.21.0 there are two options:
- Work around
emplaceand keep the minimum boost version below 1.56 - Require boost 1.56
wallet/rpcwallet.cpp: In function ‘UniValue listsinceblock(const JSONRPCRequest&)’:
wallet/rpcwallet.cpp:1560:16: error: ‘Optional<int>’ has no member named ‘emplace’
height.emplace();
^
wallet/rpcwallet.cpp:1561:19: error: ‘Optional<int>’ has no member named ‘emplace’
altheight.emplace();
^