I recently upgraded my brew packages, and as part of the upgrade, the previous version of boost was replaced with boost 1.85.0.
Consequently, libpointmatcher build fails in several places, notably due to the boost::filesystem module.
Build log
```shell
/Volumes/CaseSensitive/libpointmatcher/pointmatcher/IO.cpp:363:74: error: no member named 'complete' in namespace 'boost::filesystem'
throw runtime_error(string("Cannot open file ") + boost::filesystem::complete(fullPath).generic_string());
~~~~~~~~~~~~~~~~~~~^
/Volumes/CaseSensitive/libpointmatcher/pointmatcher/IO.cpp:378:20: error: no type named 'extension' in namespace 'boost::filesystem'; did you mean 'exception'?
const string& ext(boost::filesystem::extension(path));
/Volumes/CaseSensitive/libpointmatcher/pointmatcher/IO.cpp:812:20: error: no type named 'extension' in namespace 'boost::filesystem'; did you mean 'exception'?
const string& ext(boost::filesystem::extension(path));
```
Interestingly, I found thatboost::filesystem::complete was deprecated already back in Boost 1_48_0, but the issue only emerged after the last update.
I think this might be a nice opportunity to replace boost with std since we are using C++17 anyway.
I recently upgraded my
brew
packages, and as part of the upgrade, the previous version ofboost
was replaced withboost 1.85.0
. Consequently,libpointmatcher
build fails in several places, notably due to theboost::filesystem
module.Build log
```shell /Volumes/CaseSensitive/libpointmatcher/pointmatcher/IO.cpp:363:74: error: no member named 'complete' in namespace 'boost::filesystem' throw runtime_error(string("Cannot open file ") + boost::filesystem::complete(fullPath).generic_string()); ~~~~~~~~~~~~~~~~~~~^ /Volumes/CaseSensitive/libpointmatcher/pointmatcher/IO.cpp:378:20: error: no type named 'extension' in namespace 'boost::filesystem'; did you mean 'exception'? const string& ext(boost::filesystem::extension(path)); /Volumes/CaseSensitive/libpointmatcher/pointmatcher/IO.cpp:812:20: error: no type named 'extension' in namespace 'boost::filesystem'; did you mean 'exception'? const string& ext(boost::filesystem::extension(path)); ```Interestingly, I found that
boost::filesystem::complete
was deprecated already back in Boost 1_48_0, but the issue only emerged after the last update.I think this might be a nice opportunity to replace
boost
withstd
since we are using C++17 anyway.