Skip to content

Compilation errors in 2.1.0. #25

Closed
@toge

Description

@toge

I met compilation errors in an example code on README.md.

It works fine in 2.0.0, but it fails in 2.1.0.
Is there any way to fix it?

Environments:
OS: Fedora Linux 40
Compiler: gcc 14.1.1

In file included from test_package.cpp:2:
include/interval-tree/interval_tree.hpp: In instantiation of ‘void lib_interval_tree::increment(T&) [with T = interval_tree_iterator<node<int, interval<int, closed> >, false>]’:
include/interval-tree/interval_tree.hpp:550:26:   required from ‘lib_interval_tree::interval_tree_iterator<node_type, reverse>& lib_interval_tree::interval_tree_iterator<node_type, reverse>::operator++() [with node_type = lib_interval_tree::node<int, lib_interval_tree::interval<int, lib_interval_tree::closed> >; bool reverse = false]’
  550 |                 increment(*this);
      |                 ~~~~~~~~~^~~~~~~
test_package.cpp:23:24:   required from here
   23 |   for (auto const& i : tree)
      |                        ^~~~
include/interval-tree/interval_tree.hpp:625:39: error: ‘lib_interval_tree::interval_tree<lib_interval_tree::interval<int, lib_interval_tree::closed> >::node_type* lib_interval_tree::interval_tree<lib_interval_tree::interval<int, lib_interval_tree::closed> >::root_’ is private within this context
  625 |             iter.node_ = iter.owner_->root_;
      |                          ~~~~~~~~~~~~~^~~~~
include/interval-tree/interval_tree.hpp:1742:20: note: declared private here
 1742 |         node_type* root_;
      |                    ^~~~~
include/interval-tree/interval_tree.hpp:630:31: error: ‘lib_interval_tree::node<int, lib_interval_tree::interval<int, lib_interval_tree::closed> >* lib_interval_tree::node<int, lib_interval_tree::interval<int, lib_interval_tree::closed> >::left_’ is private within this context
  630 |             while(iter.node_->left_)
      |                   ~~~~~~~~~~~~^~~~~
include/interval-tree/interval_tree.hpp:333:15: note: declared private here
  333 |         node* left_;
      |               ^~~~~
include/interval-tree/interval_tree.hpp:631:42: error: ‘lib_interval_tree::node<int, lib_interval_tree::interval<int, lib_interval_tree::closed> >* lib_interval_tree::node<int, lib_interval_tree::interval<int, lib_interval_tree::closed> >::left_’ is private within this context
  631 |                 iter.node_ = iter.node_->left_;
      |                              ~~~~~~~~~~~~^~~~~
include/interval-tree/interval_tree.hpp:333:15: note: declared private here
  333 |         node* left_;
      |               ^~~~~
include/interval-tree/interval_tree.hpp:634:25: error: ‘lib_interval_tree::node<int, lib_interval_tree::interval<int, lib_interval_tree::closed> >* lib_interval_tree::node<int, lib_interval_tree::interval<int, lib_interval_tree::closed> >::right_’ is private within this context
  634 |         if (iter.node_->right_)
      |             ~~~~~~~~~~~~^~~~~~
include/interval-tree/interval_tree.hpp:334:15: note: declared private here
  334 |         node* right_;
      |               ^~~~~~`

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions