Closed
Description
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_;
| ^~~~~~`