libc++'s move constructor avoids the indirect call for allocated targets.
This library doesn't because of support for fancy pointers and nontrivial allocator destructors. The wrapper should be able to handle moves, absent those corner cases.
The behavior could be selected by a new vtable slot, or something besides a valid function pointer or nullptr in the move_constructor_destructor slot.
libc++'s move constructor avoids the indirect call for allocated targets.
This library doesn't because of support for fancy pointers and nontrivial allocator destructors. The wrapper should be able to handle moves, absent those corner cases.
The behavior could be selected by a new vtable slot, or something besides a valid function pointer or nullptr in the
move_constructor_destructor
slot.