Вы можете сделать это:
bool operator<(const ipv4address& left, const ipv4address& right) {
return left.TODO < right.TODO;
}
TODO есть, потому что я не знаю, какие члены вашего ipv4address, но я уверен, что вы можете понять эту часть. Если при сравнении необходимо учитывать несколько членов (например, если вы храните ipv4address как четыре отдельных октета), используйте std :: t ie:
bool operator<(const ipv4address& left, const ipv4address& right) {
return std::tie(left.o1, left.o2, left.o3, left.o4)
< std::tie(right.o1, right.o2, right.o3, right.o4);
}
Это означает, что «если left.o1 меньше правого .o1, left is less than right "и т. д.
В любом случае оператор должен быть объявлен до объявления вашего std::set<ipv4address>
.