I have those classes:
#include template class A { public: static_assert(std::is_default_constructible_v)
Undefined behavior it is:
If an instantiation of a template above depends, directly or indirectly, on an incomplete type, and that instantiation could yield a different result if that type were hypothetically completed, the behavior is undefined.