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]
- 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