https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54351
--- Comment #14 from TC <rs2740 at gmail dot com> --- Well, I would have argued that if the specification doesn't say that a function does X, then it doesn't do X. NullablePointer/CopyAssignable only means that the assignment operation must be supported. But then I realized that a literal reading of the specification would mean that the deleter must be called using a copy of the stored pointer - the return value of get() - rather than the stored pointer itself (again, hypothetically detectable using an instrumented fancy pointer-like thing). Which would be just absurd.