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

Cleanup header includes #309

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

Lastique
Copy link
Member

@Lastique Lastique commented Mar 3, 2020

  1. Make inclusion of boost/bind/bind.hpp conditional in some cases, when the code actually conditionally uses boost::bind. Reduces compile-time overhead and fixes boost/thread/detail/thread.hpp #includes boost/bind.hpp unconditionally but uses it conditionally #307.

  2. Remove some unnecessary uses of boost::ref. This allows to avoid including boost/core/ref.hpp in a few places, and avoids the associated template instantiation overhead in others.

  3. Replace deprecated header includes with the more recent alternatives. For example: boost/detail/lightweight_test.hpp -> boost/core/lightweight_test.hpp, boost/ref.hpp -> boost/core/ref.hpp.

  4. Replace some blanket includes with the more fine-grained ones. For example, boost/utility.hpp, boost/atomic.hpp. This reduces compile time overhead.

  5. Add some missing includes, for example, boost/core/ref.hpp and boost/type_traits/is_same.hpp.

  6. Replace uses of std::is_same with boost::is_same (with the corresponding included header) since the standard type_traits header presence and validity is not tested by the code. Using boost::is_same makes the code more portable.

@Lastique
Copy link
Member Author

@viboes @pdimov A kind reminder. Could we merge this to develop and master before 1.73?

@pdimov
Copy link
Member

pdimov commented Apr 4, 2020

This PR has too many unrelated changes so I didn't feel comfortable applying it. Instead, I just changed <boost/bind.hpp> to <boost/bind/bind.hpp> in c13beec.

@Lastique
Copy link
Member Author

Lastique commented Apr 4, 2020

@pdimov Thanks. I will update this PR accordingly.

1. Make inclusion of boost/bind/bind.hpp conditional in some cases, when the
   code actually conditionally uses boost::bind. Reduces compile-time overhead
   and fixes boostorg#307.

2. Remove some unnecessary uses of boost::ref. This allows to avoid including
   boost/core/ref.hpp in a few places, and avoids the associated template
   instantiation overhead in others.

3. Replace deprecated header includes with the more recent alternatives. For
   example: boost/detail/lightweight_test.hpp -> boost/core/lightweight_test.hpp,
   boost/ref.hpp -> boost/core/ref.hpp.

4. Replace some blanket includes with the more fine-grained ones. For example,
   boost/utility.hpp, boost/atomic.hpp. This reduces compile time overhead.

5. Add some missing includes, for example, boost/core/ref.hpp and
   boost/type_traits/is_same.hpp.

6. Replace uses of std::is_same with boost::is_same (with the corresponding
   included header) since the standard type_traits header presence and validity
   is not tested by the code. Using boost::is_same makes the code more portable.
@Lastique Lastique changed the title Fix deprecated warnings generated by boost/bind.hpp. Cleanup header includes Cleanup header includes Apr 4, 2020
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.

boost/thread/detail/thread.hpp #includes boost/bind.hpp unconditionally but uses it conditionally
2 participants