73得票3回答
如何在Clang中使用C++11的特性?

我该如何在Clang中使用最新的C++ 11特性?哪些功能(子集)得到支持?

72得票5回答
如何使用CMAKE_EXPORT_COMPILE_COMMANDS?

我一直在尝试使用 clang-modernize 以及它的帮助文档中推荐的选项 CMAKE_EXPORT_COMPILE_COMMANDS. 有了这个选项,cmake会生成一个JSON文件,其中包含编译信息,例如包含路径 (参见)。 虽然该变量可以在cmake命令行上使用,但是 cmake...

71得票5回答
返回类型为void的表达式是否合法?

这个编译没有任何警告。 在C和C++中,这是合法的吗?还是只在gcc和clang中有效? 如果合法的话,是C99之后的新特性吗? void f(){} void f2(){ return f(); } 更新 正如“Rad Lexus”建议的那样,我尝试了这个: $ gc...

71得票8回答
如何通过#define指令检测LLVM及其版本?

我认为这个问题很清晰。我正在尝试编写一个编译器检测头文件,以便在应用程序中包含有关所使用的编译器及其版本的信息。 以下是我正在使用的部分代码:/* GNU C Compiler Detection */ #elif defined __GNUC__ #ifdef __MINGW32_...

71得票4回答
为什么 memcmp(a, b, 4) 只有在某些情况下才会优化成 uint32 比较?

考虑以下代码:#include <string.h> int equal4(const char* a, const char* b) { return memcmp(a, b, 4) == 0; } int less4(const char* a, const cha...

71得票2回答
如何使用clang++/libc++编译/链接Boost库?

针对这个问题的答案是:在 c++0x 模式下,为什么 clang 和 libc++ 链接不起来这个 boost::program_options 的例子?。解决办法是“你需要使用 clang++ -stdlib=libc++ 重新构建 boost。” 我正在使用 MacOS Lion 和 c...

71得票4回答
完整的Clang标志列表

我在哪里能找到完整的Clang标志列表? 有一些标志,比如-include-pch,甚至在man页面上也没有列出。:( 我知道GCC使用了一些相同的标志,但它没有包含像-Os这样的东西的文档,我相信这只在Clang中可用。 是否有一个地方可以找到所有Clang选项的单个整合列表?

71得票2回答
Eclipse在MAC OS X上无法检测到LLVM工具链

我想在MAC OSX上使用LLVM/Clang工具链通过eclipse编译/调试C/C++应用程序。我已经正确安装了工具链,因为我可以使用makefile从终端编译,并且运行clang -v时,我可以正确获取LLVM版本和安装目录。我下载了一个新的eclipse C++(Mars)并安装了LL...

70得票2回答
为什么使用三元运算符返回字符串会生成与在等价的if/else块中返回不同得多的代码?

我在使用编译器浏览器时,偶然发现了三元运算符的一个有趣行为,当使用类似于以下内容时:std::string get_string(bool b) { return b ? "Hello" : "Stack-overflow"; } 编译器生成的代...

67得票5回答
更新OSX命令行工具6.3后,缺少C++头文件<__debug>。

从App Store更新到命令行工具6.3后,包括&lt;vector&gt;或&lt;iterator&gt;在内的程序会引发以下文件找不到错误,因为它们在内部包含&lt;__debug>。这个CPP文件无趣,但是它在其中一个包含的头文件中包含了 &lt;__debug>。c++ -O3 -...