#include <cstdio>	// for printf.

struct b
{
	virtual ~b() = 0;
	virtual auto f() -> void = 0;
};

// 気が変わった
b::~b(){}

struct d : b
{
	virtual ~d() {}
	auto f() -> void override { std::printf("d::f\n"); };
};

auto main() -> int
{
	d i;
	static_cast<b *>(&i)->f();
}
