Tenho o seguinte código:
#include <fmt/core.h>
template <typename ...T>
void func( const fmt::format_string<T...>& str, T&& ...args )
{
auto _ = fmt::format( str, args... );
}
int main()
{
func( "foo {}", 3 );
}
(Veja aqui um exemplo ao vivo)
Isso compila e funciona da maneira que eu espero se eu usar --std=c++17
; no entanto, não compila se eu usar --std=c++20
. Especificamente, eu recebo este erro:
consteval fmt::v10::basic_format_string<Char, Args>::basic_format_string(const S&) ... (com S= e um monte de akas) ... em expressão constante
Qual é a diferença em C++20 que faz com que isso quebre? Como posso consertar esse código para estar em conformidade com C++20?
Estou usando fmt v10.0.0
.