typetraits

Typeigenschaften sind syntaktische Erweiterungen, die es dem Entwickler ermöglichen, zur Kompilierzeit verschiedene Eigenschaften eines Typs zu bestimmen. C ++ - Unterstützung wird durch eine Kombination aus Compilerunterstützung und einer Reihe von Bibliotheksvorlagen bereitgestellt. Der Zugriff auf die Typmerkmale erfolgt über den Header
1
Antwort

has_equal_operator Implementierung in C ++ 11

Ich versuche, has_equal_operator in C ++ 11 zu implementieren und bis jetzt kam folgende Lösung. Es funktioniert für einfache Fälle wie int oder struct A{} , scheitert aber (gibt false positive aus) für std::vector<A> . Warum sch...
12.05.2016, 04:55
1
Antwort

Makro, um den Typ eines Ausdrucks zu erhalten

Frage Ich versuche, ein C ++ - Makro zu schreiben, das entweder type oder type name als Eingabe verwendet und type als Ausgabe. Zum Beispiel: REMOVE_NAME(int) sollte int sein REMOVE_NAME(int aNumber) sollte auch...
03.09.2012, 13:20
3
Antworten

Ermittelt, ob die Struktur eine Auffüllung hat

Gibt es einen Weg (Eigenschaft oder so) zu erkennen, ob struct / class etwas Padding hat? Ich brauche keine plattformübergreifende oder standardisierte Lösung, ich brauche es für MSVC2013. Ich kann es überprüfen wie %Vor% Aber C ++ erl...
14.08.2015, 09:50
1
Antwort

Wie erzwinge ich die Begrenzung der Kind-of-X-Beschränkung auf den Template-Parameter?

Angenommen, ich möchte die Einschränkung erzwingen, dass der übergebene Template-Parameter ein Kind von Foo ist. Gibt es eine Möglichkeit, dies durch Typeigenschaften durchzusetzen? Ein Kompilierungszeit static_assert Fehler wäre großart...
25.12.2012, 06:59
3
Antworten

C ++ is_trivial_copyable check

Wie überprüft man, ob der C ++ Typ trivial kopierbar ist? Ich habe eine Klasse, die memcpy- und memcmp-Funktionen mit dem angegebenen Vorlagentyp T verwendet, und ich möchte Assert für Typen ausgeben, die nicht sicher mit memcpy kopiert werden k...
14.02.2011, 16:11
2
Antworten

Parameterpaket aware std :: is_base_of ()

Gibt es eine Möglichkeit, eine statische Assertion zu haben, ob ein Typ, der als Template-Argument zur Verfügung gestellt wird, alle Typen implementiert, die im Parameterpack aufgelistet sind, dh. ein Parameterpack aware std :: is_base_of ()?...
26.11.2012, 10:24
3
Antworten

Kompilierzeit-Template-Instanziierungsprüfung

Ist es möglich zu überprüfen, ob ein Template-Typ zur Kompilierzeit instanziiert wurde, damit ich diese Informationen in einer enable_if-Spezialisierung verwenden kann? Sagen wir, ich habe %Vor% Kann ich irgendwie einen is_known_type defi...
27.01.2015, 20:55
2
Antworten

Warum ist std :: is_assignable nicht intuitiv?

std::is_assignable<int, int>::value == false in einer übereinstimmenden Implementierung (z. B. clang / libc ++, gcc / libstdc ++, aber nicht VS2012). Intuitiv bedeutet dies, dass ein Ausdruck wie int x = 3; ungültig ist. Die Angab...
12.11.2013, 03:14
2
Antworten

C ++ - Vorlage auf Anwesenheit / Abwesenheit eines Klassenmitglieds spezialisieren?

Betrachten Sie Folgendes: %Vor% Ich möchte C so spezialisieren, dass C & lt; A & gt; bekommt eine Spezialisierung und C & lt; B & gt; bekommt das andere, basierend auf der Anwesenheit oder Abwesenheit des Typenamens T :: foo. Ist das möglich...
27.04.2012, 16:53
3
Antworten

Erzwingen, virtuell von einer Klasse abzuleiten

Wir haben ein spezielles Framework für Schnittstellen in unserem Projekt, und ein Teil der Anforderungen besteht darin, dass Klassen, die eine Schnittstelle darstellen, nur als virtuelle Basisklassen und nicht als nicht-virtuelle Klassen verwend...
09.05.2013, 07:16