「ここからインスタンス化された」問題に関するスレッドがたくさん見つかりました。彼らはすべて、デフォルトのコンストラクタを忘れて作成した人々のようでした。私の問題は違うと思います (ただし、私は C++ に不慣れで、同じ問題のわずかなバリエーションである可能性があり、解決策を実装する方法がわかりません)。
セットに挿入しようとしていますが、そこからインスタンス化されているようです。そして、それはエラーを投げています。
class Node{
public:
bool operator <(const Node& other){
return id < other.id;
}
class Graph {
public:
int poner;
map<string, Node> nodeMap;
set<Node> reachables;
void DepthFirstSearch(Node node){
reachables.clear(); //fine at this point
poner = 0;
DFS(node);
}
private:
void DFS(Node node){
reachables.insert(node); //instantiated from here
}
};
Node.h:131:25: instantiated from here
c:\..... errir: passing 'const Node' as 'this' argument of 'bool Node::operator<(const Node&)' discards qualifiers [-fpermissive]
どんな助けでも大歓迎です。