Tag: static-assert

Eine assertion-Anweisung, die überprüft wird bei der Kompilierung. Ein feature von C++11/C++14, unterstützt durch gcc seit 4.3

Wie zu tun static_assert mit Makros?

Anzahl der Antworten 5 Antworten
Habe ich versucht, dieser Vorschlag zu tun, eine statische behaupten, aber ich komme nicht auf einen Kompilierungsfehler, wenn ich es innerhalb einer Methode einer Vorlage. Das Beispiel folgt : #include <iostream> #define STATIC_ASSERT(expr, msg) \ { \

BOOST_STATIC_ASSERT ohne boost

Anzahl der Antworten 6 Antworten
Da boost ist verboten, in einer Firma für die ich arbeite, die ich implementieren müssen, um seine Funktionalität in reinem C++. Ich habe mir in boost Quellen, aber Sie scheinen zu Komplex, zu verstehen, zumindest für mich.

Spezialisierungen nur für C++ template-Funktion mit enum-nicht-Typ template-parameter

Anzahl der Antworten 3 Antworten
Diese Frage ist in Bezug auf diese eine der Ausnahme, dass anstatt sich mit typename template Parameter, ich bin versucht, eine enum-nicht-Typ template-parameter. Ist es möglich, ein-und Vorlagen (Klassen-member-Funktion) mit nur Spezialisierungen, keine Allgemeinen (Arbeits -) definition

Durchsetzung der Vorlage durch static_assert

Anzahl der Antworten 3 Antworten
Ich versuche zu verstehen, die Nützlichkeit der static_assert, und ich möchte wissen, ob es mir helfen kann bei der Vollstreckung einer design, und wenn ja, wie. Ich habe eine Allgemeine Vorlage-Klasse, die blendet seine eigene Implementierung in

Integrieren Sie geben den Namen in static_assert-Ausgang?

Anzahl der Antworten 5 Antworten
Gebe ich gern hilfreiche Fehlermeldungen, und ich auch wollen dies für meine static_asserts. Das problem ist, dass Sie abhängig sind-template-Parameter. Normalerweise wird dieser Parameter angezeigt, die auf Art oder eine andere wegen der Fehler erhöht, aber Sie

static_assert fehlschlägt, Kompilierung, obwohl template-Funktion aufgerufen wird, nirgendwo

Anzahl der Antworten 3 Antworten
Benutze ich g++ 4.6.3, (derzeit Standard-Paket für ubuntu 12.04) mit dem flag "c++0x", und ich stolpere über das: template <typename T> inline T getValue(AnObject&) { static_assert(false , "this function has to be implemented for desired type"); }

Macht GCC eine integrierte compile-Zeit-assert?

Anzahl der Antworten 8 Antworten
Unserer bestehenden compile-Zeit-assert-Implementierung basiert auf negative array index, und es bietet eine schlechte Diagnose-Ausgabe auf dem GCC. C++0x ist static_assert ist ein sehr nettes feature, und die Diagnose-Ausgabe, die es bietet, ist viel besser. Ich weiß, der

Verwenden static_assert zu überprüfen-Typen übergeben makro

Anzahl der Antworten 4 Antworten
Habe leider mehrere Makros übrig von der ursprünglichen version von "meine Bibliothek", beschäftigt ein paar ziemlich verrückte C. insbesondere habe ich eine Reihe von Makros, die erwarten, dass bestimmte Typen zu übergeben. Ist es möglich zu tun,

Statische Behauptung in C

Anzahl der Antworten 8 Antworten
Was ist der beste Weg, das zu erreichen compile-Zeit statisch behauptet in C (nicht C++), mit besonderem Schwerpunkt auf den GCC? InformationsquelleAutor der Frage Matt Joiner | 2010-08-02

Wie schränke ich eine Vorlagenklasse auf bestimmte integrierte Typen ein?

Anzahl der Antworten 3 Antworten
Dieses Problem diskutiert wurde, ein paar mal, aber alle Lösungen die ich gefunden habe entweder nicht funktioniert oder waren basiert auf Erhöhung der statischen geltend zu machen. Mein problem ist einfach. Ich habe eine Klasse, und ich

Wie überprüfe ich, ob zwei Typen bei Compiletime gleich sind (Bonuspunkte, wenn es mit Boost stark typedef funktioniert)

Anzahl der Antworten 1 Antworten
Ich Frage mich, ob es möglich ist, zu überprüfen, ob die 2 Typen sind die gleichen, die zur Kompilierzeit. Was ich kam mit ist(idk wenn es funktioniert, weil es fühlt sich hackish-und IDK-standard, gut so IDK was

Was macht static_assert, und wofür würden Sie es verwenden?

Anzahl der Antworten 7 Antworten
Könnten Sie ein Beispiel geben, wo static_assert(...) 'C++0x' würde das problem lösen, in der hand aus? Ich bin vertraut mit der run-time assert(...). Wann sollte ich lieber static_assert(...) über regelmäßige assert(...)? Auch in boost es ist etwas

C ++ 11 - static_assert in der constexpr-Funktion?

Anzahl der Antworten 2 Antworten
Wie man richtig machen eine static_assert innerhalb einer constexpr Funktion? Zum Beispiel: constexpr int do_something(int x) { static_assert(x > 0, "x must be > 0"); return x + 5; } Dies ist kein gültiges C++11 code, weil

Möglichkeiten, Ausdrücke zur Erstellungszeit in C zu bewerten

Anzahl der Antworten 11 Antworten
Bin ich Aufräumen einige ältere code mit 'magischen zahlen' ganz über dem Platz für hardware registriert, und ich möchte die Konstanten verwenden, anstatt diese zahlen, um damit den code etwas mehr expressive (in der Tat werden Sie

Wie überprüft man die Größe einer Struktur zur Kompilierzeit?

Anzahl der Antworten 5 Antworten
Möchte ich hinzufügen, dass code, der während der Kompilierung überprüft die Größe einer Struktur, um sicherzustellen, dass es ist eine VORGEGEBENE Größe. Ich zum Beispiel sicherstellen möchten, dass die Größe dieser Struktur ist 1024 byte, wenn ich