Kann ich Variablen aliasieren, ohne dass die Speicherkosten für eine Referenz anfallen?

8

Wenn ich den folgenden Code habe:

%Vor%

Kann ich m_member.x und m_member.y Aliase geben, ohne die zusätzlichen Speicherkosten einer Referenz zu verursachen (was einem Zeiger entspricht)? Etwas ähnliches wie ein typedef?

    
Samaursa 12.01.2012, 00:44
quelle

2 Antworten

10

Sie können Inline-Zugriffsfunktionen schreiben:

%Vor%

Dann können Sie wie folgt auf die Mitglieder zugreifen:

%Vor%

Es ist nicht genau die gleiche Syntax, aber nahe, und ein einigermaßen guter Compiler wird die Inline-Funktionen vollständig optimieren.

    
celtschk 12.01.2012, 00:50
quelle
1

In diesem Szenario würde ich nur eine Referenz verwenden, da sie dafür geeignet ist. Wenn ein Referenz-Overhead wirklich zu viel ist, würde ich einfach auf den Alias ​​verzichten und den vollständigen Ausdruck verwenden.

Allerdings könntest du das mit einem Makro erreichen (lies: böse )

%Vor%

Ich würde nicht trotzdem empfehlen. Wie alle Makros hat es jedoch einige unbeabsichtigte Konsequenzen (könnte eine falsche Referenzierung für andere gültige Verwendungen von m_x innerhalb des Typs verursachen).

Zum Beispiel

%Vor%     
JaredPar 12.01.2012 00:48
quelle

Tags und Links