История изменений
Исправление KennyMinigun, (текущая версия) :
[humor]
Я еще вот семантику придумал: https://wandbox.org/permlink/Jcy2VrOaIoFhV3cw
template <typename Key, typename T, typename... Others>
class MyMap : public std::map<Key, T, Others...> {
public:
using ParentType = std::map<Key, T, Others...>;
using ParentType::ParentType;
T&& operator==(const Key &key) {
auto node = ParentType::extract(key);
if (node.empty())
throw std::out_of_range("no such key");
return std::move(node.mapped());
}
};
// оператор "труба" -- "вытягивает" елемент из контейнера
std::string two = map == 2;
[/humor]
Исходная версия KennyMinigun, :
Я еще вот семантику придумал: https://wandbox.org/permlink/Jcy2VrOaIoFhV3cw
template <typename Key, typename T, typename... Others>
class MyMap : public std::map<Key, T, Others...> {
public:
using ParentType = std::map<Key, T, Others...>;
using ParentType::ParentType;
T&& operator==(const Key &key) {
auto node = ParentType::extract(key);
if (node.empty())
throw std::out_of_range("no such key");
return std::move(node.mapped());
}
};
// оператор "труба" -- "вытягивает" елемент из контейнера
std::string two = map == 2;