Opened 5 years ago

Last modified 5 years ago

#13505 new Bugs

graph/detail/array_binary_tree.hpp:45:18: error: unknown template name 'iterator'

Reported by: Denis Davydov <davydden@…> Owned by: Jeremiah Willcock
Milestone: To Be Determined Component: graph
Version: Boost 1.67.0 Severity: Problem
Keywords: Cc:

Description

Discovered this when building deal.II against boost 1.67.0.b1 with Apple's Clang 9.1.0:

     2449    In file included from /Users/davydden/spack/opt/spack/darwin-highsierra-x86_64/clang-9.1.0-apple/boost-1.67.0.b1-hfpvj4kx4lur5l6i2uhlp6kwlai5rbln/include/boost/graph/cuthill_mckee_ordering.hpp:15:
     2450    In file included from /Users/davydden/spack/opt/spack/darwin-highsierra-x86_64/clang-9.1.0-apple/boost-1.67.0.b1-hfpvj4kx4lur5l6i2uhlp6kwlai5rbln/include/boost/graph/detail/sparse_ordering.hpp:18:
     2451    In file included from /Users/davydden/spack/opt/spack/darwin-highsierra-x86_64/clang-9.1.0-apple/boost-1.67.0.b1-hfpvj4kx4lur5l6i2uhlp6kwlai5rbln/include/boost/pending/mutable_queue.hpp:20:
  >> 2452    /Users/davydden/spack/opt/spack/darwin-highsierra-x86_64/clang-9.1.0-apple/boost-1.67.0.b1-hfpvj4kx4lur5l6i2uhlp6kwlai5rbln/include/boost/graph/detail/array_binary_tree.hpp:45:18: error: unknown template name 'iterator'
     2453            : boost::iterator<std::bidirectional_iterator_tag, ArrayBinaryTreeNode,
     2454                     ^

I can not use any lower version due to other issues.

Change History (6)

comment:1 by Michel Morin, 5 years ago

Component: Nonegraph
Owner: set to Jeremiah Willcock

What happens if you add #include <boost/iterator.hpp> to boost/graph/detail/array_binary_tree.hpp?

comment:2 by Denis Davydov <davydden@…>, 5 years ago

this fixed the issue for me, thanks!

comment:3 by Denis Davydov <davydden@…>, 5 years ago

p.s. i think the issue would have been fixed by this PR from Jan 2018 https://github.com/boostorg/graph/pull/101 Hopefully, it will be merged before 1.67.0 stable release.

comment:4 by Michel Morin, 5 years ago

p.s. i think the issue would have been fixed by this PR

Right, since boost/iterator.hpp is deprecated, that PR is a better fix. But I'm 95% sure that the PR will not be merged for Boost 1.67; the changeset is a bit too large to be merged within the Boost 1.67 timeframe (and the development of Boost.Graph is not so active these days).

If this is critical for the dealii project, I would recommend the following:

  • First, submit a PR to Boost.Graph that #includes the missing header.
  • Then, post a message to the Boost developers' ML (you need to describe the ML to post a message) with a subject something like "[1.67] Missing include in Boost.Graph" and say
    • dealii cannot be built without your PR (if this is a regression, please say so).
    • also mention that boostorg/graph #101 would be a better fix.

comment:5 by Denis Davydov <davydden@…>, 5 years ago

thanks for the suggestion, I have done all in the above.

comment:6 by Michel Morin, 5 years ago

Thanks Denis! Let's see if it goes to Boost 1.67. (Your first post to the boost-dev ML will be sent after moderators authorize it.)

Note: See TracTickets for help on using tickets.