Skip to content

Define BOOST_ALLOW_DEPRECATED_HEADERS when including qi.hpp

In Boost v1.87 the header include/boost/detail/atomic_count.hpp is deprecated but it is still included in include/boost/spirit/include/qi.hpp, which means every time this file is included the following warnings appear:

In file included from /usr/include/boost/none_t.hpp:17,
                 from /usr/include/boost/none.hpp:17,
                 from /usr/include/boost/optional/optional.hpp:53,
                 from /usr/include/boost/optional.hpp:15,
                 from /usr/include/boost/spirit/home/support/container.hpp:20,
                 from /usr/include/boost/spirit/home/support/string_traits.hpp:16,
                 from /usr/include/boost/spirit/home/support/nonterminal/expand_arg.hpp:20,
                 from /usr/include/boost/spirit/home/support/context.hpp:17,
                 from /usr/include/boost/spirit/home/qi/domain.hpp:18,
                 from /usr/include/boost/spirit/home/qi/meta_compiler.hpp:15,
                 from /usr/include/boost/spirit/home/qi/action/action.hpp:14,
                 from /usr/include/boost/spirit/home/qi/action.hpp:14,
                 from /usr/include/boost/spirit/home/qi.hpp:14,
                 from /usr/include/boost/spirit/include/qi.hpp:16,
                 from main.cpp:3:
/usr/include/boost/detail/atomic_count.hpp:10:1: note: ‘#pragma message: This header is deprecated. Use <boost/smart_ptr/detail/atomic_count.hpp> instead.’
   10 | BOOST_HEADER_DEPRECATED("<boost/smart_ptr/detail/atomic_count.hpp>")

I propose to define BOOST_ALLOW_DEPRECATED_HEADERS for this file only to remove this warning. As a side effect this will undef BOOST_ALLOWED_DEPRECATED_HEADERS if it already exists (instead of checking if it existed before and only undefining it if it did), but probably we don't want that as a global default.

Edited by Juan Miguel Carceller

Merge request reports

Loading