https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110739
Bug ID: 110739
Summary: std::format for chrono types compiles very slowly
Product: gcc
Version: 13.1.1
Status: UNCONFIRMED
Keywords: compile-time-hog
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: redi at gcc dot gnu.org
Target Milestone: ---
Some of the compilation overhead is unavoidable, because we need to parse the
format string during constant evaluation.
But as it says in this comment in bits/chrono_io.h:
// TODO this function template is instantiated for every different _Tp.
// Consider creating a polymorphic interface for calendar types so
// that we instantiate fewer different specializations. Similar to
// _Sink_iter for std::format. Replace each _S_year, _S_day etc. with
// member functions of that type.
template<typename _Tp, typename _FormatContext>
typename _FormatContext::iterator
_M_format(const _Tp& __t, _FormatContext& __fc,
bool __is_neg = false) const