我一直在尝试使用C++20中包含的std::format
函数。据我所知,clang 14应该支持此功能,但由于某种原因,我收到以下错误:no member named 'format' in namespace 'std'
。根据cppreference的编译器支持图表,clang应该支持文本格式化,但我仍然收到此错误。我不知道问题出在哪里。
我一直在尝试使用C++20中包含的std::format
函数。据我所知,clang 14应该支持此功能,但由于某种原因,我收到以下错误:no member named 'format' in namespace 'std'
。根据cppreference的编译器支持图表,clang应该支持文本格式化,但我仍然收到此错误。我不知道问题出在哪里。
std::format
在libc++ 14中不完整,因此默认情况下被禁用。构建llvm时需要传递LIBCXX_ENABLE_INCOMPLETE_FEATURES
参数以启用该功能。
在libc++实现完成之前,您最好使用https://github.com/fmtlib/fmt(这也会使您的代码更具可移植性,因为目前只有MSVC具有完整的实现)。
-std=c++20
。(如果没有给出-std
参数,我不确定编译器默认使用哪个标准。) - Scheff's Cat-stdlib=libc++
指定Clang标准库。 - Some programmer dudestd::format
在libc++中实现(当您将鼠标悬停在版本号上方时提到了限制),但在libstdc++中没有实现。您在使用Clang时使用哪个?假设两者都已安装,您可以使用-stdlib=libc++
/-stdlib=libstdc++
在它们之间切换。 - user17732522