Es sieht aus wie Verwendung von Eigenen Typen mit STL-Containern ist sehr chaotisch und erfordert besondere Aufmerksamkeit auf Ausrichtungsprobleme. Mein Problem ist, dass ich plane, eine komplexe Klassenhierarchie mit Dutzenden von Klassen zu erstellen, die einen oder mehrere Eigen-Typen als Mitgliedsvariablen enthalten können. Aus der Dokumentation geht hervor, dass Ihre Klasse, sobald Sie die Eigenschaftsvariablen Eigen eingeben, mit den gleichen Problemen "infiziert" wird wie die Eigenarten. Das bedeutet, dass ich besonders darauf achten muss, STL-Container nicht nur für Eigen-Typen, sondern auch für all meine Dutzende von Klassen zu verwenden.Verwenden von Eigenen Typen mit STL-Containern und Std :: vector
Noch schlimmerer Teil, der mich beunruhigt, ist, dass jeder, der Instanzen meiner Klassen in ihrem Code verwendet, dieselben Probleme haben und benötigt werden, um Experte zu diesem Thema zu sein - selbst wenn meine Klassen keinen Eigenen Typen in enthüllten ihre öffentliche Schnittstelle!
Das ist ziemlich frustrierend. Fragen, die ich habe,
- Ist mein Verständnis oben korrekt (ich muss nur C++ 11 und moderne Compiler unterstützen)?
- Gibt es ein Muster, das Leute benutzen, damit sie ihren Code nicht mit speziellen Eigenen umgehen müssen, die überall herumlaufen?
- Ich denke darüber nach, die gesamte Vektorisierung global zu deaktivieren. Würde das obige Problem auf Kosten der Leistung lösen? Kann es selektiv nur für bestimmten Code aktiviert werden?
- Wenn ich vergesse, irgendwo im Code auf das Alignment-Problem zu achten, bekomme ich immer Kompilierzeit Fehler ODER Problem kann versteckt bleiben und es kann zur Laufzeit zum Absturz kommen?
Schnelle Frage: Wenn ich vergesse, um Ausrichtung Problem irgendwo im Code zu kümmern, bekomme ich immer Kompilierzeit Fehler ODER Problem kann versteckt bleiben und es kann zur Laufzeit zum Absturz kommen? – ShitalShah
BTW, Ich habe meine Antwort bearbeitet, um Ihre letzte Frage zu beantworten. – ggael