From: Casey Bodley Date: Wed, 12 Jul 2023 17:30:28 +0000 (-0400) Subject: osd: qualify fmt::format_to() for gcc13 X-Git-Tag: v19.0.0~895^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=b92e3a76f4e04ee9aec0961489b6098bae6895f9;p=ceph.git osd: qualify fmt::format_to() for gcc13 /home/cbodley/ceph/src/osd/scheduler/OpSchedulerItem.h:672:21: error: call of overloaded ‘format_to(fmt::v9::basic_format_context::it erator, const char [59], const spg_t&, std::string, class_t, unsigned int, const std::__cxx11::basic_string&, int, epoch_t, const std::__cxx11::basic_st ring&)’ is ambiguous 672 | return format_to( | ~~~~~~~~~^ 673 | ctx.out(), "OpSchedulerItem({} {} class_id {} prio {}{} cost {} e{}{})", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | opsi.get_ordering_token(), opsi.qitem->print(), | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 675 | static_cast(opsi.get_scheduler_class()), opsi.get_priority(), | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 676 | qos_cost, opsi.get_cost(), opsi.get_map_epoch(), pushes); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/cbodley/ceph/src/fmt/include/fmt/core.h:3233:17: note: candidate: ‘OutputIt fmt::v9::format_to(OutputIt, format_string, T&& ...) [with OutputIt = appender; T = {const spg_t&, std::__cxx11::basic_string, std::allocator >, unsigned char, unsigned int, const std::__cxx11 ::basic_string, std::allocator >&, int, unsigned int, const std::__cxx11::basic_string, std::a llocator >&}; typename std::enable_if::value, int>::type = 0; format_string = basic_format _string, std::allocator >, unsigned char, unsigned int, const std::__cxx11:: basic_string, std::allocator >&, int, unsigned int, const std::__cxx11::basic_string, std::all ocator >&>]’ 3233 | FMT_INLINE auto format_to(OutputIt out, format_string fmt, T&&... args) | ^~~~~~~~~ /usr/include/c++/13/format:3745:5: note: candidate: ‘_Out std::format_to(_Out, format_string<_Args ...>, _Args&& ...) [with _Out = fmt::v9::appender; _Args = {const spg_t&, __cxx11::basic_string, allocator >, unsigned char, unsigned int, const __cxx11::basic_string, allocator >&, int, unsigned int, const __cxx11::basic_string, allocator >&}; format_string<_Args ...> = basic_format_ string, allocator >, unsigned char, unsigned int, const __cxx11::basic_string, allocator >&, int, unsigned int, const __cxx11::basic_string, allocator >&>]’ 3745 | format_to(_Out __out, format_string<_Args...> __fmt, _Args&&... __args) | ^~~~~~~~~ Fixes: https://tracker.ceph.com/issues/61975 Signed-off-by: Casey Bodley --- diff --git a/src/osd/scheduler/OpSchedulerItem.h b/src/osd/scheduler/OpSchedulerItem.h index 286e23f534519..3222901dc7064 100644 --- a/src/osd/scheduler/OpSchedulerItem.h +++ b/src/osd/scheduler/OpSchedulerItem.h @@ -669,7 +669,7 @@ struct fmt::formatter { ? fmt::format(" reserved_pushes {}", opsi.get_reserved_pushes()) : ""; - return format_to( + return fmt::format_to( ctx.out(), "OpSchedulerItem({} {} class_id {} prio {}{} cost {} e{}{})", opsi.get_ordering_token(), opsi.qitem->print(), static_cast(opsi.get_scheduler_class()), opsi.get_priority(),