使用下面的proto文件
message Foo {
// ...
}
message MyMessage {
Foo foo = 1;
}
我使用生成的set_allocated_foo
方法设置foo
,该方法获取指针的所有权:
MyMessage m;
m.set_allocated_foo(new Foo);
不过,当m
离开作用域时,clang-tidy会给我以下警告:
warning: Potential memory leak [clang-analyzer-cplusplus.NewDeleteLeaks]
}
^
note: Memory is allocated
m.set_allocated_foo(new Foo);
^
有什么方法可以避免这种情况吗?(不使用// NOLINT
)
发布于 2021-05-21 01:24:53
一种方法是使用#ifdef __clang_analyzer__
MyMessage m;
auto* f = new Foo;
m.set_allocated_foo(f);
#ifdef __clang_analyzer__
delete f
#endif
我不知道这是不是最好的方法。
https://stackoverflow.com/questions/65667955
复制相似问题