zircon-temporary-objects¶
警告 Zircon 内核中特定临时对象的构造。如果应该标记对象,如果应该标记对象,则必须显式地将完全限定的类型名称传递给检查。
例如,给定类列表“Foo”和“NS::Bar”,以下所有内容都将触发警告
Foo();
Foo F = Foo();
func(Foo());
namespace NS {
Bar();
}
使用相同的列表,以下不会触发警告
Foo F; // Non-temporary construction okay
Foo F(param); // Non-temporary construction okay
Foo *F = new Foo(); // New construction okay
Bar(); // Not NS::Bar, so okay
NS::Bar B; // Non-temporary construction okay
请注意,必须显式指定对象才能进行标记,因此继承指定对象的子类不会被标记。
此检查匹配临时对象,而与继承无关,因此禁止的基类类型不会同样禁止派生类类型。
class Derived : Foo {} // Derived is not explicitly disallowed
Derived(); // and so temporary construction is okay
选项¶
- Names¶
以分号分隔的 C++ 类完全限定名称列表,这些名称不应该作为临时对象进行构造。默认值为为空。