From bbb1574eabf0945a626aeeb44ceb3dbb24d4391e Mon Sep 17 00:00:00 2001 From: Casey Bodley Date: Mon, 14 Feb 2022 17:58:05 -0500 Subject: [PATCH] mgr: use constexpr string_view as input to format() resolves a c++20 compilation error with clang13: ceph/src/mgr/Mgr.cc:602:42: error: call to consteval function 'fmt::basic_format_string &>::basic_format_string' is not a constant expression monc->start_mon_command({fmt::format(cmd, name)}, {}, ^ ceph/src/fmt/include/fmt/core.h:2839:56: note: read of non-constexpr variable 'cmd' is not allowed in a constant expression FMT_CONSTEVAL basic_format_string(const S& s) : str_(s) { ^ ceph/src/mgr/Mgr.cc:602:42: note: in call to 'basic_format_string(cmd)' monc->start_mon_command({fmt::format(cmd, name)}, {}, ^ ceph/src/mgr/Mgr.cc:601:17: note: declared here const char* cmd = R"({{"prefix": "mon metadata", "id": "{}"}})"; ^ Signed-off-by: Casey Bodley --- src/mgr/Mgr.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mgr/Mgr.cc b/src/mgr/Mgr.cc index d7aebd8fcec..32c92466bbc 100644 --- a/src/mgr/Mgr.cc +++ b/src/mgr/Mgr.cc @@ -598,7 +598,7 @@ void Mgr::handle_mon_map() continue; } auto c = new MetadataUpdate(daemon_state, k); - const char* cmd = R"({{"prefix": "mon metadata", "id": "{}"}})"; + constexpr std::string_view cmd = R"({{"prefix": "mon metadata", "id": "{}"}})"; monc->start_mon_command({fmt::format(cmd, name)}, {}, &c->outbl, &c->outs, c); } -- 2.39.5