Предположим, что я хочу вызвать внешнюю функцию моего объекта для выполнения некоторых проверок внутри конструктора body. Поскольку срок жизни объекта начинается, когда тело конструктора заканчивает выполнение, является ли это небезопасным дизайном?
struct A;
void check(A const&) { /* */ }
struct A
{
A() { check(*this); }
};
Я имею в виду, я вызываю и внешнюю функцию с еще не живым объектом. Это поведение undefined?
Связанные вопросы: если я поместил эту функцию проверки как функцию-член (статический или нет), что говорит стандарт об использовании объектов, не являющихся еще живыми вне конструктора, но внутри класса?
Есть ли какая-то разница в концепции жизни между точкой зрения класса и его пользователями (что-то вроде жизни класса или вне класса)?