Ich frage mich, ob es einen Weg gibt, wie ich einen Feldnamen an eine Funktionsvorlage übergeben könnte. Betrachten Sie das folgende:Übergabe des Feldnamens an eine Funktionsvorlage
struct Type1{
unsigned int Field1;
unsigned int Field2;
};
struct Type2{
unsigned int Field2;
unsigned int Field3;
};
template <typename TYPE>
bool MyFunction(TYPE _Type){
if(_Type.Field1==5)
return false;
}
Dies funktioniert gut, aber innerhalb MyFunction
ich .Field1
bin Angabe, ist es eine Möglichkeit, den Namen dieses Feldes in eine Vorlage passieren kann, zum Beispiel:
void TestFunction(){
Type1 mt1;
MyFunction(mt1, Field1);
}
Klar Ich schreibe hier keinen Typ, und ich weiß nicht, wie das heißen soll (abgesehen von der offensichtlichen Antwort - albern!), Also habe ich Mühe, nach einer Lösung zu suchen.
Vielleicht möchten Sie in das Zeiger-zu-Element-Konzept schauen. –
Nicht verwandt mit der Frage, die Sie stellen möchten, aber "_Type" ist für die Implementierung reserviert, Sie dürfen sie also nicht verwenden (d. H., Dies führt zu undefiniertem Verhalten). –
@ n.m. Danke, ich wollte gerade antworten Ich werde anfangen zu suchen, bis die Antworten hereinkamen! :) – R4D4