Равенство по умолчанию в C++
Проверка на равенство для агрегата с несколькими полями оформляется как operator== = default без ручного перебора членов.
Стандарт сравнивает каждое поле попарно;
результат истинен только при полном
совпадении. Запишем Label с целым
и строкой и выведем ==:
#include <iostream>
#include <string>
struct Label {
int code;
std::string text;
bool operator==(const Label&) const = default;
};
int main() {
Label left{7, "ok"};
Label right{7, "ok"};
std::cout << (left == right) << "\n";
return 0;
}
Объявите struct Version с двумя
int: major и minor.
Включите operator== как = default.
Сравните две одинаковые версии и выведите
результат.
Для Version{1, 0} и Version{1, 1}
выведите результат ==.