From 025b91baca170c82184ab99d042ec1db43ceeb31 Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Mon, 10 Oct 2016 23:44:18 +0100 Subject: [PATCH] Convert some uses of lambda to more concise std::mem_fn --- src/alias_registry.cc | 2 +- src/buffer_manager.cc | 1 - src/command_manager.cc | 7 +++---- src/commands.cc | 5 +++-- src/containers.hh | 4 ++-- src/face_registry.cc | 3 +-- src/option_types.hh | 2 +- src/shell_manager.cc | 5 ++--- 8 files changed, 13 insertions(+), 16 deletions(-) diff --git a/src/alias_registry.cc b/src/alias_registry.cc index 690cde54..2822c6c0 100644 --- a/src/alias_registry.cc +++ b/src/alias_registry.cc @@ -57,7 +57,7 @@ Vector> AliasRegistry::flatten_aliases() const res = m_parent->flatten_aliases(); for (auto& alias : m_aliases) { - if (not contains(res | transform([](const AliasDesc& val) { return val.first; }), alias.key)) + if (not contains(res | transform(std::mem_fn(&AliasDesc::first)), alias.key)) res.emplace_back(alias.key, alias.value); } return res; diff --git a/src/buffer_manager.cc b/src/buffer_manager.cc index 79546d53..03f2424e 100644 --- a/src/buffer_manager.cc +++ b/src/buffer_manager.cc @@ -54,7 +54,6 @@ void BufferManager::delete_buffer(Buffer& buffer) { return p.get() == &buffer; }); kak_assert(it != m_buffers.end()); - ClientManager::instance().ensure_no_client_uses_buffer(buffer); m_buffer_trash.emplace_back(std::move(*it)); diff --git a/src/command_manager.cc b/src/command_manager.cc index 6f78f686..9f33ea34 100644 --- a/src/command_manager.cc +++ b/src/command_manager.cc @@ -531,16 +531,15 @@ Completions CommandManager::complete_command_name(const Context& context, { auto commands = m_commands | filter([](const CommandMap::value_type& cmd) { return not (cmd.second.flags & CommandFlags::Hidden); }) - | transform([](const CommandMap::value_type& cmd) { return StringView{cmd.first}; }); + | transform(std::mem_fn(&CommandMap::value_type::first)); if (not with_aliases) return {0, query.length(), Kakoune::complete(query, query.length(), commands)}; auto candidates = Kakoune::complete(query, query.length(), concatenated(commands, - context.aliases().flatten_aliases() - | transform([](AliasRegistry::AliasDesc alias) - { return alias.first; }))); + context.aliases().flatten_aliases() | + transform(std::mem_fn(&AliasRegistry::AliasDesc::first)))); return {0, query.length(), std::move(candidates)}; } diff --git a/src/commands.cc b/src/commands.cc index a4356fa7..9cf2a75d 100644 --- a/src/commands.cc +++ b/src/commands.cc @@ -25,6 +25,8 @@ #include "string.hh" #include "window.hh" +#include + #include #include #include @@ -1508,8 +1510,7 @@ void context_wrap(const ParametersParser& parser, Context& context, Func func) // copy buffer list as we might be mutating the buffer list // in the loop. auto ptrs = BufferManager::instance() | - transform([](const std::unique_ptr& ptr) - { return ptr.get(); }); + transform(std::mem_fn(&std::unique_ptr::get)); Vector> buffers{ptrs.begin(), ptrs.end()}; for (auto buffer : buffers) context_wrap_for_buffer(*buffer); diff --git a/src/containers.hh b/src/containers.hh index 675a7fb5..321a075d 100644 --- a/src/containers.hh +++ b/src/containers.hh @@ -254,7 +254,7 @@ struct ConcatView { using ContainerIt1 = decltype(begin(std::declval())); using ContainerIt2 = decltype(begin(std::declval())); - using ValueType = typename ContainerIt1::value_type; + using ValueType = typename std::common_type::type; struct Iterator : std::iterator { @@ -265,7 +265,7 @@ struct ConcatView : m_it1(std::move(it1)), m_end1(std::move(end1)), m_it2(std::move(it2)) {} - decltype(*std::declval()) operator*() { return is2() ? *m_it2 : *m_it1; } + ValueType operator*() { return is2() ? *m_it2 : *m_it1; } Iterator& operator++() { if (is2()) ++m_it2; else ++m_it1; return *this; } Iterator operator++(int) { auto copy = *this; ++*this; return copy; } diff --git a/src/face_registry.cc b/src/face_registry.cc index a8fd0d8a..8fb95a56 100644 --- a/src/face_registry.cc +++ b/src/face_registry.cc @@ -95,8 +95,7 @@ CandidateList FaceRegistry::complete_alias_name(StringView prefix, ByteCount cursor_pos) const { return complete(prefix, cursor_pos, - m_aliases | transform([](const AliasMap::value_type& v) -> const String& - { return v.first; })); + m_aliases | transform(std::mem_fn(&AliasMap::value_type::first))); } FaceRegistry::FaceRegistry() diff --git a/src/option_types.hh b/src/option_types.hh index 21f2acda..a37f37f3 100644 --- a/src/option_types.hh +++ b/src/option_types.hh @@ -32,7 +32,7 @@ struct option_type_name::value> { constexpr StringView type = WithBitOps::value ? "flags" : "enum"; auto name = enum_desc(Enum{}); - return type + "(" + join(name | transform([](const EnumDesc& d) { return d.name; }), '|') + ")"; + return type + "(" + join(name | transform(std::mem_fn(&EnumDesc::name)), '|') + ")"; } }; diff --git a/src/shell_manager.cc b/src/shell_manager.cc index 01ff1db2..c0943528 100644 --- a/src/shell_manager.cc +++ b/src/shell_manager.cc @@ -235,9 +235,8 @@ String ShellManager::get_val(StringView name, const Context& context) const CandidateList ShellManager::complete_env_var(StringView prefix, ByteCount cursor_pos) const { - return complete(prefix, cursor_pos, m_env_vars | - transform([](const EnvVarDesc& desc) -> const String& - { return desc.str; })); + return complete(prefix, cursor_pos, + m_env_vars | transform(std::mem_fn(&EnvVarDesc::str))); } }