include <algorithm> for gcc 14 compilation errors#428
Merged
ZigRazor merged 3 commits intoZigRazor:masterfrom Jun 20, 2024
Merged
include <algorithm> for gcc 14 compilation errors#428ZigRazor merged 3 commits intoZigRazor:masterfrom
ZigRazor merged 3 commits intoZigRazor:masterfrom
Conversation
ZigRazor
requested changes
May 6, 2024
include/CXXGraph/Graph/Graph_decl.h
Outdated
| #include <unordered_map> | ||
| #include <unordered_set> | ||
| #include <utility> | ||
| #include <algorithm> |
Owner
There was a problem hiding this comment.
Why introduce <algorithm> in Graph_decl.h? Maybe is better introduce it when it is needed
nolankramer
requested changes
May 6, 2024
Collaborator
nolankramer
left a comment
There was a problem hiding this comment.
Please only #include <algorithm> in the *_impl.hpp files where it is needed.
Contributor
Author
|
@ZigRazor @nolankramer |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #428 +/- ##
==========================================
+ Coverage 97.58% 97.87% +0.28%
==========================================
Files 87 87
Lines 9492 10057 +565
Branches 0 666 +666
==========================================
+ Hits 9263 9843 +580
+ Misses 229 214 -15
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
nolankramer
approved these changes
May 13, 2024
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I met a lot of compilation errors on gcc 14:
It seems to be caused by a lack of including header.
This PR is fixed this problem.
Please review it.
CXXGraph 3.1.0 compilation errors on gcc 14
In file included from include/CXXGraph/Graph/Graph.h:23,
from include/CXXGraph/CXXGraph.hpp:11,
from test_package.cpp:3:
include/CXXGraph/Graph/Graph_impl.hpp: In member function ‘virtual void CXXGraph::Graph::setNodeData(const std::string&, T)’:
include/CXXGraph/Graph/Graph_impl.hpp:316:22: error: ‘find_if’ is not a member of ‘std’; did you mean ‘find’?
316 | auto nodeIt = std::find_if(
| ^~~~~~~
| find
include/CXXGraph/Graph/Graph_impl.hpp: In member function ‘virtual std::shared_ptr<std::vector<CXXGraph::Node > > CXXGraph::Graph::eulerianPath() const’:
include/CXXGraph/Graph/Graph_impl.hpp:465:27: error: ‘max_element’ is not a member of ‘std’; did you mean ‘tuple_element’?
465 | auto firstNodeIt = std::max_element(
| ^~~~~~~~~~~
| tuple_element
include/CXXGraph/Graph/Graph_impl.hpp: In member function ‘virtual const std::vector<CXXGraph::Node > CXXGraph::Graph::graph_slicing(const CXXGraph::Node&) const’:
include/CXXGraph/Graph/Graph_impl.hpp:775:29: error: ‘find_if’ is not a member of ‘std’; did you mean ‘find’?
775 | auto start_node_it = std::find_if(
| ^~~~~~~
| find
include/CXXGraph/Graph/Graph_impl.hpp:785:14: error: ‘find_if’ is not a member of ‘std’; did you mean ‘find’?
785 | if (std::find_if(C.begin(), C.end(), [node](const Node nodeC) {
| ^~~~~~~
| find
include/CXXGraph/Graph/Graph_impl.hpp:800:14: error: ‘find_if’ is not a member of ‘std’; did you mean ‘find’?
800 | if (std::find_if(M.begin(), M.end(), [nodeC](const Node nodeM) {
| ^~~~~~~
| find
In file included from include/CXXGraph/Graph/Graph.h:26:
include/CXXGraph/Graph/Algorithm/BellmanFord_impl.hpp: In member function ‘virtual const CXXGraph::BellmanFordResult CXXGraph::Graph::bellmanford(const CXXGraph::Node&, const CXXGraph::Node&) const’:
include/CXXGraph/Graph/Algorithm/BellmanFord_impl.hpp:36:30: error: ‘find_if’ is not a member of ‘std’; did you mean ‘find’?
36 | auto source_node_it = std::find_if(
| ^~~~~~~
| find
include/CXXGraph/Graph/Algorithm/BellmanFord_impl.hpp:44:30: error: ‘find_if’ is not a member of ‘std’; did you mean ‘find’?
44 | auto target_node_it = std::find_if(
| ^~~~~~~
| find
In file included from include/CXXGraph/Graph/Graph.h:27:
include/CXXGraph/Graph/Algorithm/BestFirstSearch_impl.hpp: In member function ‘virtual CXXGraph::BestFirstSearchResult CXXGraph::Graph::best_first_search(const CXXGraph::Node&, const CXXGraph::Node&) const’:
include/CXXGraph/Graph/Algorithm/BestFirstSearch_impl.hpp:40:30: error: ‘find_if’ is not a member of ‘std’; did you mean ‘find’?
40 | auto source_node_it = std::find_if(
| ^~~~~~~
| find
include/CXXGraph/Graph/Algorithm/BestFirstSearch_impl.hpp:48:30: error: ‘find_if’ is not a member of ‘std’; did you mean ‘find’?
48 | auto target_node_it = std::find_if(
| ^~~~~~~
| find
include/CXXGraph/Graph/Algorithm/BestFirstSearch_impl.hpp: In member function ‘virtual const std::vector<CXXGraph::Node > CXXGraph::Graph::concurrency_breadth_first_search(const CXXGraph::Node&, size_t) const’:
include/CXXGraph/Graph/Algorithm/BestFirstSearch_impl.hpp:111:29: error: ‘find_if’ is not a member of ‘std’; did you mean ‘find’?
111 | auto start_node_it = std::find_if(
| ^~~~~~~
| find
In file included from include/CXXGraph/Graph/Graph.h:29:
include/CXXGraph/Graph/Algorithm/BreadthFirstSearch_impl.hpp: In member function ‘virtual const std::vector<CXXGraph::Node > CXXGraph::Graph::breadth_first_search(const CXXGraph::Node&) const’:
include/CXXGraph/Graph/Algorithm/BreadthFirstSearch_impl.hpp:36:29: error: ‘find_if’ is not a member of ‘std’; did you mean ‘find’?
36 | auto start_node_it = std::find_if(
| ^~~~~~~
| find
In file included from include/CXXGraph/Graph/Graph.h:31:
include/CXXGraph/Graph/Algorithm/CycleDetection_impl.hpp: In member function ‘virtual bool CXXGraph::Graph::containsCycle(CXXGraph::T_EdgeSet*) const’:
include/CXXGraph/Graph/Algorithm/CycleDetection_impl.hpp:122:16: error: ‘find_if’ is not a member of ‘std’; did you mean ‘find’?
122 | if (std::find_if((*subset).begin(), (*subset).end(), nodeExists) ==
| ^~~~~~~
| find
include/CXXGraph/Graph/Algorithm/CycleDetection_impl.hpp: In member function ‘virtual bool CXXGraph::Graph::containsCycle(CXXGraph::shared<const std::unordered_set<std::shared_ptr<const CXXGraph::Edge >, CXXGraph::edgeHash > >) const’:
include/CXXGraph/Graph/Algorithm/CycleDetection_impl.hpp:148:16: error: ‘find_if’ is not a member of ‘std’; did you mean ‘find’?
148 | if (std::find_if((*subset).begin(), (*subset).end(), nodeExists) ==
| ^~~~~~~
| find
In file included from include/CXXGraph/Graph/Graph.h:32:
include/CXXGraph/Graph/Algorithm/DepthFirstSearch_impl.hpp: In member function ‘virtual const std::vector<CXXGraph::Node > CXXGraph::Graph::depth_first_search(const CXXGraph::Node&) const’:
include/CXXGraph/Graph/Algorithm/DepthFirstSearch_impl.hpp:36:29: error: ‘find_if’ is not a member of ‘std’; did you mean ‘find’?
36 | auto start_node_it = std::find_if(
| ^~~~~~~
| find
In file included from include/CXXGraph/Graph/Graph.h:33:
include/CXXGraph/Graph/Algorithm/Dial_impl.hpp: In member function ‘virtual const CXXGraph::DialResult CXXGraph::Graph::dial(const CXXGraph::Node&, int) const’:
include/CXXGraph/Graph/Algorithm/Dial_impl.hpp:36:30: error: ‘find_if’ is not a member of ‘std’; did you mean ‘find’?
36 | auto source_node_it = std::find_if(
| ^~~~~~~
| find
include/CXXGraph/Graph/Algorithm/Dial_impl.hpp:112:23: error: ‘find_if’ is not a member of ‘std’; did you mean ‘find’?
112 | auto u_i = std::find_if(
| ^~~~~~~
| find
include/CXXGraph/Graph/Algorithm/Dial_impl.hpp:119:23: error: ‘find_if’ is not a member of ‘std’; did you mean ‘find’?
119 | auto v_i = std::find_if(
| ^~~~~~~
| find
In file included from include/CXXGraph/Graph/Graph.h:34:
include/CXXGraph/Graph/Algorithm/Dijkstra_impl.hpp: In member function ‘virtual const CXXGraph::DijkstraResult CXXGraph::Graph::dijkstra(const CXXGraph::Node&, const CXXGraph::Node&) const’:
include/CXXGraph/Graph/Algorithm/Dijkstra_impl.hpp:34:30: error: ‘find_if’ is not a member of ‘std’; did you mean ‘find’?
34 | auto source_node_it = std::find_if(
| ^~~~~~~
| find
include/CXXGraph/Graph/Algorithm/Dijkstra_impl.hpp:43:30: error: ‘find_if’ is not a member of ‘std’; did you mean ‘find’?
43 | auto target_node_it = std::find_if(
| ^~~~~~~
| find
include/CXXGraph/Graph/Algorithm/Dijkstra_impl.hpp:145:10: error: ‘reverse’ is not a member of ‘std’
145 | std::reverse(result.path.begin(), result.path.end());
| ^~~~~~~
In file included from include/CXXGraph/Graph/Graph.h:36:
include/CXXGraph/Graph/Algorithm/FordFulkerson_impl.hpp: In member function ‘virtual double CXXGraph::Graph::fordFulkersonMaxFlow(const CXXGraph::Node&, const CXXGraph::Node&) const’:
include/CXXGraph/Graph/Algorithm/FordFulkerson_impl.hpp:61:32: error: ‘find_if’ is not a member of ‘std’; did you mean ‘find’?
61 | auto source_node_ptr = *std::find_if(
| ^~~~~~~
| find
include/CXXGraph/Graph/Algorithm/FordFulkerson_impl.hpp:64:32: error: ‘find_if’ is not a member of ‘std’; did you mean ‘find’?
64 | auto target_node_ptr = std::find_if(
| ^~~~~~~
| find
include/CXXGraph/Graph/Algorithm/FordFulkerson_impl.hpp: In lambda function:
include/CXXGraph/Graph/Algorithm/FordFulkerson_impl.hpp:72:16: error: ‘source_node_ptr’ is not captured
72 | queue.push(source_node_ptr);
| ^~~~~~~~~~~~~~~
include/CXXGraph/Graph/Algorithm/FordFulkerson_impl.hpp:69:32: note: the lambda has no capture-default
69 | &weightMap]() -> bool {
| ^
include/CXXGraph/Graph/Algorithm/FordFulkerson_impl.hpp:61:8: note: ‘source_node_ptr’ declared here
61 | auto source_node_ptr = std::find_if(
| ^~~~~~~~~~~~~~~
include/CXXGraph/Graph/Algorithm/FordFulkerson_impl.hpp:73:13: error: ‘source_node_ptr’ is not captured
73 | visited[source_node_ptr] = true;
| ^~~~~~~~~~~~~~~
include/CXXGraph/Graph/Algorithm/FordFulkerson_impl.hpp:69:32: note: the lambda has no capture-default
69 | &weightMap]() -> bool {
| ^
include/CXXGraph/Graph/Algorithm/FordFulkerson_impl.hpp:61:8: note: ‘source_node_ptr’ declared here
61 | auto source_node_ptr = std::find_if(
| ^~~~~~~~~~~~~~~
include/CXXGraph/Graph/Algorithm/FordFulkerson_impl.hpp:74:12: error: ‘source_node_ptr’ is not captured
74 | parent[source_node_ptr] = nullptr;
| ^~~~~~~~~~~~~~~
include/CXXGraph/Graph/Algorithm/FordFulkerson_impl.hpp:69:32: note: the lambda has no capture-default
69 | &weightMap]() -> bool {
| ^
include/CXXGraph/Graph/Algorithm/FordFulkerson_impl.hpp:61:8: note: ‘source_node_ptr’ declared here
61 | auto source_node_ptr = std::find_if(
| ^~~~~~~~~~~~~~~
include/CXXGraph/Graph/Algorithm/FordFulkerson_impl.hpp:87:21: error: ‘target_node_ptr’ is not captured
87 | return (visited[target_node_ptr]);
| ^~~~~~~~~~~~~~~
include/CXXGraph/Graph/Algorithm/FordFulkerson_impl.hpp:69:32: note: the lambda has no capture-default
69 | &weightMap]() -> bool {
| ^
include/CXXGraph/Graph/Algorithm/FordFulkerson_impl.hpp:64:8: note: ‘target_node_ptr’ declared here
64 | auto target_node_ptr = std::find_if(
| ^~~~~~~~~~~~~~~
In file included from include/CXXGraph/Graph/Graph.h:42:
include/CXXGraph/Graph/Algorithm/TopologicalSort_impl.hpp: In member function ‘virtual CXXGraph::TopoSortResult CXXGraph::Graph::topologicalSort() const’:
include/CXXGraph/Graph/Algorithm/TopologicalSort_impl.hpp:71:10: error: ‘reverse’ is not a member of ‘std’
71 | std::reverse(result.nodesInTopoOrder.begin(),
| ^~~~~~~
In file included from include/CXXGraph/Graph/Graph.h:47:
include/CXXGraph/Graph/IO/InputOperation_impl.hpp: In member function ‘int CXXGraph::Graph::readFromDot(const std::string&, const std::string&)’:
include/CXXGraph/Graph/IO/InputOperation_impl.hpp:310:42: error: cannot convert ‘std::__cxx11::basic_string::iterator’ to ‘const char’
310 | node2.erase(std::remove(node2.begin(), node2.end(), ' '), node2.end());
| ~~~~~~~~~~~^~
| |
| std::__cxx11::basic_string::iterator
In file included from /usr/include/c++/14/cstdio:42,
from /usr/include/c++/14/ext/string_conversions.h:45,
from /usr/include/c++/14/bits/basic_string.h:4154,
from /usr/include/c++/14/string:54,
from /usr/include/c++/14/bits/locale_classes.h:40,
from /usr/include/c++/14/bits/ios_base.h:41,
from /usr/include/c++/14/ios:44,
from /usr/include/c++/14/ostream:40,
from /usr/include/c++/14/bits/unique_ptr.h:43,
from /usr/include/c++/14/memory:78,
from test_package.cpp:1:
/usr/include/stdio.h:158:32: note: initializing argument 1 of ‘int remove(const char)’
158 | extern int remove (const char __filename) __THROW;
| ~~~~~~~~~~~~^~~~~~~~~~
include/CXXGraph/Graph/IO/InputOperation_impl.hpp:311:42: error: cannot convert ‘std::__cxx11::basic_string::iterator’ to ‘const char’
311 | node2.erase(std::remove(node2.begin(), node2.end(), '\t'), node2.end());
| ~~~~~~~~~~~^~
| |
| std::__cxx11::basic_string::iterator
/usr/include/stdio.h:158:32: note: initializing argument 1 of ‘int remove(const char)’
158 | extern int remove (const char __filename) __THROW;
| ~~~~~~~~~~~~^~~~~~~~~~
include/CXXGraph/Graph/IO/InputOperation_impl.hpp:317:44: error: cannot convert ‘std::__cxx11::basic_string::iterator’ to ‘const char’
317 | weight.erase(std::remove(weight.begin(), weight.end(), ' '),
| ~~~~~~~~~~~~^~
| |
| std::__cxx11::basic_string::iterator
/usr/include/stdio.h:158:32: note: initializing argument 1 of ‘int remove(const char)’
158 | extern int remove (const char __filename) __THROW;
| ~~~~~~~~~~~~^~~~~~~~~~
In file included from include/CXXGraph/Graph/Graph.h:48:
include/CXXGraph/Graph/IO/OutputOperation_impl.hpp: In member function ‘virtual int CXXGraph::Graph::writeToMTXFile(const std::string&, const std::string&, char) const’:
include/CXXGraph/Graph/IO/OutputOperation_impl.hpp:161:26: error: ‘any_of’ is not a member of ‘std’
161 | bool symmetric = !std::any_of(edgeSet.begin(), edgeSet.end(), [](auto edge) {
| ^~~~~~
In file included from include/CXXGraph/Graph/Graph.h:40:
include/CXXGraph/Graph/Algorithm/Prim_impl.hpp: In instantiation of ‘const CXXGraph::MstResult CXXGraph::Graph::prim() const [with T = int; CXXGraph::MstResult = CXXGraph::MstResult_struct]’:
include/CXXGraph/Graph/Algorithm/Prim_impl.hpp:30:17: required from here
include/CXXGraph/Graph/IO/OutputOperation_impl.hpp:161:26: error: 30 | const MstResult Graph::prim() const {
include/CXXGraph/Graph/IO/OutputOperation_impl.hpp:161:26: error: | ^~~~~~~~
include/CXXGraph/Graph/Algorithm/Prim_impl.hpp:75:18: error: no matching function for call to ‘find(std::vector::iterator, std::vector::iterator, long unsigned int&)’
75 | if (std::find(doneNode.begin(), doneNode.end(), nodeId) == doneNode.end()) {
| ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14/bits/locale_facets.h:48,
from /usr/include/c++/14/bits/basic_ios.h:37,
from /usr/include/c++/14/ios:46:
/usr/include/c++/14/bits/streambuf_iterator.h:435:5: note: candidate: ‘template typename __gnu_cxx::__enable_if<std::__is_char<_CharT2>::__value, std::istreambuf_iterator<_CharT, std::char_traits<_CharT> > >::__type std::find(istreambuf_iterator<_CharT, char_traits<_CharT> >, istreambuf_iterator<_CharT, char_traits<_CharT> >, const _CharT2&)’
435 | find(istreambuf_iterator<_CharT> __first,
| ^~~~
/usr/include/c++/14/bits/streambuf_iterator.h:435:5: note: template argument deduction/substitution failed:
include/CXXGraph/Graph/Algorithm/Prim_impl.hpp:75:18: note: ‘__gnu_cxx::__normal_iterator<long unsigned int, std::vector >’ is not derived from ‘std::istreambuf_iterator<_CharT, std::char_traits<_CharT> >’
75 | if (std::find(doneNode.begin(), doneNode.end(), nodeId) == doneNode.end()) {
| ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/CXXGraph/Graph/Algorithm/Prim_impl.hpp:94:25: error: no matching function for call to ‘find(std::vector::iterator, std::vector::iterator, const CXXGraph::id_t&)’
94 | (std::find(doneNode.begin(), doneNode.end(),
| ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
95 | elem.first->getId()) == doneNode.end())) {
| ~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/streambuf_iterator.h:435:5: note: candidate: ‘template typename __gnu_cxx::__enable_if<std::__is_char<_CharT2>::__value, std::istreambuf_iterator<_CharT, std::char_traits<_CharT> > >::__type std::find(istreambuf_iterator<_CharT, char_traits<_CharT> >, istreambuf_iterator<_CharT, char_traits<_CharT> >, const _CharT2&)’
435 | find(istreambuf_iterator<_CharT> __first,
| ^~~~
/usr/include/c++/14/bits/streambuf_iterator.h:435:5: note: template argument deduction/substitution failed:
include/CXXGraph/Graph/Algorithm/Prim_impl.hpp:94:25: note: ‘__gnu_cxx::__normal_iterator<long unsigned int, std::vector >’ is not derived from ‘std::istreambuf_iterator<_CharT, std::char_traits<_CharT> >’
94 | (std::find(doneNode.begin(), doneNode.end(),
| ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
95 | elem.first->getId()) == doneNode.end())) {
| ~~~~~~~~~~~~~~~~~~~~
include/CXXGraph/Graph/Algorithm/BestFirstSearch_impl.hpp: In instantiation of ‘CXXGraph::BestFirstSearchResult CXXGraph::Graph::best_first_search(const CXXGraph::Node&, const CXXGraph::Node&) const [with T = int; CXXGraph::BestFirstSearchResult = CXXGraph::BestFirstSearchResult_struct]’:
include/CXXGraph/Graph/Algorithm/BestFirstSearch_impl.hpp:34:26: required from here
include/CXXGraph/Graph/Algorithm/Prim_impl.hpp:94:25: note: 34 | BestFirstSearchResult Graph::best_first_search(
include/CXXGraph/Graph/Algorithm/Prim_impl.hpp:94:25: note: | ^~~~~~~~
include/CXXGraph/Graph/Algorithm/BestFirstSearch_impl.hpp:77:26: error: no matching function for call to ‘find(std::vector<CXXGraph::Node, std::allocator<CXXGraph::Node > >::iterator, std::vector<CXXGraph::Node, std::allocator<CXXGraph::Node > >::iterator, std::__shared_ptr_access<const CXXGraph::Node, __gnu_cxx::_S_atomic, false, false>::element_type&)’
77 | if (std::find(visited.begin(), visited.end(), (elem.first)) ==
| ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/streambuf_iterator.h:435:5: note: candidate: ‘template typename __gnu_cxx::__enable_if<std::__is_char<_CharT2>::__value, std::istreambuf_iterator<_CharT, std::char_traits<_CharT> > >::__type std::find(istreambuf_iterator<_CharT, char_traits<_CharT> >, istreambuf_iterator<_CharT, char_traits<_CharT> >, const _CharT2&)’
435 | find(istreambuf_iterator<_CharT> __first,
| ^~~~
/usr/include/c++/14/bits/streambuf_iterator.h:435:5: note: template argument deduction/substitution failed:
include/CXXGraph/Graph/Algorithm/BestFirstSearch_impl.hpp:77:26: note: ‘__gnu_cxx::__normal_iterator<CXXGraph::Node, std::vector<CXXGraph::Node, std::allocator<CXXGraph::Node > > >’ is not derived from ‘std::istreambuf_iterator<_CharT, std::char_traits<_CharT> >’
77 | if (std::find(visited.begin(), visited.end(), *(elem.first)) ==
| ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/CXXGraph/Graph/Algorithm/BestFirstSearch_impl.hpp:86:26: error: no matching function for call to ‘find(std::vector<CXXGraph::Node, std::allocator<CXXGraph::Node > >::iterator, std::vector<CXXGraph::Node, std::allocator<CXXGraph::Node > >::iterator, std::__shared_ptr_access<const CXXGraph::Node, __gnu_cxx::_S_atomic, false, false>::element_type&)’
86 | if (std::find(visited.begin(), visited.end(), (elem.first)) ==
| ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/streambuf_iterator.h:435:5: note: candidate: ‘template typename __gnu_cxx::__enable_if<std::__is_char<_CharT2>::__value, std::istreambuf_iterator<_CharT, std::char_traits<_CharT> > >::__type std::find(istreambuf_iterator<_CharT, char_traits<_CharT> >, istreambuf_iterator<_CharT, char_traits<_CharT> >, const _CharT2&)’
435 | find(istreambuf_iterator<_CharT> __first,
| ^~~~
/usr/include/c++/14/bits/streambuf_iterator.h:435:5: note: template argument deduction/substitution failed:
include/CXXGraph/Graph/Algorithm/BestFirstSearch_impl.hpp:86:26: note: ‘__gnu_cxx::__normal_iterator<CXXGraph::Node, std::vector<CXXGraph::Node, std::allocator<CXXGraph::Node > > >’ is not derived from ‘std::istreambuf_iterator<_CharT, std::char_traits<_CharT> >’
86 | if (std::find(visited.begin(), visited.end(), *(elem.first)) ==
| ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/CXXGraph/Graph/Algorithm/BreadthFirstSearch_impl.hpp: In instantiation of ‘const std::vector<CXXGraph::Node > CXXGraph::Graph::breadth_first_search(const CXXGraph::Node&) const [with T = int]’:
include/CXXGraph/Graph/Algorithm/BreadthFirstSearch_impl.hpp:30:28: required from here
include/CXXGraph/Graph/Algorithm/BestFirstSearch_impl.hpp:86:26: note: 30 | const std::vector<Node> Graph::breadth_first_search(
include/CXXGraph/Graph/Algorithm/BestFirstSearch_impl.hpp:86:26: note: | ^~~~~~~~
include/CXXGraph/Graph/Algorithm/BreadthFirstSearch_impl.hpp:55:22: error: no matching function for call to ‘find(std::vector<CXXGraph::Node, std::allocator<CXXGraph::Node > >::iterator, std::vector<CXXGraph::Node, std::allocator<CXXGraph::Node > >::iterator, std::__shared_ptr_access<const CXXGraph::Node, __gnu_cxx::_S_atomic, false, false>::element_type&)’
55 | if (std::find(visited.begin(), visited.end(), (elem.first)) ==
| ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/streambuf_iterator.h:435:5: note: candidate: ‘template typename __gnu_cxx::__enable_if<std::__is_char<_CharT2>::__value, std::istreambuf_iterator<_CharT, std::char_traits<_CharT> > >::__type std::find(istreambuf_iterator<_CharT, char_traits<_CharT> >, istreambuf_iterator<_CharT, char_traits<_CharT> >, const _CharT2&)’
435 | find(istreambuf_iterator<_CharT> __first,
| ^~~~
/usr/include/c++/14/bits/streambuf_iterator.h:435:5: note: template argument deduction/substitution failed:
include/CXXGraph/Graph/Algorithm/BreadthFirstSearch_impl.hpp:55:22: note: ‘__gnu_cxx::__normal_iterator<CXXGraph::Node, std::vector<CXXGraph::Node, std::allocator<CXXGraph::Node > > >’ is not derived from ‘std::istreambuf_iterator<_CharT, std::char_traits<_CharT> >’
55 | if (std::find(visited.begin(), visited.end(), *(elem.first)) ==
| ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/CXXGraph/Graph/Algorithm/DepthFirstSearch_impl.hpp: In instantiation of ‘const std::vector<CXXGraph::Node > CXXGraph::Graph::depth_first_search(const CXXGraph::Node&) const [with T = int]’:
include/CXXGraph/Graph/Algorithm/DepthFirstSearch_impl.hpp:30:28: required from here
include/CXXGraph/Graph/Algorithm/BreadthFirstSearch_impl.hpp:55:22: note: 30 | const std::vector<Node> Graph::depth_first_search(
include/CXXGraph/Graph/Algorithm/BreadthFirstSearch_impl.hpp:55:22: note: | ^~~~~~~~
include/CXXGraph/Graph/Algorithm/DepthFirstSearch_impl.hpp:51:22: error: no matching function for call to ‘find(std::vector<CXXGraph::Node, std::allocator<CXXGraph::Node > >::iterator, std::vector<CXXGraph::Node, std::allocator<CXXGraph::Node > >::iterator, std::__shared_ptr_access<const CXXGraph::Node, __gnu_cxx::_S_atomic, false, false>::element_type&)’
51 | if (std::find(visited.begin(), visited.end(), (x.first)) ==
| ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/streambuf_iterator.h:435:5: note: candidate: ‘template typename __gnu_cxx::__enable_if<std::__is_char<_CharT2>::__value, std::istreambuf_iterator<_CharT, std::char_traits<_CharT> > >::__type std::find(istreambuf_iterator<_CharT, char_traits<_CharT> >, istreambuf_iterator<_CharT, char_traits<_CharT> >, const _CharT2&)’
435 | find(istreambuf_iterator<_CharT> __first,
| ^~~~
/usr/include/c++/14/bits/streambuf_iterator.h:435:5: note: template argument deduction/substitution failed:
include/CXXGraph/Graph/Algorithm/DepthFirstSearch_impl.hpp:51:22: note: ‘__gnu_cxx::__normal_iterator<CXXGraph::Node, std::vector<CXXGraph::Node, std::allocator<CXXGraph::Node > > >’ is not derived from ‘std::istreambuf_iterator<_CharT, std::char_traits<_CharT> >’
51 | if (std::find(visited.begin(), visited.end(), (x.first)) ==
| ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/CXXGraph/Graph/Algorithm/Dial_impl.hpp: In instantiation of ‘const CXXGraph::DialResult CXXGraph::Graph::dial(const CXXGraph::Node&, int) const [with T = int; CXXGraph::DialResult = CXXGraph::DialResult_struct]’:
include/CXXGraph/Graph/Algorithm/Dial_impl.hpp:30:18: required from here
include/CXXGraph/Graph/Algorithm/DepthFirstSearch_impl.hpp:51:22: note: 30 | const DialResult Graph::dial(const Node &source, int maxWeight) const {
include/CXXGraph/Graph/Algorithm/DepthFirstSearch_impl.hpp:51:22: note: | ^~~~~~~~
include/CXXGraph/Graph/Algorithm/Dial_impl.hpp:134:36: error: no matching function for call to ‘find(std::deque<std::shared_ptr<const CXXGraph::Node >, std::allocator<std::shared_ptr<const CXXGraph::Node > > >::iterator, std::deque<std::shared_ptr<const CXXGraph::Node >, std::allocator<std::shared_ptr<const CXXGraph::Node > > >::iterator, std::shared_ptr<const CXXGraph::Node >&)’
134 | auto findIter = std::find(B[dv].begin(), B[dv].end(), dist[v].second);
| ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/streambuf_iterator.h:435:5: note: candidate: ‘template typename __gnu_cxx::__enable_if<std::__is_char<_CharT2>::__value, std::istreambuf_iterator<_CharT, std::char_traits<_CharT> > >::__type std::find(istreambuf_iterator<_CharT, char_traits<_CharT> >, istreambuf_iterator<_CharT, char_traits<_CharT> >, const _CharT2&)’
435 | find(istreambuf_iterator<_CharT> __first,
| ^~~~
/usr/include/c++/14/bits/streambuf_iterator.h:435:5: note: template argument deduction/substitution failed:
include/CXXGraph/Graph/Algorithm/Dial_impl.hpp:134:36: note: ‘std::_Deque_iterator<std::shared_ptr<const CXXGraph::Node >, std::shared_ptr<const CXXGraph::Node >&, std::shared_ptr<const CXXGraph::Node >>’ is not derived from ‘std::istreambuf_iterator<_CharT, std::char_traits<_CharT> >’
134 | auto findIter = std::find(B[dv].begin(), B[dv].end(), dist[v].second);
| ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~