We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hello, thank you for creating this nice library.
I noticed that the copy constructor for the interval_tree causes a compiler error.
interval_tree
I am using GCC 12.3 on x86_64-linux-gnu and CMake 3.28.2.
This code does not compile (copy assignment also doesn't):
using namespace lib_interval_tree; interval_tree_t<int> intervals{}; interval_tree_t<int> intervals2(intervals);
This is the error I get:
[build] In file included from MY_CODE/intervals.hpp:7, [build] from MY_CODE/intervals.cpp:1: [build] (...)/interval-tree/26a47086beff5cd25c72fab5acc709bac57b4494/include/interval-tree/interval_tree.hpp: In instantiation of ‘lib_interval_tree::interval_tree<IntervalT, tree_hooks>::node_type* lib_interval_tree::interval_tree<IntervalT, tree_hooks>::copy_tree_impl(node_type*, node_type*) [with IntervalT = lib_interval_tree::interval<int, lib_interval_tree::closed>; tree_hooks = lib_interval_tree::hooks::regular; node_type = lib_interval_tree::node<int, lib_interval_tree::interval<int, lib_interval_tree::closed>, void>]’: [build] (...)/interval-tree/26a47086beff5cd25c72fab5acc709bac57b4494/include/interval-tree/interval_tree.hpp:935:25: required from ‘lib_interval_tree::interval_tree<IntervalT, tree_hooks>& lib_interval_tree::interval_tree<IntervalT, tree_hooks>::operator=(const lib_interval_tree::interval_tree<IntervalT, tree_hooks>&) [with IntervalT = lib_interval_tree::interval<int, lib_interval_tree::closed>; tree_hooks = lib_interval_tree::hooks::regular]’ [build] (...)/interval-tree/26a47086beff5cd25c72fab5acc709bac57b4494/include/interval-tree/interval_tree.hpp:918:22: required from ‘lib_interval_tree::interval_tree<IntervalT, tree_hooks>::interval_tree(const lib_interval_tree::interval_tree<IntervalT, tree_hooks>&) [with IntervalT = lib_interval_tree::interval<int, lib_interval_tree::closed>; tree_hooks = lib_interval_tree::hooks::regular]’ [build] MY_CODE/intervals.cpp:103:46: required from here [build] (...)/interval-tree/26a47086beff5cd25c72fab5acc709bac57b4494/include/interval-tree/interval_tree.hpp:1471:29: error: no matching function for call to ‘lib_interval_tree::node<int, lib_interval_tree::interval<int, lib_interval_tree::closed>, void>::node(lib_interval_tree::interval_tree<lib_interval_tree::interval<int, lib_interval_tree::closed>, lib_interval_tree::hooks::regular>::node_type*&, const lib_interval_tree::node<int, lib_interval_tree::interval<int, lib_interval_tree::closed>, void>::interval_type*)’ [build] 1471 | auto* cpy = new node_type(parent, root->interval()); [build] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [build] (...)/interval-tree/26a47086beff5cd25c72fab5acc709bac57b4494/include/interval-tree/interval_tree.hpp:379:9: note: candidate: ‘lib_interval_tree::node<numerical_type, interval_type, derived>::node(node_type*, interval_type) [with numerical_type = int; interval_type_ = lib_interval_tree::interval<int, lib_interval_tree::closed>; derived = void; node_type = lib_interval_tree::node<int, lib_interval_tree::interval<int, lib_interval_tree::closed>, void>; interval_type = lib_interval_tree::interval<int, lib_interval_tree::closed>]’ [build] 379 | node(node_type* parent, interval_type interval) [build] | ^~~~ [build] (...)/interval-tree/26a47086beff5cd25c72fab5acc709bac57b4494/include/interval-tree/interval_tree.hpp:379:47: note: no known conversion for argument 2 from ‘const lib_interval_tree::node<int, lib_interval_tree::interval<int, lib_interval_tree::closed>, void>::interval_type*’ {aka ‘const lib_interval_tree::interval<int, lib_interval_tree::closed>*’} to ‘lib_interval_tree::node<int, lib_interval_tree::interval<int, lib_interval_tree::closed>, void>::interval_type’ {aka ‘lib_interval_tree::interval<int, lib_interval_tree::closed>’} [build] 379 | node(node_type* parent, interval_type interval) [build] | ~~~~~~~~~~~~~~^~~~~~~~ [build] (...)/interval-tree/26a47086beff5cd25c72fab5acc709bac57b4494/include/interval-tree/interval_tree.hpp:353:11: note: candidate: ‘constexpr lib_interval_tree::node<int, lib_interval_tree::interval<int, lib_interval_tree::closed>, void>::node(const lib_interval_tree::node<int, lib_interval_tree::interval<int, lib_interval_tree::closed>, void>&)’ [build] 353 | class node [build] | ^~~~ [build] (...)/interval-tree/26a47086beff5cd25c72fab5acc709bac57b4494/include/interval-tree/interval_tree.hpp:353:11: note: candidate expects 1 argument, 2 provided
The move constructor and move assignment do not cause issues.
The text was updated successfully, but these errors were encountered:
I will take a look at this as soon as I am able.
Sorry, something went wrong.
This will be fixed in: #40 Embarrassing test gap that you found. I broke this somewhere around 2.X.Y
No branches or pull requests
Hello, thank you for creating this nice library.
I noticed that the copy constructor for the
interval_tree
causes a compiler error.I am using GCC 12.3 on x86_64-linux-gnu and CMake 3.28.2.
This code does not compile (copy assignment also doesn't):
This is the error I get:
The move constructor and move assignment do not cause issues.
The text was updated successfully, but these errors were encountered: