2016-07-17 3 views
-2

Ich versuche, eine Klasse zu schreiben, die das Konzept Container mit gcc 6 erfordern sollte.So verwenden Sie Konzepte mit gcc 6

Was ich versucht ist:

class MyContainer { ... }; 
static_assert(std::Container<MyContainer>); 

Aber ich kann nicht verwalten, um es zu kompilieren zu machen.

+0

Hallo, das (Ihr Kommentar und das doppelte Thema) beantwortet meine Frage nicht, wie man mein Programm kompiliert? Was ist die korrekte Syntax? – Brahim

+0

Also ... woher kommt 'std :: Container'? –

+3

Sie sollten die ersten paar Absätze Ihres Links lesen; Sie erklären, dass die dort aufgeführten "Konzepte" nur dazu dienen, zu erklären, wie sich dieser Objekttyp verhalten soll, und keine greifbaren Objekte oder Sprachkonstrukte zu definieren. Sie können es mit den Konzepten TS, die hier erklärt werden, verwirren: http://en.cppreference.com/w/cpp/language/constraints – vu1p3n0x

Antwort

1

Konzepte TS enthält keine tatsächlichen Konzepte. Es ist nur die Sprachfunktion. Die vom C++ - Standard verwendeten "Konzepte" sind nicht implementiert von Concepts TS.

Also diese std::Container, die Sie versuchen zuzugreifen, existiert nicht. Sie können die Anforderungen lesen, die der Standard verwendet, und erstellen eins.