【问题标题】:<format> header not found (C++) [duplicate]<格式> 标头未找到(C++)[重复]
【发布时间】:2020-05-13 08:01:20
【问题描述】:

我想使用新的 C++20 &lt;format&gt; 标头。但是当我尝试#include它时,它显然不存在于我当前的标准库中。

我尝试使用 clang++ 和 g++,但它们都不起作用。

是的,我在 VSCode 的 tasks.json 文件中将 C++ 标准指定为“c++2a”。

我做错了什么?

【问题讨论】:

    标签: c++ c++20


    【解决方案1】:

    您可以在此处查看编译器支持的概述:https://en.cppreference.com/w/cpp/compiler_support

    根据表格,截至今天(20 年 5 月 13 日 8:07),没有编译器支持 P0645R10:文本格式。

    可以在这里找到专门针对 MSVS 的概述:https://docs.microsoft.com/en-us/cpp/overview/visual-cpp-language-conformance?view=vs-2019(尽管我没有在他们的列表中找到 &lt;format&gt;)。

    【讨论】:

    • 如果不存在支持格式的编译器,那么你应该如何使用它呢?或者它为什么会存在?
    • @Hellstormer 对 C++20 的支持正在迅速增长,您需要查看您的编译器新闻并继续关注。未来几个月情况会发生变化
    • 它存在是因为它会被支持但还不支持。
    • @Hellstormer " 或者它为什么会存在?"我不明白.. 现有的是指定标头应包含什么的标准,这与准备使用它不同
    • @Hellstormer 我也不知道所有细节。有时,标准库的新增功能是通过 boost 来实现的。 Afaik 必须存在一个示例实现才能使提案被接受,但是提案要经过一个漫长的过程,包括在实际包含在标准中之前可能进行的修改。我没有检查,但如果&lt;format&gt; 与 Boost::format 非常相似,我不会感到惊讶,并且可能您已经可以在那里找到大多数东西
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-13
    • 2012-10-17
    • 1970-01-01
    • 2018-03-07
    • 2015-02-28
    • 2016-01-26
    • 2013-04-21
    相关资源
    最近更新 更多