Najprostszym sposobem na to pytanie jest z jakiegoś kodu:Obsada wskaźnik do tablicy o stałym rozmiarze w instrukcji return
struct Point
{
int x;
int y;
int z;
int* as_pointer() { return &x; } // works
int (&as_array_ref())[3] { return &x; } // does not work
};
as_pointer
kompiluje, as_array_ref
nie. Wydaje się, że obsada jest w porządku, ale nie mogę znaleźć odpowiedniej składni. Jakieś pomysły?
Czy chcesz, aby kompilator udawał, że 'x' jest w rzeczywistości tablicą trzech' int'ów? Nie ma żadnej gwarancji, że to zadziała; kompilatory mogą dodawać dopełnienie między elementami danych w sposób inny niż ten, w którym układają tablice. –