From f29b59dcf1d7995295b7be3a0df796510785887c Mon Sep 17 00:00:00 2001 From: levlam Date: Wed, 7 Mar 2018 15:46:58 +0300 Subject: [PATCH] Simplify Enumerator. GitOrigin-RevId: e894e2f87ab773cfb775821974f7a264fe88c594 --- tdutils/td/utils/Enumerator.h | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/tdutils/td/utils/Enumerator.h b/tdutils/td/utils/Enumerator.h index cf7e578eb..ca7c0493f 100644 --- a/tdutils/td/utils/Enumerator.h +++ b/tdutils/td/utils/Enumerator.h @@ -11,7 +11,7 @@ #include "td/utils/misc.h" #include -#include +#include namespace td { @@ -24,20 +24,17 @@ class Enumerator { int32 next_id = narrow_cast(arr_.size() + 1); bool was_inserted; decltype(map_.begin()) it; - std::tie(it, was_inserted) = map_.insert(std::make_pair(std::move(v), next_id)); + std::tie(it, was_inserted) = map_.emplace(std::move(v), next_id); if (was_inserted) { arr_.push_back(&it->first); } return it->second; } - //ValueT &get(Key key) { - //CHECK(key != 0); - //return *arr_[narrow_cast(key - 1)]; - //} const ValueT &get(Key key) const { - CHECK(key != 0); - return *arr_[narrow_cast(key - 1)]; + auto pos = static_cast(key - 1); + CHECK(pos < arr_.size()); + return *arr_[pos]; } private: