我有以下代码:
#include <iostream>
#include <memory>
using namespace std;
class A
{
public:
void foo() const;
};
void A::foo() const {}
std::unique_ptr<A> foo2()
{
std::unique_ptr<A> pa(new A());
return pa;
}
void
foo()
{
const A& ra = *foo2();
ra.foo();
}
int
main()
{
foo();
return 0;
}
我正在尝试使用clang的scan-build:
scan-build g++ --std=c++11 unique_ptr.cpp
该程序使用g ++编译并运行良好。 我使用的是CentOS和clang3.8以及g ++ 4.8.5。
错误讯息:
error: no type named 'unique_ptr' in namespace 'std'
std::unique_ptr<A> foo2()
~~~~~^
答案 0 :(得分:3)
您应该使用:
pay
而不是:
scan-build g++ -std=c++11 unique_ptr.cpp
scan-build g++ --std=c++11 unique_ptr.cpp
有效(虽然-std
没有),因为--std
专门检查scan-build
标志。
在clang/tools/scan-build/libexec/ccc-analyzer
中:
-std