Ошибка clang++: неопределенная ссылка на оператор `==` красно-черных деревьев вC++

Программы на C++. Форум разработчиков
Anonymous
Ошибка clang++: неопределенная ссылка на оператор `==` красно-черных деревьев в

Сообщение Anonymous »

Я работаю над проектом C++, концентрируясь на модулях (это означает, что я, очевидно, использую стандарт C++20).
У меня есть std::set mySet< /code>, который я перебираю следующим образом:

Код: Выделить всё

class Fred {
public:
void foo() {
for (const auto& [x, y] : mySet) {
bar(x, y);
}
}
};
Все файлы .o, .pcm и .pch компилируются правильно, но когда дело доходит до связывания объектных файлов, возникает ошибка:

Код: Выделить всё

/usr/bin/ld: file.o: in function `file::Fred@file::foo() const':
file.pcm:(.text+0xfbc): undefined reference to `std::operator==(std::_Rb_tree_const_iterator const&, std::_Rb_tree_const_iterator const&)'
/usr/bin/ld: file.pcm:(.text+0x108f): undefined reference to `std::operator==(std::_Rb_tree_const_iterator const&, std::_Rb_tree_const_iterator const&)'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
На мой взгляд, оператор == не определен для красно-черных деревьев парных итераторов.
Я попробовал использовать свой собственный оператор == для этого набора, но он не сработал. Также не удалось импортировать все возможно необходимые модули.

Подробнее здесь: https://stackoverflow.com/questions/793 ... perator-in

Вернуться в «C++»