不能包含 std::format

Posted

技术标签:

【中文标题】不能包含 std::format【英文标题】:can't include std::format 【发布时间】:2020-07-21 15:17:31 【问题描述】:

我已经看到 std::format 有多么有用。但是每次我尝试将它包含在 C++20 中时它都不起作用。它显然已经包含在它的库中,但它没有出现,也没有在线信息。甚至 cppreference 也有它的示例,但它甚至不能在其在线编译器上运行。我从它附上了一个sn-p。

你们中的任何人都知道如何在不从 GitHub 导入超级复杂的库的情况下使其工作。我主要在 VisualStudio 上工作。

#include <iostream>
#include <format>

int main() 
    std::cout << std::format("Hello !\n", "world");

main.cpp:2:10: fatal error: No such file or directory
    2 | #include <format>
      |          ^~~~~~~~
compilation terminated.

【问题讨论】:

format 尚未被任何 C++ 标准库实现。所以暂时还得下载安装一个单机版。 @NicolBolas 非常感谢您的回复。这就说得通了。非常感谢。 即使在带有-std=c++20 的 gcc 11.0.2 中,这似乎也不存在。 【参考方案1】:

截至 2020 年 7 月,没有一个标准库实现提供 std::format。在他们这样做之前,您可以使用 the fmt library std::format 是基于:

#include <iostream>
#include <fmt/core.h>

int main() 
  std::cout << fmt::format("Hello !\n", "world");

godbolt

【讨论】:

以上是关于不能包含 std::format的主要内容,如果未能解决你的问题,请参考以下文章

不能包含 Microsoft.Security.Application?

为啥我的编译防护不能防止多个定义包含?

该列不能包含空值。 SqlCE 异常

如何修复“MongoError:数据库名称不能包含字符'/'”

为啥表达式树不能包含命名参数规范?

该配置节不能包含 CDATA 或文本元素