Libstdc ++是C ++标准库的GNU实现,作为GCC的一部分提供
现在发布了支持新日历和时区功能的GCC 11,我试图在我的代码中使用这些功能。 以以下最小示例: #include #include 现在,支持新的日历和时区功能已发布GCC11,我正在尝试在我的代码中使用这些功能。 以下最小示例: #include <chrono> #include <iostream> int main() { using namespace std; cout << chrono::utc_clock::now() << endl; return EXIT_SUCCESS; } 使用以下内容进行组合: > /usr/local/gcc-11.1.0/bin/g++-11.1 -std=c++-20 main.cpp 为以下错误: main.cpp: In function ‘int main()’: main.cpp:8:36: error: incomplete type ‘std::chrono::utc_clock’ used in nested name specifier 8 | cout << chrono::utc_clock::now() << endl; | 我已经研究了这个错误,似乎通常源于正向声明。有人有任何想法为什么会发生这种情况吗?我还尝试过明确链接与新建的GCC 11版本的Libstdc ++。A: /usr/local/gcc-11.1.0/bin/g++-11.1 -std=c++20 -L/usr/local/gcc-11.1.0/lib -lstdc++ main.cpp 但我收到相同的错误消息。 一些额外信息:> /usr/local/gcc-11.1.0/bin/g++-11.1 --version 为以下输出: g++-11.1 (GCC) 12.0.0 20210427 (experimental) Copyright (C) 2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 这对我来说是意外的,因为我希望看到11.1。我在MacOS上构建了此版本,我的clang++版本为12.0.5。这是预期的吗?这可能是问题的潜在来源吗? ,也显示了对C ++的编译器支持20个标准库功能的网站。 lastly,我从源构建了GCC 11,使用this视频作为参考。 此时,只有部分C ++ 20 Chrono支持在GCC中。 此事是libstdc ++源代码的当前状态。这显示了一个简单的远期声明,也没有定义,这与您看到的错误消息一致。 iiam看到对chrono的更多支持,包括在utc_clock和file_clock之间转换的低级API。 这是一个重要的补充。 在ADDICANTION上,我看到C ++20(例如file_clock::time_point等)中对calendrical类型的支持,这是发行说明所指的。 4年后的任期 GCC-14已完全实现了C ++ 20system_clock::time_point规格。
g++ main.cc -std=c++20
我有以下断言: #include <memory> #include <type_traits> static_assert(std::is_standard_layout_v<std::unique_ptr<int>>); this断言在GCC上通过,但对于使用LibstDC ++的Clang(
我有一个 std::map ,其中 uint32_t 作为键类型和自定义值类型。我想根据值类型的成员从该映射中挑选出前 k 个键值对。为此,我首先是警察...
今天我发现了一个有趣的案例,双 libstdc++ ABI 影响库的兼容性。 长话短说,我有两个内部都使用 std::regex 的库。一个是用...构建的
来自 https://github.com/gcc-mirror/gcc/commit/3acb929cc0beb79e6f4005eb22ee88b45e1cbc1d 提交,C++ 标准头存在诸如 std::stacktrace_entry 之类的东西,但未声明...
这个构造函数 basic_string<decltype(nullptr)>(char const*) 是做什么的?
最近我在读aarch64的一些汇编代码,发现了这个奇怪的构造函数,它似乎没有在basic_string中定义:
使用 std::function w/ std::bind 时的 EXC_BAD_ACCESS
使用 std::function 和 std::bind 升级到 XCode 5 后似乎会生成 EXC_BAD_ACCESS 异常。看起来好像 std::function 实现中的 __base 指针结束了
GNU GCC:如何编译 google-pertools,使其不需要@GLIBCXX_3.4
我编译了库并使用 readelf 命令检查了符号,我得到了 $ readelf -s ./.libs/libtcmalloc.so.5 | grep GLIB 94:0000000000000000 32 对象全局默认值和
即使从 C++ 线程中使用 pthread_self() 获取线程 ID 是否可靠?
在Linux上,libstdc++不使用pthread_create()来创建线程,从这个bug可以看出:https://bugzilla.kernel.org/show_bug.cgi?id=218607(libpsx包装了pthread_create())拦截...
为什么 std::vector::assign 不尽快释放现有分配的内存?
根据 cppreference,std::vector::assign 将内容替换为 value value 的 count 个副本。 该定义意味着向量的现有状态不用于分配。 在
我想完成一个 C++ 可执行文件,它链接到我自己的另一个 C++ 库,而不需要 libstdc++ 依赖项。我可以毫无困难地在没有库的情况下创建这样的 C++ 可执行文件。但作为...
如果针对 32 位 Linux 系统编译,下面的代码将返回错误结果,并且在给定足够大的向量的情况下,同样的问题也适用于 64 位系统。 具备lower_bound或S的前提条件...
我正在阅读 range::distance 源,但不明白: 为什么 struct __distance_fn 是最终的? void operator&() const = delete 的目的是什么(来源) 我知道最后一堂课...
最近我在新安装的集群的主节点上安装了gromacs。由于gromacs的主要要求是GCC,OpenMPI和gmx_mpi,在master nod上编译完所有内容后...
当我在 Linux 版本 2.6.36 中使用 std::call_once 时,会出现错误: 抛出“std::system_error”实例后调用终止 什么():未知错误-1 中止 编译命令: 米普塞尔布伊...
libstdc++中abi::__cxa_demangle的实现在哪里
GNU 的 libstdc++ 提供了函数 abi::__cxa_demangle。该函数的声明可以在 gcc / libstdc++-v3 / libsupc++ / cxxabi.h 中找到(代码存储库在这里) 我有兴趣回顾...
Linux 新手。 我的 ubuntu 上已经有 gcc 11 和 12,但使用以下命令编译了 gcc-14: ./configure -v --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --pr...