объекта забинженного к ссылке на подобъект (не уверен, что фраза получилась понятной, надеюсь пример прояснит вопрос)?
struct X {
~X() { std::cout << "~X()\n"; }
};
struct Y {
X const & x;
//Y(X const & x) : x(x) {}
~Y() { std::cout << "~Y()\n"; }
};
int main() {
Y y{X{}};
std::cout << "main body\n";
}
меня смущает, что если расскомментировать конструктор Y, поведение меняется. Зачем надо было, чтобы в случае aggregate initialization пример магически работал? Есть ли какие-то примеры из реальной жизни, когда это действительно полезно?
а стандарт то какой?
В этом примере в MSVC ничего не меняется.
Обсуждают сегодня