This commit is contained in:
Amaury Chamayou 2021-08-04 14:59:09 +01:00 коммит произвёл GitHub
Родитель 5071cb4441
Коммит 8fb7d74990
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
3 изменённых файлов: 7 добавлений и 11 удалений

Просмотреть файл

@ -74,4 +74,4 @@ function(add_warning_checks name)
) )
endfunction() endfunction()
set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD 20)

Просмотреть файл

@ -580,8 +580,6 @@ namespace kv
using NamedHandleMixin::NamedHandleMixin; using NamedHandleMixin::NamedHandleMixin;
virtual ~AbstractMap() {} virtual ~AbstractMap() {}
virtual bool operator==(const AbstractMap& that) const = 0;
virtual bool operator!=(const AbstractMap& that) const = 0;
virtual std::unique_ptr<AbstractCommitter> create_committer( virtual std::unique_ptr<AbstractCommitter> create_committer(
AbstractChangeSet* changes) = 0; AbstractChangeSet* changes) = 0;

Просмотреть файл

@ -653,17 +653,13 @@ namespace kv::untyped
return replicated; return replicated;
} }
bool operator==(const AbstractMap& that) const override bool operator==(const Map& that) const
{ {
auto p = dynamic_cast<const Map*>(&that); if (name != that.name)
if (p == nullptr)
return false;
if (name != p->name)
return false; return false;
auto state1 = roll.commits->get_tail(); auto state1 = roll.commits->get_tail();
auto state2 = p->roll.commits->get_tail(); auto state2 = that.roll.commits->get_tail();
if (state1->version != state2->version) if (state1->version != state2->version)
return false; return false;
@ -706,10 +702,12 @@ namespace kv::untyped
return ok; return ok;
} }
bool operator!=(const AbstractMap& that) const override #ifndef __cpp_impl_three_way_comparison
bool operator!=(const Map& that) const
{ {
return !(*this == that); return !(*this == that);
} }
#endif
std::unique_ptr<AbstractMap::Snapshot> snapshot(Version v) override std::unique_ptr<AbstractMap::Snapshot> snapshot(Version v) override
{ {