下面是代码
m_state.script_file(
( std::filesystem::path{ xorstr_( "magma/luas" ) } /= name ).string( ),
[ & ] ( lua_State* const state, sol::protected_function_result result ) {
if ( !result.valid( ) )
valve::g_cvar->con_print( false, 0xff0000ffu,
std::format( xorstr_( "can't load {}, reason: {}.\n" ), name, sol::error{ result }.what( ) ).data( )
);
return result;
}
);
错误消息
call to consteval function 'std::basic_format_string<char, const std::basic_string<char> &, const char *>::basic_format_string<char *>' is not a constant expression
当我使用llvm12.0时一切正常,但当我更改为llvm 15.0.1时,它显示错误
我将其更改为fmt::format,但仍然不起作用
1条答案
按热度按时间wswtfjt71#
默认情况下,格式字符串在编译时必须是已知的。现在你可以使用
std::vformat
和一个运行时格式字符串:有一个建议是在
std::format
中添加对运行时格式字符串的直接支持,类似于{fmt}中的fmt::runtime
。