«Время жизни» не значит это.Это точно определенный термин в стандарте, который имеет множество последствий, но он может не иметь всех последствий, о которых вы могли бы подумать.Члены по-прежнему могут использоваться во время конструирования и уничтожения, внешний код может вызывать функции-члены и т. Д. И т. Д.
Конечно, для клиентского кода немного странно вызывать функции-члены одновременно с деструктором, но не случайно.конечно не запрещено языком.В частности, std::condition_variable
явно позволяет вызывать деструктор, пока имеются ожидающие вызовы condition_variable::wait()
.Он запрещает новые вызовы wait()
после запуска деструктора.