Suchergebnisse für Anfrage "c++14"
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 ...
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() ...
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 ...
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 ...
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) { ...
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 ...
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, ""); ...
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 ...
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 ...
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 ...