From 04595054d80ae982cb31e8327a2f890ea003badf Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Fri, 7 Feb 2020 13:55:19 -0800 Subject: [PATCH] ircd::json: Fix member constructor template. --- include/ircd/json/member.h | 23 +++++++++++++++++------ ircd/json.cc | 9 --------- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/include/ircd/json/member.h b/include/ircd/json/member.h index d6af0f595..93ab64aa9 100644 --- a/include/ircd/json/member.h +++ b/include/ircd/json/member.h @@ -44,20 +44,31 @@ namespace ircd::json struct ircd::json::member :std::pair { - member(const string_view &key, value &&); - template member(const string_view &key, V&&); explicit member(const string_view &k); explicit member(const object::member &m); + template member(K&&, V&&); + template member(K&&, value); member() = default; }; -template +template inline __attribute__((always_inline)) -ircd::json::member::member(const string_view &key, +ircd::json::member::member(K&& k, V&& v) -:member +:std::pair { - key, value { std::forward(v) } + value { std::forward(k), json::STRING }, value { std::forward(v) } +} +{} + +template +inline __attribute__((always_inline)) +ircd::json::member::member(K&& k, + value v) +:std::pair +{ + value { std::forward(k), json::STRING }, std::move(v) } {} diff --git a/ircd/json.cc b/ircd/json.cc index 3e181173f..91215e804 100644 --- a/ircd/json.cc +++ b/ircd/json.cc @@ -3136,15 +3136,6 @@ ircd::json::operator>(const array::const_iterator &a, const array::const_iterato // json/member.h // -ircd::json::member::member(const string_view &key, - value &&v) -:std::pair -{ - { key, json::STRING }, std::move(v) -} -{ -} - ircd::string_view ircd::json::stringify(mutable_buffer &buf, const members &list)