Пример в «контенте сообщества» выглядит так, будто он взят из стандартного документа, но я не могу найти его ни в одном из имеющихся у меня документов ...

ошо осведомлен оРазница между классом и структуройОднако, я изо всех сил пытаюсь убедительно сказать, правильно ли это определено:

// declare foo (struct)
struct foo;

// define foo (class)
class foo {
};

// instance of foo, claiming to be a struct again! Well defined?
struct foo bar;

// mixing class and struct like this upsets at least one compiler (names are mangled differently)
const foo& test() {
   return bar;
}

int main() {
   test();
   return 0;
}

Если это неопределенное поведение, может ли кто-нибудь указать мне направление авторитетной (т. Е. Главы и стиха из ИСО) ссылки?

Компилятор с проблемами в обработке этого (Карбид 2,7) относительно стар, и все остальные компиляторы, на которых я его пробовал, вполне довольны этим, но ясно, что это ничего не доказывает.

Моя интуиция заключалась в том, что это должно быть неопределенное поведение, но я не могу найти ничего, чтобы это подтвердить, и я удивлен, что ни одна из версий GCC илиКомео Столько, сколько предупреждал об этом.

Ответы на вопрос(6)

Ваш ответ на вопрос