cppcoreguidelines-slicing

检测成员变量或 vtable 的切片操作。当将派生对象复制到基对象时,会发生切片:派生对象的成员(包括成员变量和虚拟成员函数)将被丢弃。这在成员函数切片的情况下可能会产生误导,例如

struct B { int a; virtual int f(); };
struct D : B { int b; int f() override; };

void use(B b) {  // Missing reference, intended?
  b.f();  // Calls B::f.
}

D d;
use(d);  // Slice.

此检查实现了 C++ 核心准则中的 ES.63C.145