当我尝试使用clang++来检测语义时,我的程序可以用gcc编译。当我使用clang检测语义时,我得到:
错误/没有可行的重载'*=‘
问题发生在我从开源项目中包含的一个标头上。
std::vector<double> Hc;
checksum(H,Hc);
Hc*=1.0/mrpt::math::maximum(Hc);我认为问题是因为clang的STLib头与我的Ubuntu的C++头不同,并且它们没有覆盖*= opt。我加了
-std=c++11
-stdlib=libc++11
-nodefaultlibs 并尝试了这个http://libcxx.llvm.org,但唯一的错误仍然存在。事实上,我正在尝试YouCompleteMe插件的vim。这个插件只需要编译语义,不需要链接步骤。我也不能改变头像。'-isystem没有解决‘我应该做什么来强制clang检查系统STL头而不是clang的语义?
发布于 2016-02-06 00:39:05
对于记录来说,这确实是MRPT头中的一个错误,最近解决了这个问题。所以,这不是clang++的错,其实更新的gcc 6.0也检测到了错误。
https://stackoverflow.com/questions/29918008
复制相似问题