clang++相关内容

防止 std 命名空间之外的标准函数

我只使用特定于 C++ 的头文件(例如 ),但是我仍然得到全局声明的函数,而不仅仅是 std 中的函数命名空间.有没有办法(也许是编译器开关)来防止这种情况发生? 例如下面的代码: #include 浮动随机(){返回0.0f;}int main() { 返回 0;} linux下编译失败,报错: >g++ -c main.cpp main.omai ..
发布时间:2022-01-23 21:12:11 C/C++开发

为什么 constexpr 上下文会使编译器失败,而没有完美优化?

我玩弄了 constexpr 并发现了一些有趣的行为: 在某些情况下,在函数前添加 constexpr 可以使 GCC 尝试更加努力地优化,从而完全优化函数并仅提供计算值.但是,从 constexpr 上下文调用这样一个完全优化的函数会导致错误,因为它在内部使用(编译器内置的)函数/内在函数,这些函数/内在函数未标记为 constexpr(尤其是 memcpy). (Clang 在将 co ..
发布时间:2022-01-23 21:11:11 C/C++开发

使用 clang++、-fvisibility=hidden、typeinfo 和 type-erasure

这是我在 Mac OS X 上使用 clang++ 时遇到的问题的缩小版本.经过认真编辑,以更好地反映真正的问题(描述问题的第一次尝试没有表现出问题). 失败 我在 C++ 中有这么大的软件,在目标文件中有大量符号,所以我使用 -fvisibility=hidden 来保持我的符号表很小.众所周知,在这种情况下,必须特别注意 vtables,我想我面临这个问题.但是,我不知道如何以一种 ..
发布时间:2022-01-23 20:46:55 C/C++开发

我可以使用相同的名称为周围范围内的类型声明成员类型别名吗?

出于元编程目的,我希望结构包含另一个类型的类型别名: struct Foo {};结构 WithNestedTypeAlias {使用 Foo = Foo;}; 然后我可以在模板等中执行 WithNestedTypeAlias::Foo 之类的操作. 据我了解,这种类型别名是有效的,因为它不会改变 Foo 类型的含义.Clang 愉快地编译了这个. 但是,GCC 抱怨: test ..
发布时间:2022-01-23 20:38:40 C/C++开发

C++17 并行算法是否已经实现?

我试图尝试使用 C++17 标准中提出的新并行库功能,但我无法让它工作.我尝试使用 g++ 8.1.1 和 clang++-6.0 和 -std=c++17 的最新版本进行编译,但似乎都不支持 #include 、std::execution::par 或任何类似的东西. 在查看并行算法的 cppreference 时,有一长串算法,声称 技术规范提供了来自algorithm、nume ..
发布时间:2021-12-30 20:58:01 C/C++开发