Пример в «контенте сообщества» выглядит так, будто он взят из стандартного документа, но я не могу найти его ни в одном из имеющихся у меня документов ...
ошо осведомлен оРазница между классом и структуройОднако, я изо всех сил пытаюсь убедительно сказать, правильно ли это определено:
// 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 илиКомео Столько, сколько предупреждал об этом.