Tag: c++14
C++14 ist der name der C++ – standard, genehmigt im Jahr 2014. Es baut auf dem bisherigen standard C++11, die Verbesserung der core-Sprache und standard-Bibliothek und das hinzufügen einiger Funktionen.
1
Antworten
Ich versuche eine Lösung zu finden, was vielleicht ein sehr triviales problem. Ich möchte meine initialisieren const unordered_map in der Klasse Initialisierungsliste. Aber ich bin noch zu finden, die syntax, die der compiler (GCC 6.2.0) akzeptieren. Ein
1
Antworten
Dies ist eine Frage, was tun Sie für die elementsSize() member-Funktion, in Bezug auf die automatische Rückgabetyp Abzug: #include <iostream> #include <vector> template<typename Element> class ElementVector { std::vector<Element> elementVec_; //Other attributes. public: ElementVector() = default; ElementVector(const std::initializer_list<Element>&
3
Antworten
Habe ich eine Klasse, die so aussieht: template<typename T> using VectorPtr=std::vector<std::unique_ptr<T>>; template<typename T> using VectorRawPtr=std::vector<T*>; class ItemsSet{ //<-- Compiler say this line contans an error 0_o ? public: ItemsSet(VectorPtr<Item>& items); ~ItemsSet() = default; VectorRawPtr<Item> GetItems(); VectorRawPtr<Item> GetSuitableItemsForPeriod(const
2
Antworten
Finde ich, dass in der Praxis mit einer Vielzahl von C++11/C++14-Compiler, ein std::atomic hat einen undefinierten Anfangswert nur, wie es wäre, wenn es ein "raw" - Typ. Das heißt, wir erwarten, dass für die expression int a;
4
Antworten
Entsprechend der cppreference.com Referenz-Website auf std::shufle, die folgende Methode ist als deprecated in c++14: template< class RandomIt > void random_shuffle( RandomIt first, RandomIt last ); Warum werden wir nicht mehr in der Lage, rufen Sie die folgende
5
Antworten
Arbeite ich mit der Erinnerung an einige Lambda-Ausdrücke in C++, aber ich bin ein bisschen verwirrt durch Ihre Größe. Hier ist mein test-code: #include <iostream> #include <string> int main() { auto f = (){ return 17; };
4
Antworten
Mit Clang 3.5, 3.6 oder 3.7, mit der fahne std=c++1y den folgenden code nicht kompiliert : #include <iostream> auto foo(auto bar) { return bar; } int main() { std::cout << foo(5.0f) << std::endl; } Den Fehler gegeben
1
Antworten
Initialisierung einer struct mit default-Werten ist trivial: struct X { int a; int b = 2; }; und die Initialisierung einer Struktur mit einer Klammer Initialisierung trivial zu: X x = {1, 3}; Überraschend die init-code wird
3
Antworten
Nehme an, dass ich zum erstellen eines compile-Zeit konstruiert bit-count-lookup-Tabelle für 64-bit-Ganzzahlen, 16 bit-Blöcken. Ich weiß nur einen Weg, dies zu tun ist den folgenden code: #define B4(n) n, n + 1, n + 1, n +
1
Antworten
==> Siehe das code-snippet und Zusammenstellung auf coliru. Ich habe eine LiteralType Klasse Füllung constexpr Anforderungen: struct MyString { constexpr MyString(char const* p, int s) : ptr(p), sz(s) {} constexpr char const* data() const { return ptr;
1
Antworten
Clang 3.3 unterstützt einige C++14 features, wie die Initialisierungen und Aggregate. Allerdings bin ich nicht in der Lage um diesen code zu kompilieren, auch mit -std=c++11 wechseln. struct A { struct X { int a, b; };
1
Antworten
Herb Sutter schreibt hier (auf seiner ISO-C++ - Frühjahr 2013 treffen Reise-Bericht), dass eine Vernetzung der Bibliothek ist geplant, die Hinzugefügt werden, um C++14. Welche Funktionen würden diese Bibliothek zu Beginn? Was liegt zugrunde? Gibt es einen
4
Antworten
In unserem Projekt verwenden wir eine ganze Menge von "aufzuhalten der Benutzung" zu, die explizit angeben, welche variable darstellen sollen. Es ist vor allem für std::string identificators wie PortalId oder CakeId. Nun, was wir derzeit tun können,
4
Antworten
Möchte ich einen Zeiger auf eine Klasse als template-parameter ein, wie in: template <class Class, class Result, Result Class::*Member> struct MyStruct { //... }; Verwendung dieser Struktur wie MyStruct<SomeClass, SomeResult, &SomeClass::value> variable funktioniert Prima, aber ich mag
9
Antworten
Muss ich generieren random Boolean-Werte, die sich auf einen performance-kritischen Weg. Den code, den ich schrieb, für diese ist std::random_device rd; std::uniform_int_distribution<> randomizer(0, 1); const int val randomizer(std::mt19937(rd())); const bool isDirectionChanged = static_cast<bool>(val); Aber glaube nicht, dass
1
Antworten
constexpr - Funktionen sind nicht enthalten soll: Definition einer Variablen von nicht-wörtliche Art Aber in diese Antwort ein lambda-Ausdruck definiert ist, in einem: https://stackoverflow.com/a/41616651/2642059 template <typename T> constexpr auto make_div(const T quot, const T rem) { return
1
Antworten
Was ist die richtige Art und Weise zu initialisieren static Mitglieder-Daten in C++? Ich bin auch daran interessiert, wie es sich verändert hat von C++98, C++11, C++14. Hier ist ein Beispiel: //bufferedOutput.h class BufferedOutput { //Static member
2
Antworten
Ich bin sehr verwirrt darüber, Wert- & Standard- & null-Initialisierung. und vor allem, wenn Sie kick für die verschiedenen standards C++03 und C++11 (und C++14). Ich bin zitiert und versucht zu verlängern, eine wirklich gute Antwort Wert-/Standard-/Zero
6
Antworten
Wann sollte ich erklären, meine Funktion als: void foo(Widget w); im Gegensatz zu void foo(Widget&& w);? Nehme an, dies ist der einzige überlastung (wie in, ich wählen Sie eine oder das andere, nicht beide und keine anderen
7
Antworten
Als von C++14, Dank n3781 (die in sich selbst keine Antwort auf diese Frage) vielleicht schreiben wir einen code wie den folgenden: const int x = 1'234; //one thousand two hundred and thirty four Ziel ist die
4
Antworten
Sowohl mithilfe von gcc mit -std=c11-und g++ - mit -std=c++14. E. g. für eine Datei mit dem Namen src/dir/Hello.cxx es sollte zu erweitern, um so etwas wie z.B.: const char basename = "Hello"; oder const char basename
7
Antworten
Jeder weiß, dass die desructor der Basis-Klasse in der Regel werden virtuelle. Aber was ist über den Destruktor der abgeleiteten Klasse? In C++11 wir haben das Schlüsselwort "override" und die Fähigkeit zur Nutzung der Standard-Destruktor explizit. struct
2
Antworten
Wie können die Grafik-Funktionen verwendet werden, die in Visual Studio 2017 (C++) ohne Verwendung von BGI-Bibliothek? Welche header-Datei verwendet wird? Ich möchte diese Funktionen nutzen zu können, Dinge zu tun, wie das zeichnen eines Kreises. Verwenden Sie
2
Antworten
Sah ich Walter Browns Vortrag auf Cppcon14 über moderne template-Programmierung ( Teil I , Teil II), wo er präsentiert seine void_t SFINAE-Technik. Beispiel: Eine einfache variable Vorlage ausgewertet void wenn alle template-Argumente sind gut ausgebildet: template< class
11
Antworten
Mit fast allen code, den ich Schreibe, bin ich oft Umgang mit set Reduzierung der Probleme, die auf Sammlungen, die letztendlich mit naiven "wenn" - Bedingungen im inneren von Ihnen. Hier ein einfaches Beispiel: for(int i=0; i<myCollection.size();
3
Antworten
Die Beschreibung von std::is_void besagt, dass: Stellt das Mitglied Konstanten Wert gleich true, wenn T die Typ void, const void, volatile void, oder const volatile void. Dann, was das sein könnte const void oder eine volatile void
2
Antworten
Hintergrund Für eine lange Zeit, gcc zur Verfügung gestellt hat eine Reihe von builtin-bit-twiddling-Funktionen, insbesondere die Anzahl der Leerzeichen am Anfang und Ende 0-bits (auch für long unsigned und long long unsigned, die Suffixe l und ll):
4
Antworten
Ich habe folgenden Fall, der arbeitet mit std::enable_if : template<typename T, typename std::enable_if<std::is_same<int, T>::value>::type* = nullptr> void f() { } template<typename T, typename std::enable_if<std::is_same<double, T>::value>::type* = nullptr> void f() { } Nun, ich sah in cppreference die
4
Antworten
Ich bin zurzeit mit C++11-features in meinem Qt-Anwendungen. Allerdings würde ich gerne einige der neuen C++14-features in eigene Anwendungen. Aktivieren der C++11 in eine Qt-Anwendung, muss man nur fügen Sie eine Zeile in der qmake Projekt-Datei, nämlich:
2
Antworten
Ich versuche zu verwenden std::make_unique instantiieren einer Klasse, deren Konstruktor erhalten, der eine std::initializer_list. Hier ein minimal-Fall : #include <string> #include <vector> #include <initializer_list> #include <memory> struct Foo { Foo(std::initializer_list<std::string> strings) : strings(strings) {} std::vector<std::string> strings; };
3
Antworten
Wenn ich initialisieren std::array wie folgt, der compiler gibt mir eine Warnung über fehlende Klammern std::array<int, 4> a = {1, 2, 3, 4}; Dieser behebt das problem: std::array<int, 4> a = {{1, 2, 3, 4}}; Dies ist
2
Antworten
Ich zusammengestellt gcc und cmake (in dieser Reihenfolge) in meinem home-Ordner auf einem server heute (der compiler auf dem server ist 5 Jahre alt und ich brauche C++14 Funktionen,...). Ist es kein problem, wenn ich zum Beispiel
2
Antworten
Ich versuche, um das Paket herunterzuladen statsmodels durch ausführen in der Eingabeaufforderung(admin) mit diesem Befehl: pip3 install statsmodels und ich bekomme diese Fehlermeldung “Fehler: Microsoft Visual C++ 14.0 erforderlich ist. Holen Sie es mit "Microsoft Visual C++
8
Antworten
Ich versuche zu speichern in einer std::tuple eine unterschiedliche Anzahl von Werten, die später verwendet werden als Argumente für einen Aufruf einer Funktion, Zeiger mit dem gespeicherten Typen. Habe ich ein Vereinfachtes Beispiel zeigt das problem, das
2
Antworten
In c++14 den decltype(auto) idiom eingeführt. In der Regel seine Verwendung ist für ermöglichen auto Erklärungen zur Verwendung der decltype Regeln, die auf dem gegebenen Ausdruck. Suche für Beispiele von "guten" Gebrauch der Redewendung kann ich nur
2
Antworten
Hallo ich habe eine text-Datei, die ich lese und ich muss wissen, ob diese Zeichenfolge enthält [ also habe ich benutzt : if(array[i] == "[") Aber das problem ist, dass es nicht [ es ist array =
1
Antworten
Bin ich mit einer std::thread in meinem C++ code ständig poll für einige Daten & fügen Sie es in einen Puffer. Ich benutze eine C++ lambda zu starten, den thread wie folgt: StartMyThread() { thread_running = true;
1
Antworten
Ich denke, dass in C++14 mehr restrictives entfernt von constexpr. Aber nach N3797 7.1.5 3-punct: Die definition eines contexpr Funktion shal erfüllen die folgenden Einschränkungen: es darf nicht sein, virtuelle der Rückgabetyp ist ein literal-Typ; jedem Ihrer
3
Antworten
Gibt es eine Möglichkeit für den Benutzer zur Eingabe einer Binär-Zahl in C oder C++? Wenn wir so etwas schreiben int a = 0b1010; std::cout << a << std::endl Dann die Ausgabe kommt heraus 10 (bei Verwendung
2
Antworten
Also in meinem CSE-natürlich bekommen wir eine header-Datei zu verwenden, gerade jetzt für unsere Programme, die wir schreiben. Leider kann ich nicht bekommen-terminal zum kompilieren verwenden, die header, es gibt durchaus ein paar Fehler (kompilieren nur mit
2
Antworten
Installiert ich habe Code::Blocks für Windows und wollen kompilieren von C++14-code generische lambdas aber die binary-version von Code::Blocks, die ich installiert habe, von codeblocks.org unterstützt nicht die fahne -std=c++14. Wie aktualisiere ich den compiler, und aktivieren Sie
6
Antworten
Frage ich mich, ob es gibt ein Licht, geradlinig zu berechnen Schleifen wie for und range-basierte for-Schleifen parallel in C++. Wie würden Sie die Implementierung einer solchen Sache? Von Scala ich kenne die map -, filter-und foreach-Funktionen
6
Antworten
#include <memory> class bar{}; void foo(bar &object){ std::unique_ptr<bar> pointer = &object; } Will ich weisen Sie eine Adresse des Objekts, auf den Zeiger. Der obige code natürlich nicht kompilieren, da die Rechte Seite des zuweisungsoperators muss eine
1
Antworten
Habe ich installiert, gcc 4.9.2. Ich kompilierte das Programm mit dem folgenden Befehl: /root/gcc-4.9.2/bin/g++ -std=c++1y testing.cpp Beachten Sie, dass zusätzlich zu der option "-std=c++1y", gibt es eine weitere option "-std=c++14". Wird der compiler die Arbeit in der
3
Antworten
In mit std::unique_ptr mit einer custom deleter habe ich den Wunsch verwenden std::make_unique eher als eine raw-neue. Ich bin mit VC++2013. Es scheint mir, dass es keine Möglichkeit gibt, zu verwenden std::unique_ptr wenn Sie einen custom deleter.
3
Antworten
Da C++14 wir können generische lambdas: auto generic_lambda = (auto param) {}; Dies bedeutet im Grunde, dass seine call-operator Vorlagen basierend auf den Parametern, die mit auto markiert. Die Frage ist, wie man eine lambda akzeptieren
3
Antworten
Diesem snippet kompiliert, ohne Fehler in Visual Studio 2013 (Version 12.0.31101.00 Update 4) class A { public: A(){} A(A &&){} }; int main(int, char*) { A a; new A(a); return 0; } während der Kompilierung mit dieser
4
Antworten
In diesem trivialen Beispiel test2 nicht kompiliert werden, obwohl test1 gelingt, und ich sehe nicht, warum das der Fall ist. Wenn arr[i] geeignet ist für einen Rückgabewert aus einer Funktion markiert constexpr kann, warum kann es nicht
2
Antworten
Traditionell, standard und portable Weg, um zu vermeiden, mehrere header-Einschlüsse in C++ war/ist die Verwendung der #ifndef - #define - #endifpre-compiler-Direktiven-Schema auch als makro-guard-Schema (siehe code-snippet unten). #ifndef MY_HEADER_HPP #define MY_HEADER_HPP ... #endif In den meisten Implementierungen/Compiler
1
Antworten
string_view zu sein scheint, eine vorgeschlagene Funktion innerhalb des C++ - Bibliothek Grundlagen TS: N3921 Soweit ich das verstanden habe ist es eine Art, die repräsentieren einer Art der Zeichenfolge "Konzept", dass ist ein Blick auf jede