草庐IT

clang_complete

全部标签

c++ - 有没有办法在 g++/clang++ 中使用自定义修改?

当使用C++模板,尤其是元组时,我经常会得到很长的错位名称,例如_ZN11__sanitizer13InternalAllocEmPNS_28SizeClassAllocatorLocalCacheINS_20SizeClassAllocator32ILm0ELy140737488355328ELm0ENS_12SizeClassMapILm3ELm4ELm8ELm17ELm64ELm14EEELm20ENS_15TwoLevelByteMapILy32768ELy4096ENS_20NoOpMapUnmapCallbackEEES5_EEEEm这在标称情况下显然很好,并且易于调试,但

c++ - 是否可以从 clang 的解析树中提取预处理器信息?

考虑以下简单的头文件demo.h:#definePERSISTstructSerialised{intsomeTransientValue;PERSISTintaNumberToPersist;};我使用以下代码和Clang的pythonAPI来迭代header:importsys,clang.cindexdefcallexpr_visitor(node,parent,userdata):ifnode.location.file:printnode.location.file,node.displayname,node.kindreturn2tu=clang.cindex.Index.

c++ - 使用 OpenCV 进行单相机校准 - 生成 "Complete"未失真图像时出现问题

我一直在尝试使用OpenCV的相机校准套件消除鱼眼相机的图像失真(如果相关,我使用的是GoPro)。我已经完成了大部分过程,并且可以生成未失真的图像。但是,当使用重映射时,未失真图像是“有效矩形”——换句话说,返回的图像是原始图像的裁剪版本,以避免未失真帧中固有的弯曲黑色边框。我曾尝试使用getOptimalNewCameraMatrix()来纠正这种情况,但结果非常奇怪。我希望你们中的一位可以阐明我的问题。我目前按如下方式校准相机:doubleerror=calibrateCamera(worldPoints,sensorPoints,process_size,cameraMatri

c++ - 强制 clang 为类模板实例化的从未引用的静态成员函数发出代码

我可以使用used和noinline在gcc中轻松实现此目的functionattributes(见下面的代码),但这在clang中不起作用,即使它应该支持这两个函数属性。一个简化的例子:templatestructFactory{static__attribute__((used,noinline))TcreateFoo(){returnT();}};intmain(){Factoryf;//instantiateanduseFactory}编译gcc中的代码并使用nm确认gcc正确发出函数:nm--demangletest|grepcreateFoo0000000000403185

c++ - 如何在预处理时可靠地检测 clang 的版本?

显然,与Xcode捆绑在一起的clang不遵守上游__clang_major__和__clang_minor__值,而是报告某种面向用户的Xcode版本。这里是clang的各种MacPorts安装的值,以供引用。他们似乎尊重上游版本标识符。我在Linux上测试时得到了类似的值。➜prohibit-clang-3.2/opt/local/bin/clang++-mp-3.2-dM-E-xc/dev/null|grep__clang_m#define__clang_major__3#define__clang_minor__2➜prohibit-clang-3.2/opt/local/bi

c++ - 是什么导致 clang 找不到 unordered_map header ?

我正在尝试使用Clang++编译我在网上找到的程序。Makefile生成此命令:clang++-c-archx86_64-msse3-std=c++11-stdlib=libstdc++-Wno-missing-field-initializers-Wno-missing-prototypes-Wreturn-type-Wno-non-virtual-dtor-Wno-exit-time-destructors-Wformat-Wmissing-braces-Wparentheses-Wno-switch-Wunused-function-Wunused-label-Wno-unuse

c++ - 神秘的链接器错误 "undefined reference to ` __gxx_personality_v 0'"在 cygwin 中使用 clang

我做了一些搜索,所有答案似乎都建议使用clang++而不是clang(或者更确切地说是g++代替gcc),这就是我最初所做的。尽管如此,问题仍然存在,无论是clang++-Wall-std=c++11-otest.exetest.cppA.cppB.cppetc.cpp或clang++-lstdc++-Wall-std=c++11-otest.exetest.cppA.cppB.cppetc.cpp编译和链接在Cygwin中使用g++工作正常。g++-Wall-std=c++11-otest.exetest.cppA.cppB.cppetc.cpp更新:这是链接期间的信息。clang是

c++ - 按值捕获异常 - gcc 和 clang 不同意

考虑这个简短的片段:structB{B()=default;explicitB(Bconst&){}};structD:B{};intmain(){try{throwD{};}catch(B){}}gcc接受这段代码,clang认为它格式错误:main.cpp:17:13:error:nomatchingconstructorforinitializationof'B'catch(B){^谁是对的? 最佳答案 我认为这是一个gcc错误(由于还没有人否决这个答案,我将其提交为70375)。两个编译器都正确地同意应该捕获D{},根据[e

c++ - Clang 无法在模板类特化中编译模板函数,该函数具有来自模板声明的*不同的返回类型*

以下函数derefItemX()在GCC4.8-5.3上编译正常,但在CLang3.8上编译失败://!AccessoryOperations-templateargumentdependedwrapperstemplate//ForNodes/non-scopedstoragestructOperations{//!\briefDefererencewrappedordirectiterator//!//!\paramielIItemXT&-iteratortobedereferenced//!\returnItemT&-resultingreferencetemplateconst

c++ - Clang 提示未评估的上下文中未定义的 constexpr 函数

我正在使用一个简单的SFINAE技巧来检查成员函数是否存在,如下所示:#includetemplatestructhas_size{templatestaticconstexprautocheck(T*)->decltype(std::declval().size(),std::true_type{});templatestaticconstexprautocheck(...)->std::false_type;staticconstexprboolvalue=decltype(check(nullptr))::value;};//Usage:static_assert(has_siz