Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove dependency to Boost #275

Merged
merged 8 commits into from
Dec 30, 2023
Merged

Remove dependency to Boost #275

merged 8 commits into from
Dec 30, 2023

Conversation

ursfassler
Copy link
Contributor

@ursfassler ursfassler commented Dec 28, 2023

Summary

Remove all dependencies to boost (except for boost test).

Details

Remove macros provided by boost to handle compilers that don't support the needed features. All major compilers now support the features we need.

Additional changes:

  • use TCLAP library instead of boost::program_options
  • throw std::system_error instead of boost::system::system_error
  • use non-boost version of asio

Motivation and Context

Boost is a bit heavy and most functionality is no longer needed. With this changes, cucumber-cpp does not need boost anymore.

How Has This Been Tested?

Automated tests and own project.

Types of changes

  • Bug fix (non-breaking change which fixes an issue).
  • New feature (non-breaking change which adds functionality).
  • Breaking change (fix or feature that would cause existing functionality to not work as expected).

Boost is no longer a dependency but TCLAP and asio. Consumer of cucumber-cpp should not need to change their code, only the dependencies.

Checklist:

  • It is my own work, its copyright is implicitly assigned to the project and no substantial part of it has been copied from other sources (including Stack Overflow). In rare occasions this is acceptable, like in CMake modules where the original copyright information should be kept.
  • I'm using the same code standards as the existing code (indentation, spacing, variable naming, ...).
  • I've added tests for my code.
  • I have verified whether my change requires changes to the documentation
  • My change either requires no documentation change or I've updated the documentation accordingly.
  • My branch has been rebased to main, keeping only relevant commits.

This allows to remove all ifdefs that support old boost versions.
Don't use the macros
- BOOST_NO_DELETED_FUNCTIONS
- BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
- BOOST_NO_VARIADIC_TEMPLATES
anymore because all compiler support those features now
(https://en.cppreference.com/w/cpp/compiler_support/11).
Remove dependency to boost.
@ursfassler ursfassler force-pushed the less-boost branch 4 times, most recently from 1533c19 to ee59f70 Compare December 29, 2023 20:09
This removes the last dependency to boost (except the boost test driver).
@ursfassler ursfassler marked this pull request as ready for review December 29, 2023 20:52
@ursfassler ursfassler changed the title Less boost Remove dependency to Boost Dec 30, 2023
@ursfassler ursfassler merged commit 4d47d6c into cucumber:main Dec 30, 2023
2 checks passed
@ursfassler ursfassler deleted the less-boost branch December 30, 2023 07:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant