Warum kann ich keine Referenz auf ein gepacktes Feld zurückgeben?

8

Ich verwende g ++, um Code mit gepackten Feldern zu kompilieren. Ich erhalte jedoch einen Fehler, wenn ich versuche, einen Verweis auf ein gepacktes Feld zurückzugeben.

Beispiel:

%Vor%

ergibt einen Fehler:

%Vor%

Warum kann ich keine Referenz auf ein gepacktes Feld zurückgeben?

    
gexicide 15.12.2014, 19:17
quelle

1 Antwort

2

Es gibt einen gcc-Fehlerbericht Das gepackte Feld kann nicht gebunden werden , das deckt dies ab und es heißt:

  

Die C ++ - Spezifikation (C ++ 03, Abschn. 3.9, 3.9.1, 3.9.2) ist sehr klar, dass T und "Zeiger auf T" implementierungsspezifische Ausrichtungsanforderungen haben. Wenn Sie einen "Zeiger auf T" haben, können Sie davon ausgehen, dass es die Ausrichtungsanforderungen erfüllt. Ich bin sicher, dass die C-Spezifikation eine ähnliche Sprache hat.

     

Im folgenden Fall könnte der folgende Code die Ausrichtungsanforderungen verletzen

Sie schlagen eine Problemumgehung mit dem alignment -Attribut vor, um Ihren eigenen ausgerichteten Typ zu definieren, aber es sieht nicht so aus, als ob es funktioniert.

    
Shafik Yaghmour 15.12.2014 19:21
quelle

Tags und Links