clang++相关内容
根据official documentation,Clang 13通过使用-fmodules命令行参数支持C++20模块。 我甚至无法在基于Intel或M1的Mac上使用Clang 13(MacOS蒙特雷)编译基本模块。 假定文件module.cpp的文本内容如下: export module a; export int f(int a, int b) { return
..
我正在尝试用Cython同时编译C和C++源代码。这是我的当前设置: -setup.py from distutils.core import setup from Cython.Build import cythonize from distutils.extension import Extension import os language = "c++" extra_compi
..
我只使用特定于 C++ 的头文件(例如 ),但是我仍然得到全局声明的函数,而不仅仅是 std 中的函数命名空间.有没有办法(也许是编译器开关)来防止这种情况发生? 例如下面的代码: #include 浮动随机(){返回0.0f;}int main() { 返回 0;} linux下编译失败,报错: >g++ -c main.cpp main.omai
..
我玩弄了 constexpr 并发现了一些有趣的行为: 在某些情况下,在函数前添加 constexpr 可以使 GCC 尝试更加努力地优化,从而完全优化函数并仅提供计算值.但是,从 constexpr 上下文调用这样一个完全优化的函数会导致错误,因为它在内部使用(编译器内置的)函数/内在函数,这些函数/内在函数未标记为 constexpr(尤其是 memcpy). (Clang 在将 co
..
下面的程序怎么会调用 format_disk 如果它从来没有在代码中调用? #include 静态无效 format_disk(){std::puts("格式化硬盘!");}静态无效 (*foo)() = nullptr;无效从不调用(){foo = format_disk;}主函数(){富();} 这因编译器而异.用 Clang 编译优化,函数 never_call 在运行时
..
我有以下 C++11 代码. #include 使用 IntType = unsigned long long;模板结构诠释 {};模板结构 is_int : std::false_type {};模板struct is_int>: std::true_type {};主函数(){static_ass
..
前几天有人问为什么有些东西可以用clang编译,但不能用gcc编译.我直观地理解正在发生的事情并能够帮助这个人,但这让我想知道——根据标准,哪个编译器是正确的?这是代码的简化版本: #include #include 类 foo{上市:foo(const std::string& x):姓名(x){ }foo&operator()(const std::string
..
AAA 级 {上市:AAA() {}AAA(const AAA&) {}};BBB类{上市:BBB() {}运营商 AAA() { AAA a;返回一个;}};int main() {BBB 乙;AAA a = {b};} 上面的代码可以在g++和vc++上编译,但不是clang++. 传统语法 AAA a = b; 在所有三个上都可以编译. AAA 级 {};BBB类{上市:BBB() {
..
这是我在 Mac OS X 上使用 clang++ 时遇到的问题的缩小版本.经过认真编辑,以更好地反映真正的问题(描述问题的第一次尝试没有表现出问题). 失败 我在 C++ 中有这么大的软件,在目标文件中有大量符号,所以我使用 -fvisibility=hidden 来保持我的符号表很小.众所周知,在这种情况下,必须特别注意 vtables,我想我面临这个问题.但是,我不知道如何以一种
..
#include #include #include #include 使用命名空间标准;int main() {诠释n;cin>>n;向量一个);for(int i = 0; i >一个[我];int ans = a[0];for(int i = 1; i
..
出于元编程目的,我希望结构包含另一个类型的类型别名: struct Foo {};结构 WithNestedTypeAlias {使用 Foo = Foo;}; 然后我可以在模板等中执行 WithNestedTypeAlias::Foo 之类的操作. 据我了解,这种类型别名是有效的,因为它不会改变 Foo 类型的含义.Clang 愉快地编译了这个. 但是,GCC 抱怨: test
..
以下程序的正确行为是什么? //example.cpp#include #include 结构富{无效酒吧()常量{std::cout MakeFoo() {返回 std::make_shared();}int main() {自动 p { MakeFoo()
..
..
升级到 Mac OS X 10.9/Xcode 5.0.1 后,创建共享库 (.dylib) 的命令行失败,出现多个未定义符号. clang++ -dynamiclib -install_name test.dylib *.o -o test.dylib架构 x86_64 的未定义符号:“std::allocator::allocator()",引用自:_main 在 test.o“
..
我想尝试将项目从 gcc 迁移到 clang++.我承认我的无知,我不知道为什么下面的代码 template constexpr T pi{std::acos(T(-1.0))}; 使用 g++ 静默编译,但 clang++ 产生错误 trig.hpp:3:13: 错误:constexpr 变量 'pi'必须由常量表达式初始化constexpr T pi{std::acos(T(-1.0))
..
我试图尝试使用 C++17 标准中提出的新并行库功能,但我无法让它工作.我尝试使用 g++ 8.1.1 和 clang++-6.0 和 -std=c++17 的最新版本进行编译,但似乎都不支持 #include 、std::execution::par 或任何类似的东西. 在查看并行算法的 cppreference 时,有一长串算法,声称 技术规范提供了来自algorithm、nume
..
使用 Clang 3.5、3.6 或 3.7,带有标志 std=c++1y 以下代码无法编译: #include 自动 foo(自动栏){ 返回栏;}int main() {std::cout
..
我最近发现了这个代码: struct Foo{};int main(){福一;//clang++ 推导出 std::initializer_list//g++5.1 推导出 Foo自动 b{a};a = b;} 它用 g++5.1 编译得很好,但在 clang++ 中失败(同时使用 -std=c++11 和 -std=c++14,相同结果).原因是 clang++ 将 b 的类型推导出为 st
..
使用 clang-check 转储源代码的 AST,可以使用以下命令完成: $ clang-check -ast-dump file.c -- 但是,此命令的输出将在终端中显示为彩色. 当我将输出定向到文件时,我遇到了所有颜色转义码: $ clang-check -ast-dump file.c -- >输出.txt 示例: [0;1;32mTranslationUnitDecl[0m
..
命令: 我正在尝试使用 clang++ 交叉编译一个简单的 C++ 程序.我正在使用 Linaro gcc 工具链来获取库和其他所需的包含. ${root}/bin/clang++ --target=arm-linux-gnueabihf --rtlib=compiler-rt --stdlib=libc++ -nostdinc++ -I${root}/include/c++/v1 -wl
..