C++ 错误C2661“fmt::v7::print”:没有重载函数接受3个参数

C++ 错误C2661“fmt::v7::print”:没有重载函数接受3个参数,c++,templates,fmt,C++,Templates,Fmt,我正在努力做到: fmt::printfgfmt::color::red,发生严重错误。查阅日志并解决问题!{0},std::endl; 这将导致错误消息:错误C2661'fmt::v7::print':没有重载函数接受3个参数 查看官方文档显示fmt::打印为: 样板 void fmt::printcont text_style&ts、const S&format_str、const Args&。。。args 这表明争论的数量不应该是一个问题,事实上,它不是。如果我将std::endl替换为像

我正在努力做到:

fmt::printfgfmt::color::red,发生严重错误。查阅日志并解决问题!{0},std::endl; 这将导致错误消息:错误C2661'fmt::v7::print':没有重载函数接受3个参数

查看官方文档显示fmt::打印为:

样板 void fmt::printcont text_style&ts、const S&format_str、const Args&。。。args 这表明争论的数量不应该是一个问题,事实上,它不是。如果我将std::endl替换为像1这样随机的东西,它的编译和构建就很好了!这里有什么问题?

是一个模板,但在这种情况下无法确定模板参数,您必须显式指定它们。e、 g

fmt::print(fg(fmt::color::red), 
           "A critical error has occured. consult the logs and fix the issue! {0}", 
           std::endl<char, std::char_traits<char>>);
//                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
是一个模板,但无法确定模板参数。在这种情况下,必须显式指定它们。e、 g

fmt::print(fg(fmt::color::red), 
           "A critical error has occured. consult the logs and fix the issue! {0}", 
           std::endl<char, std::char_traits<char>>);
//                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

错误消息在技术上是不正确的,因为有一个fmt::print重载包含3个参数。但是,即使您能够传递std::endl,也没有意义,因为刷新将应用于中间缓冲区,而不是在写入stdout时。您应该使用\n并调用fflush:


请注意,显式传递模板参数将不起作用-您只会得到一个不同的错误:。

错误消息在技术上是不正确的,因为存在一个包含3个参数的fmt::print重载。但是,即使您能够传递std::endl,也没有意义,因为刷新将应用于中间缓冲区,而不是在写入stdout时。您应该使用\n并调用fflush:


请注意,显式传递模板参数不起作用-您只会得到一个不同的错误:.

技术上正确,在unhelpullyhelp下归档技术上正确,在unhelpullyhelp下归档