boostorg / boostorg/heap

error: there are no arguments to 'BOOST_STATIC_ASSERT' that depend on a template parameter, so a declaration of 'BOOST_STATIC_ASSERT' must be available [-fpermissive]

Open
#54 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
20
Forks
44
PR merge metrics
No merged PRs in 30d

Description

Trying to package boost.heap for Bazel Central Registry for 1.88.0 I get this:

```
external/boost.heap~/include/boost/heap/detail/tree_iterator.hpp: In constructor 'boost::heap::detail::tree_iterator::tree_iterator(NodePointerIterator, NodePointerIterator, const Node*, const ValueCompare&)':
external/boost.heap~/include/boost/heap/detail/tree_iterator.hpp:198:9: error: there are no arguments to 'BOOST_STATIC_ASSERT' that depend on a template parameter, so a declaration of 'BOOST_STATIC_ASSERT' must be available [-fpermissive]
198 | BOOST_STATIC_ASSERT( ordered_iterator );
| ^~~~~~~~~~~~~~~~~~~
external/boost.heap~/include/boost/heap/detail/tree_iterator.hpp:198:9: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
```

Bazel Central Registry builds are set up to check that each header compiles standalone, and for 1.87.0 this worked. For 1.88.0 there seems to be this new error. I would guess it is simply a missing include in `include/boost/heap/detail/tree_iterator.hpp`.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with include/boost/heap/detail/tree_iterator.hpp at line 198 and reproduce the standalone-header compilation used by Bazel Central Registry. Compare the relevant includes or compilation behavior between Boost.Heap 1.87.0 and 1.88.0; done means the header compiles without the BOOST_STATIC_ASSERT diagnostic under the reported settings.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
build-system
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.