Skip to content

Transition away from Boost in favor of modern C++ #38

Open
@tmcg0

Description

Much like the philosophy of GTSAM, bioslam would be made better by upgrading to at least C++ 17 (likely 20 for future proofing).

This issue tracks boost changes that need to be made, with reference counts in the bioslam codebase as of Dec 3, 2023.

958 references to boost:: in the codebase:

  • 11 to boost::filesystem* -> directly switchable to std::filesystem (C++ 17)
  • 39 to boost::shared_ptr -> std::shared_ptr since C++11
  • 7 to boost::dynamic_pointer_cast -> std::dynamic_pointer_cast for const lvalue reference since C++11
  • 19 to boost::static_pointer_cast -> std::static_pointer_cast for const lvalue reference since C++11
  • 30 to boost::is_base_of -> std::is_base_of since C++11
  • 314 to boost::optional -> std::optional since C++17
  • 538 to boost::none -> std::nullopt since C++17

Note: direct swap replacements will not work because GTSAM often returns boost types, not std types. And these types are not implicitly converted at compile time. Before bioslam can move away from Boost, GTSAM must move away from Boost.

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions