问题标签 [clang++]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 'static void' 作为 decl 说明符
以下代码可以用clang很好地编译。我想知道 C++ 标准是否可以接受。
在我看来,没有任何声明是有效的。perenial C++ 标准验证套件 有这样一个测试(#1),而 clang(v3.4)在这方面失败了。
虽然,如果我从 #1 中删除静态,那么 clang 会按预期报告错误。
我查看了标准,发现有一段关于静态数据成员(9.4.2-2)的内容是:
2 静态数据成员在其类定义中的声明不是定义,并且可能是除 cv 限定的 void 之外的不完整类型。...
据我了解,这条线将 #2 和 #3 视为无效但不确定 #1。是否有更多与静态存储类声明相关的细节应该排除#1?
谢谢,
ubuntu - 如何检查 g++/clang++ 默认链接库
刚刚使用以下命令在 Ubuntu 12.04 上安装了 boost 库:
即使我没有明确提供所需的 boost 库,我也使用以下命令编译和构建代码而没有任何问题。
问题> 如何查看 g++ 或 clang++ 使用的默认链接库?
谢谢
clang - 相当于 -ftree-vectorizer-verbose 的 clang
问题是关于如何clang
打印关于哪些循环(或代码的其他部分)已被矢量化的信息。GCC
有一个名为-ftree-vectorizer-verbose=6
执行此操作的命令行开关(或-fopt-info-vec
在较新版本的 GCC 中),但我找不到任何类似的clang
. clang
支持这个还是我唯一的选择是偷看反汇编?
linux - 带有 clang++ 和 libc++ 的 Linux 上的 std::cerr 导致 SIGABRT
我正在尝试在使用 clang++ 3.3 libc++ libc++abi 编译的 Ubuntu 12.04 x64 上运行一个简单的程序。
程序:
写入 std::cerr 会打印消息,但会导致 SIGABRT。
但是,写入 std::cout 可以正常工作。
这里是可执行文件的 ldd 输出:
谁能给我一个提示如何解决这个问题?
这是回溯:
clang - Clang 代码覆盖率无效输出
因此,我按照这些说明http://clang.llvm.org/get_started.html检查并构建了 clang 主干。我可以使用 --coverage 构建我的二进制文件并运行它以获取 .gcno 和 .gcda 文件,但是当我运行 lcov 时,我得到“GENINFO: ...达到意外的文件结尾”。
现在我被困住了,来到 SO 寻求帮助:)
我正在使用 Ubuntu 13.04 并编写 c++11,以防万一。
c++ - C++ Makefile 编译顺序
嗨,在这个问题中,我读到编译顺序无关紧要,但我的情况很奇怪。
我在 CCSizePolicy.cpp 文件中有几个全局变量它们看起来像这样:
在标题中
同样在 CCLayoutParams.h
和 CCLayoutParams.cpp
所以当我在我的程序中使用它们时,我调用 CCLayoutParamsWrapWrap.getWidth() 和 CCLayoutParamsWrapWrap.getHeight()
这应该输出我 -1 -1 但我有 0 0 ...
makefile 中的顺序如下所示:
当我将其更改为
一切都开始工作(我得到-1 -1)这是怎么回事?
我使用 gcc 版本 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) 的 Linux
我的整个项目都被窃听了,我不知道为什么,因为我按名称对源文件进行排序???!?!
c++ - Boost Log - 为什么不编译?
在过去的三个小时里,我被以下编译错误彻底搞糊涂了。谁能告诉我这里发生了什么?
我试图将 log::formatter(在下面标记)定义为它自己的变量,所以它可以在几个地方重复使用。但是,在尝试重新使用它时出现编译错误。
但是,如果我完全摆脱该变量,而是复制并粘贴代码,它就会编译。有没有搞错?有什么办法可以做我想做的事吗?
编译错误(使用 clang++)是:
但是,如果我改为将其更改为此,它将编译:
c++ - 使用 gcc 或 clang 自动生成标题
给定一个源文件source.cpp
,我如何生成适当的标题source.hpp
?
我在 linux 64 位下,我想避免手动编写标题,以减少我花在编写代码上的时间并限制可能的错误。
c++ - 如何将非英语字符串写入文件并使用 C++ 从该文件中读取?
我想将 a 写入std::wstring
文件并需要将该内容读取为std:wstring
. 当字符串为L"<Any English letter>"
. 但是当我们有孟加拉语、卡纳达语、日语等任何类型的非英语字母时,问题就出现了。尝试了各种选项,例如:
- 将文件转换
std::wstring
为std::string
并写入文件以及读取时间读取为std::string
并转换为std::wstring
- 正在写作(我可以从编辑中看到)但阅读时间出现错误的字符
- 写入
std::wstring
wofstream,这也无助于母语字符字母,例如std::wstring data = L"হ্যালো ওয়ার্ল্ড";
平台是mac和Linux,语言是C++
代码:
c++ - 为什么 clang 将其解析为用户定义的文字?
我有一些我正在维护的代码,我已经开始在 clang 3.3 下编译。使用“-std=c++11”编译时,clang 会产生错误(如下所示)。我将有问题的代码提炼为以下内容:
这是clang的输出:
test.cpp:10:5: 错误:没有匹配的文字运算符用于调用具有类型 'const char *' 和 'unsigned int' 的参数的 'operator "" __format'
如果字符串文字和“__format”之间没有空格,预处理器似乎不能扩展__format。但是,当不指定 -std=c++11 时,它显然是。G++ 4.4.7(有和没有 -std=c++0x)编译得很好。
编译器有错误吗?