Suchergebnisse für Anfrage "c++14"

8 die antwort

C ++ std :: unique_ptr: Warum gibt es bei Lambdas keine Größengebühren?

Ich lese "Effective Modern C ++". In dem Artikel mit Bezug zustd::unique_ptr Es wird angegeben, dass, wenn der benutzerdefinierte Löscher ein zustandsloses Objekt ist, keine Größengebühren anfallen, aber wenn es sich um einen Funktionszeiger oder ...

8 die antwort

Warum ist eine Vorlage mit abgeleitetem Rückgabetyp nicht mit anderen Versionen überladbar?

Warum sind die folgenden beiden Vorlagen nicht kompatibel und können nicht überladen werden? #include <vector> template<typename T> auto f(T t) { return t.size(); } template<typename T> auto f(T t) { return t.foobar(); } int main() ...

2 die antwort

type in freier Funktion definiert, erreichbar über auto outside. Sprachfehler oder Feature?

Definieren wir eine Klasse innerhalb einer freien Funktion und greifen Sie außerhalb darauf zu: #include <iostream> auto myFunc(){ class MyType{public: int i = 0; int j = 1;}; return MyType(); } int main() { auto my_type = myFunc(); std::cout ...

TOP-Veröffentlichungen

2 die antwort

Wie kann dieses Lambda mit einer leeren Erfassungsliste auf den Namen des Zielbereichs verweisen?

In der C ++ 14-Norm § 5.1.2 / 12 wird ein Beispiel für einen Lambda-Ausdruck gezeigt, der sich anscheinend auf die Variable eines erreichbaren Bereichs beziehen kann.x, obwohl die Erfassungsliste ist leer, d. h. kein Erfassungsstandard der ...

2 die antwort

decltype (auto) abgeleitet Rückgabetyp von Lambda Capture

Ich habe Compiler, die mit einem kleinen C ++ 14-Code-Snippet nicht einverstanden sind: #include <cassert> struct unmovable { unmovable() {} unmovable(unmovable&&) = delete; }; int main() { unmovable u; auto i = [&]() -> decltype(auto) { ...

2 die antwort

Wie mache ich std :: make_unique zu einem Freund meiner Klasse

Ich möchte @ deklarierstd::make_unique Funktion als Freund meiner Klasse. Der Grund ist, dass ich meinen Konstruktor deklarieren möchteprotected und bieten eine alternative Methode zum Erstellen des Objekts mitunique_ptr. Hier ist ...

6 die antwort

Type-Konvertierung bei nicht typisiertem Template-Argument ohne constexpr

Betrachten Sie den folgenden Code: struct A { constexpr operator int() { return 42; } }; template <int> void foo() {} void bar(A a) { foo<a>(); } int main() { foo<A{}>(); const int i = 42; foo<i>(); // (1) A a{}; static_assert(i == a, ""); ...

4 die antwort

Soweit ich das beurteilen kann, ist die unten stehende Funktion nicht constexpr, aber der Code kompiliert in clang und g ++. Was vermisse ich

Ich habe dieses Beispiel aus §5.19 / 2 in N4140 erhalten: constexpr int incr(int &n) { return ++n; } Soweit ich das beurteilen kann, ist dies keinconstexpr Funktion. Das Snippet wird jedoch in clang und g ++ kompiliert. SehenBeispiel ...

4 die antwort

trivial default constructible std :: optional und std :: variant

Ist es erlaubt zu entwerfenstd::optional (zur Zeitstd::experimental::optional) so, dass bei trivialer Voreinstellung der konstruierbare TypT entsprechendstd::optional< T > ist auch trivial standardmäßig konstruierbar? Die gleiche Frage ...

6 die antwort

Gelöschter Standardkonstruktor. Objekte können immer noch erstellt werden ... manchmal

ie naive, optimistische und ach so falsche Sicht auf die c ++ 11 einheitliche InitialisierungssyntIch dachte, dass seit C ++ 11 benutzerdefinierte Typobjekte mit dem neuen @ erstellt werden sollt{...} Syntax anstelle des alten(...) Syntax (außer ...