libstdc++相关内容

在GNU C ++标准库中使用哪种算法计算指数函数?

请考虑 std :: exp 在标题 cmath /w/cpp/numeric"rel =" nofollow noreferrer“>数字库.现在,请考虑C ++标准库的实现,例如 libstdc ++ . 考虑有各种算法来计算基本函数,例如算术几何平均迭代算法(用于计算指数函数)和其他三个算法,此处; 是否可以在 libstdc ++ 中命名用于计算指数函数的特定算法? PS ..
发布时间:2020-11-16 03:40:28 C/C++开发

从管道读取时,为什么libc ++ getline会阻塞,而libstdc ++ getline却不会呢?

TL; DR 使用getline函数的libc++版本的程序在从管道读取输入时将阻塞,直到管道的缓冲区已满. 对于getline函数的libstdc++版本,同样是否:在这里,该函数将立即读取并在输入可用时立即返回一行输入. 我应该期望libstdc++和libc++之间的这种行为差异吗? [编辑:我在这里不是要征求意见,我只是对管道不甚了解,也对实现C ++标准库的困难不甚了解 ..
发布时间:2020-11-13 21:13:19 C/C++开发

如何在现有的libstdc ++中使用备用glibc?

我需要使用glibc(2.18)的自编译版本,比系统上的默认版本(2.15)更新.我可以编译和链接C ++程序,但是当我尝试运行它时,出现关于libstdc++.so.6的错误. (C程序似乎可以正常工作.)是否需要针对较新的glibc重新编译gcc才能使其正常工作?为什么? (更新:我已经弄清楚了这部分,但是在底部还有其他一些问题.) 这是一个示例C ++程序: #include ..
发布时间:2020-11-13 00:12:56 服务器开发

应用程序和应用程序出现段错误使用-static-libstdc ++构建的共享库

如果我用-static-libstdc++构建了一个C ++应用程序,该应用程序通过dlopen加载了一个共享库(通过dlopen),那么该库也会在dlopen期间出错. 但是-仅在某些设置中会发生这种情况: GCC 4.7.4,32位:通过 GCC 4.8.3,32位:通过 GCC 4.8.4,64位:通过 GCC 4.9.2,64位:通过 GCC 4.9.3,32位:失败( ..
发布时间:2020-11-12 23:56:39 服务器开发

GNU标准库命名约定

当我查看GNU库的实现时(主要是libstdc ++),我可以看到命名中存在重复出现的模式.模板类型命名为_Tp,成员具有前缀_M_,某些标记具有前缀双下划线,依此类推.我试图查找有关命名约定的文档无济于事. GNU有一个样式指南,代码中也有遵循,但更像是该命名约定的子集. 您知道有关GNU gcc库实现的样式细节的任何文档吗? 谢谢. 解决方案 下划线不是“编码约定",而是为 ..
发布时间:2020-11-12 23:30:50 其他开发

`cosf`,`sinf`等不在`std`中

基于此处的讨论,我有向Ubuntu开发人员报告了一个错误. 在编译以下示例c ++程序时: #include #include int main() { printf("%f\n", std::cosf(0.0f)); } 我收到以下错误消息:error: ‘cosf’ is not a member of ‘std’ 包含ma ..
发布时间:2020-11-12 23:17:08 C/C++开发

共享库与接口中的STL对象的GCC兼容性

我有一个带有STL对象的应用程序,作为插件编写器的C ++接口的一部分. 我知道兼容性的最佳选择是改用C接口,但这目前尚不可行. 我知道libstdc ++中从GCC 3.4到4.8的所有内容在ABI方面都是高度兼容的. 因此,例如,如果我使用GCC 4.1进行编译,并且插件供应商编写使用GCC 4.7编译的代码,那么在没有对应于GCC 4.7或更高版本的libstdc ++版本 ..
发布时间:2020-11-12 23:14:16 C/C++开发

CMAKE:在clang/g ++和libc ++/libstdc ++之间切换

这是我的第一个cmake文件.我有一个同时带有clang和g ++的linux系统.还安装了libc ++.我在Mac(xcode)上进行开发,但部署到linux. 我正在编写一个cmake文件,可以在其中选择clang或g ++以及libc ++或libstdc ++.有4种可能的组合. 我想出了如何选择编译器并在其上强制使用c ++ 11,但是我不知道如何指定标准库.有什么建议吗? ..
发布时间:2020-11-11 21:14:34 其他开发

访问unordered_map时为SIGFPE

我有一个 unordered_map ,其中Block是一个简单的结构,定义如下: struct Block { size_t start; size_t end; bool运算符==(const Block& b)const { return start == b.start&结束== b.end; } }; 名称空间std { tem ..
发布时间:2020-10-01 22:23:41 C/C++开发

与unordered_map相关的类型

假设我要在unordered_map的条目 之间保持一定的顺序。一种高效的内存存储方式似乎是在映射条目之间保留一个链表。即,我将使用unordered_map 而不是unordered_map。其中Node定义为 struct Node { int val; typename std :: unordered_map : ..
发布时间:2020-10-01 21:03:42 C/C++开发

在CentOS 7上找不到GLIBCXX_3.4.21

我最近在CentOS上将我的gcc版本从4.7更新到了5.4,但是现在我在编译程序时遇到以下错误 / lib64 / libstdc ++。so.6:找不到版本'GLIBCXX_3.4.21' I找到了一些​​解决方案,但我仍然无法解决此问题。这些是我在 whereis gcc 中找到的路径 gcc:/ usr / bin / gcc / usr / lib / ..
发布时间:2020-09-30 19:32:29 其他开发

std :: regex和双重ABI

今天我发现了一个有趣的案例,即双重libstdc ++ ABI影响库的兼容性。 总之,我有两个库都使用std :: regex内部。一种是使用CXX11 ABI构建的,另一种则不是。当将这两个库链接到一个可执行文件中时,它会在启动时崩溃(在输入 main 之前)。 这些库是不相关的,并且不会公开提及任何 std :: 类型的接口。我认为这样的库应该不受双重ABI问题的影响。显然不是! ..
发布时间:2020-09-27 21:49:52 C/C++开发

面对抛出的move构造函数/赋值运算符,std :: vector :: emplace()是否真的提供了强大的异常保证?

根据cppreference.com ,std :: vector :: emplace()无条件地提供了强大的异常保证: 如果抛出异常(例如,构造函数),则容器将保持不变,好像从未调用过此函数(强烈的异常保证)。 但是,在实践中似乎并非如此GCC 7.1.1。以下程序: #include #include 结构丑陋的 { ..
发布时间:2020-09-27 18:57:20 C/C++开发