clang++ 相关问题

clang是一个C,C ++和Objective-C编译器,它包含预处理,解析,优化,代码生成,汇编和链接。根据传递的高级模式设置,Clang将在执行完整链接之前停止。虽然Clang是高度集成的,但了解编译的各个阶段,了解如何调用它是很重要的。

删除了显式默认的构造函数

我有一个与下面的代码片段非常相似的代码: #包括 结构虚拟 { std::vector 常量数据; 虚拟()=默认; }; 大多数编译器都接受此代码,而不...

回答 1 投票 0

命名空间“std”在 macOS clang 上没有成员“lexicographyal_compare_ Three_way”

我一直在尝试从 cppreference 编译这个示例 #包括 #包括 #包括 #包括 #包括 #包括...

回答 1 投票 0

如何将函数参数生成为具有模板参数中指定长度的序列

什么是通用化模板以将可变数量的参数(作为模板参数给出的计数)传递给函数的简洁方法?例如下面的函数 permute: 模板 什么是通用化模板以将可变数量的参数(作为模板参数给出的计数)传递给函数的干净方法?例如函数 permute,如下: template<std::size_t N> using byte_vector_t = uint8_t __attribute__((ext_vector_type(N))); template <std::size_t N, int(*f)(int)> byte_vector_t<N> permute(byte_vector_t<N> x, byte_vector_t<N> y) { return __builtin_shufflevector(x, y, f(0), f(1), f(2), f(3), f(4), f(5), f(6), f(7), f(8), f(9), f(10), f(11), f(12), f(13), f(14), f(15) ); } template <std::size_t N> byte_vector_t<N> zip_lo(byte_vector_t<N> x, byte_vector_t<N> y) { auto f = [](int i) -> int { return ((i & 1) ? N : 0) + (i / 2); }; return permute<N, f>(x, y); } 但这仅适用于 N=16: // works typedef uint8_t test16_t __attribute__((ext_vector_type(16))); test16_t zip_lo16(test16_t x, test16_t y) { return zip_lo(x, y); } // does not work typedef uint8_t test8_t __attribute__((ext_vector_type(8))); test8_t zip_lo8(test8_t& x, test8_t& y) { return zip_lo(x, y); } std::apply 似乎可能相关,但 __builtin_shufflevector 拒绝传递进去。即使它有效,我仍然不知道如何最好地生成元组。 您应该能够使用 index_sequence: #include <utility> template <std::size_t N, int (*f)(int)> byte_vector_t<N> permute(byte_vector_t<N> x, byte_vector_t<N> y) { return [&]<std::size_t... I>(std::index_sequence<I...>) { return __builtin_shufflevector(x, y, f(I)...); }(std::make_index_sequence<N>()); } 演示 如果您使用 C++17,则无法使用通用 lambda,因此您需要一个辅助函数: template <int (*f)(int), std::size_t... I> byte_vector_t<sizeof...(I)> permute_helper(byte_vector_t<sizeof...(I)> x, byte_vector_t<sizeof...(I)> y, std::index_sequence<I...>) { return __builtin_shufflevector(x, y, f(I)...); } template <std::size_t N, int (*f)(int)> byte_vector_t<N> permute(byte_vector_t<N> x, byte_vector_t<N> y) { return permute_helper<f>(x, y, std::make_index_sequence<N>()); }

回答 1 投票 0

尝试使用模块构建c++20应用程序

我正在尝试在应用程序中使用其他库的预编译模块。我使用 -fprebuilt-module-path= 指定 lib pcm-files 的路径并链接 *.so 文件,但收到下一个错误: 致命错误:模块'

回答 1 投票 0

标准库上的 clang++ 错误取决于 -std=c++2b 版本,并在使用 -g 标志时发出警告

使用 g++ 编译可以正常工作 如果我用 clang++ 编译,下面的命令可以正确编译 clang++ -std=gnu++20 -c 03_vect.cpp -o 调试/03_vect.cpp.o 当命令如下时 叮当...

回答 1 投票 0

为参考参数和优化更改创建临时对象

我有以下代码 #包括 void foo(const int* const &i_p) { std::cout << &i_p << std::endl; } int main () { int i = 10; int* i_p = &...

回答 1 投票 0

使用 Clang++ 初始化向量

我在这里发现了一个类似的问题,为什么我收到“非聚合无法使用初始值设定项列表初始化”,但答案说它现在可以工作,但这似乎不适合我。代码: ...

回答 1 投票 0

为什么C++中对象有NULL vtable指针?

我正在使用从源代码(git 标签:llvmorg-16.0.6)构建的 libTooling 来搜索 AST 级别的差异。 使用我构建的产品时,出现分段错误。 通过gdb检查,我发现...

回答 1 投票 0

Clang 在 nushell 编译脚本中链接时找不到 .o 文件

我目前正在尝试在 Nushell 中为 C++ 项目编写构建脚本。 这是一个相当简单的设置,首先构建一个库,然后在其他脚本中构建并链接

回答 1 投票 0

如何使用 clang 将模板类的构造函数声明为友元? (使用 g++ 编译,而不是 clang++)

我有一个带有私有构造函数的模板类,我希望该私有构造函数对该类的所有模板化实例都是友好的。以下内容在 g++ 11.4.0 下编译,但在 cla 下失败...

回答 1 投票 0

clang++ 编译无法访问的函数,g++ 则不会

我在 Instagram 上看到了这个 meme,内容是关于一些 C++ 代码,这些代码不应该输出任何内容,但却会输出任何内容。代码是: #包括 int main() { 而 (1) ; } 无效不可达(){ 是...

回答 1 投票 0

无法在 MacO 上将 to_chars 与 clang++ 一起使用

我尝试过使用g++和clang++,我尝试过带有-std标志的各种c++版本。我尝试阅读 charconv 文件以了解问题所在。 我需要一些帮助,我真的不确定......

回答 1 投票 0

带有预编译标头的 clang-tidy 和 cmake 不起作用

我有一个简单的设置,其中 CMake 生成以下编译命令: cd /workspaces/cmake-general/tests/project/build/examples/hello-world && /usr/local/bin/cmake -E __run_co_compile ...

回答 1 投票 0

在 MacOS 上构建 OpenPose 时如何更改 CMake 中的 c++ 编译器版本?

我已经克隆了最新版本的 OpenPose 并尝试在 MacOS 13.5 (22G74) 上构建它。在我运行 make -j sysctl -n hw.logiccpu 后,它会生成一堆错误,说我使用了过时的 c++

回答 1 投票 0

Clang 工具在使用 -Xclang

我创建了一个基本的 clang 工具并使用 FrontendPluginRegistry 注册它: 静态 FrontendPluginRegistry::Add X(“我的解析器”,“我的 clang-工具解析器”) ...

回答 1 投票 0

为什么这个简单的代码不能一致地编译?

以下代码在 g++、clang 和 Visual Studio 上编译: #定义十六进制(hex_) 0x##hex_ int main() { 返回十六进制(BadC0de); } 与此修改一样,使用 C++14 数字分隔符: 返回...

回答 1 投票 0

clang代码覆盖函数的覆盖参数改变了代码逻辑?

我的 BUILD.gn 文件的一部分配置如下: 配置(“测试”){ cflags = [ “-std=c++17”, “-f可见性=隐藏”, ] cflags_cc = [“-

回答 0 投票 0

为什么 clang++ 在遇到模板类的公共静态浮点成员变量时无法推迟符号解析?

当使用模板类的公共静态浮点成员变量时,clang 编译失败(当警告被视为错误时),而不是推迟符号解析以链接 ti...

回答 1 投票 0

C++ 是否要求模板声明格式正确?

在 C++ 中,函数模板的类型检查被推迟到调用(实例化)模板函数为止。例如 模板 int 右() { 返回 T::f(); } 是合法的 C++...

回答 2 投票 0

clang++:如何改进堆栈地址返回的警告

用于以下功能: 常量 char *fstack() { 字符选项卡[100]; 返回选项卡; } 常量字符 *fc_str() { std::string s{"一些文本"}; 返回 s.c_str(); } const char * f_stringstream() ...

回答 0 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.