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.

Initialisieren unordered_map in der Initialisierungsliste

Anzahl der Antworten 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

Warnung mit automatischer Rückgabetyp Abzug: warum brauchen wir decltype bei der Rückkehr definiert der Typ überhaupt?

Anzahl der Antworten 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>&

seltsamer Fehler: use of deleted function 'std::unique_ptr<_Tp, _Dp>::unique_ptr, wenn kein Zeiger wirklich geschaffen

Anzahl der Antworten 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

Was ist der default-Wert für ein std::atomic?

Anzahl der Antworten 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;

Warum std::shuffle Methoden als deprecated in C++14?

Anzahl der Antworten 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

Warum funktioniert eine lambda haben eine Größe von 1 byte?

Anzahl der Antworten 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; };

'auto' ist nicht zulässig in Funktion Prototyp mit Clang

Anzahl der Antworten 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

Klammer (Aggregat) Initialisierung für Strukturen mit default-Werten

Anzahl der Antworten 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

Bit-count : Präprozessor-Magie vs moderne C++

Anzahl der Antworten 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 +

Warum constexpr statisches Element (vom Typ der Klasse) verlangen eine definition?

Anzahl der Antworten 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;

Clang 3.3 und C++14-Unterstützung?

Anzahl der Antworten 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; };

Netzwerk Bibliothek in C++14

Anzahl der Antworten 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

C++ typisiert und mit typedef

Anzahl der Antworten 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,

Zeiger auf Klasse als template-parameter

Anzahl der Antworten 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

Was ist leistungsmäßig die beste Möglichkeit zum generieren von zufälligen bools?

Anzahl der Antworten 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

Was ist Erlaubt in einer constexpr-Funktion?

Anzahl der Antworten 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

Was ist die richtige Art und Weise zu initialisieren, statische Daten Mitglieder C++ (98, 11 und 14)

Anzahl der Antworten 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

Default, value, und null-Initialisierung Durcheinander

Anzahl der Antworten 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

Pass by value vs. pass by rvalue-Referenz

Anzahl der Antworten 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

Warum war das Leerzeichen nicht gewählt für C++14-stellige Separatoren?

Anzahl der Antworten 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

Wie extrahieren Sie die Quell-Dateiname ohne Pfad und suffix zur compile-Zeit?

Anzahl der Antworten 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

standardmäßig überschreiben von virtuellen Destruktor

Anzahl der Antworten 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

C++ Graphics in Visual Studio 2017

Anzahl der Antworten 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

Wie sieht `void_t Arbeit

Anzahl der Antworten 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

Wie kann ich verhindern, dass ich "for" - Schleifen mit einer "if" - Bedingung innerhalb mit C++?

Anzahl der Antworten 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();

Was ist const void?

Anzahl der Antworten 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

Wie undefiniert sind, __builtin_ctz(0) oder __builtin_clz(0)?

Anzahl der Antworten 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):

Warum enable_if_t in template-Argumente beschwert sich über neudefinitionen?

Anzahl der Antworten 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

Wie kann ich mit C++14 features beim Bau qmake-Projekte?

Anzahl der Antworten 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:

Aufruf initializer_list Konstruktor über make_unique/make_shared

Anzahl der Antworten 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; };

C++11: Korrigieren von std::array-Initialisierung?

Anzahl der Antworten 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

cmake/make - unrecognized command line option "-std=c++14" - aber G++ tut

Anzahl der Antworten 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

Fehler: Microsoft Visual C++ 14.0 ist erforderlich, wenn die Installation von python-Paket

Anzahl der Antworten 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++

"Auspacken", ein Tupel zu nennen, eine matching-Funktion Zeiger

Anzahl der Antworten 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

Was sind einige Möglichkeiten, decltype(auto)?

Anzahl der Antworten 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

Wie um zu überprüfen, ob ein string enthält einen char?

Anzahl der Antworten 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 =

Richtige Weg, um pause & fortsetzen einer std::thread

Anzahl der Antworten 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;

kann variable definition von non-literal type-in constexpr-Funktion Körper c++14?

Anzahl der Antworten 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

Wie zu Lesen eine binäre Zahl als Eingabe?

Anzahl der Antworten 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

Kompilieren in c++14

Anzahl der Antworten 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

Ermöglichen `-std=c++14` flag in Code::Blocks

Anzahl der Antworten 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

Parallele Schleifen in C++

Anzahl der Antworten 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

Wie die Zuweisung einer Adresse zu einem bestehenden Objekt zu einem smart-pointer?

Anzahl der Antworten 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

Unterschied zwischen gcc kompilieren-Optionen std=c++1y und std=c++14

Anzahl der Antworten 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

Mit std::make_unique mit einer custom deleter

Anzahl der Antworten 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.

So erstellen Sie eine Variable generische lambda?

Anzahl der Antworten 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

C++ Compiler-Fehler C2280 "Versuch zum Verweis auf eine gelöschte Funktion" in Visual Studio 2013 und 2015

Anzahl der Antworten 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

Warum ist dies nicht ein konstanter Ausdruck?

Anzahl der Antworten 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

Ist #pragma einmal Teil des C ++ 11 Standards?

Anzahl der Antworten 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

Was ist string_view?

Anzahl der Antworten 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