Open tudor opened 3 years ago
The calling code is
auto it = nodes_.find(nodeId);
if (it != nodes_.end()) {
return it->second;
}
in a non-const method, so nodes_
is a non-const reference to F14FastMap<string, NodeInfo, folly::transparent<folly::hasher<folly::StringPiece>>, folly::transparent<std::equal_to<folly::StringPiece>>>
version of the code where the line numbers are correct: https://github.com/facebook/folly/blame/e741d8efa0052df83c187331745dd4441c693fcb/folly/container/detail/F14Policy.h#L939
I suspect that this is because C++20 now adds more operators to the candidate set, and they all have to go through the
VectorContainerIterator<ValuePtr>
->VectorContainerIterator<ValueConstPtr>
conversion, which makes them ambiguous, in a way similar to https://stackoverflow.com/questions/60568088/breaking-change-in-c20-or-regression-in-clang-trunk-gcc-trunk-when-overloading