On Sun, 24 Oct 2021 at 17:57, Thiago Macieira via Std-Proposals <std-proposals@lists.isocpp.org> wrote:
Also, virtual destructors aren't constexpr. So unless you're violating The
First Rule of Virtual (the destructor is virtual), your condition is a
constant false. 

That's an archaic rule, from before we understood how to write type-erasing deleters. The current guideline[1] is that the base class destructor should *either* be virtual *or* protected.

1. https://github.com/isocpp/CppCoreGuidelines/blob/036324/CppCoreGuidelines.md#c35-a-base-class-destructor-should-be-either-public-and-virtual-or-protected-and-nonvirtual