Als «auto» getaggte Fragen

Das Schlüsselwort "auto" wurde in C ++ 11 für einen abgeleiteten Typ neu verwendet. Beim Ersetzen eines Typnamens in einer initialisierten Variablendeklaration erhält die Variable denselben Typ wie der Initialisierer. Bei Verwendung als Rückgabetyp wird der Rückgabetyp als nachfolgender Rückgabetyp angegeben oder aus dem Rückgabeausdruck abgeleitet.

7
Warum muss ich das Schlüsselwort 'auto' explizit schreiben?
Ich wechsle von C ++ 98 zu C ++ 11 und habe mich mit dem autoSchlüsselwort vertraut gemacht . Ich habe mich gefragt, warum wir explizit deklarieren müssen, autoob der Compiler den Typ automatisch ableiten kann. Ich weiß, dass C ++ eine stark typisierte Sprache ist und dies eine Regel …
80 c++  c++11  auto 


5
Der Rückgabetyp eines Lambdas kann durch den Rückgabewert abgeleitet werden. Warum kann eine Funktion nicht verwendet werden?
#include <iostream> int main(){ auto lambda = [] { return 7; }; std::cout << lambda() << '\n'; } Dieses Programm kompiliert und druckt 7. Der Rückgabetyp des Lambda wird basierend auf dem Rückgabewert von 7 zum ganzzahligen Typ abgeleitet. Warum ist das mit normalen Funktionen nicht möglich? #include <iostream> auto …
75 c++  function  c++11  lambda  auto 

10
Verwenden des automatischen Typabzugs - Wie kann man herausfinden, welchen Typ der Compiler abgeleitet hat?
Wie kann ich herausfinden, welchen Typ der Compiler bei Verwendung des autoSchlüsselworts abgeleitet hat? Beispiel 1: Einfacher auto tickTime = 0.001; Wurde dies als floatoder oder abgeleitet?double? Beispiel 2: Komplexer (und meine gegenwärtigen Kopfschmerzen): typedef std::ratio<1, 1> sec; std::chrono::duration<double, sec > timePerTick2{0.001}; auto nextTickTime = std::chrono::high_resolution_clock::now() + timePerTick2; Welcher Typ …
74 c++  c++11  auto  chrono 

1
C ++ 11 auto: Was ist, wenn es eine konstante Referenz erhält?
Bitte schauen Sie sich den folgenden einfachen Code an: class Foo { public: Foo(){} ~Foo(){} Foo(const Foo&){} Foo& operator=(const Foo&) { return *this; } }; static Foo g_temp; const Foo& GetFoo() { return g_temp; } Ich habe versucht, so zu verwenden auto: auto my_foo = GetFoo(); Ich habe erwartet, dass …
73 c++  reference  c++11  auto 

1
'auto' als Platzhalter für Vorlagenargumente für einen Funktionsparameter
In C ++ 20 kann der autoFunktionsparametertyp verwendet werden. Ermöglicht es auch die Verwendung autoeines Platzhalters als Vorlagenargument (nicht ähnlich, aber in gewisser Weise im Sinne der C ++ 17-Vorlage <auto> ) für den Funktionsparametertyp? Also der folgende Code vor C ++ 20: template<typename First, typename Second> void printPair(const std::pair<First, …
22 c++  templates  auto  c++20 

6
Initialisieren einer Variablen unbekannten Typs über überladene Konstruktoren in C ++
Ich komme hauptsächlich aus Python und habe Probleme mit der Arbeit mit Typen in C ++. Ich versuche, eine Klassenvariable über einen von mehreren überladenen Konstruktoren zu initialisieren, die verschiedene Typen als Parameter verwenden. Ich habe gelesen, dass die Verwendung des autoSchlüsselworts für die automatische Deklaration einer Variablen verwendet werden …

1
std :: pair <auto, auto> Rückgabetyp
Ich habe mit autoin herumgespielt std::pair. Im folgenden Code soll die Funktion feinen std::pairTyp zurückgeben, der von einem Vorlagenparameter abhängt. Ein Arbeitsbeispiel: BEISPIEL 1 template &lt;unsigned S&gt; auto f() { if constexpr (S == 1) return std::pair{1, 2}; // pair of ints else if constexpr (S == 2) return std::pair{1.0, …

2
Nicht übereinstimmender Abzug von Autotypen zwischen verschiedenen C ++ - Compilern
Daher versuche ich, das Punktprodukt ( https://en.wikipedia.org/wiki/Dot_product ) in einer Variante des modernen C ++ zu implementieren, und habe den folgenden Code gefunden: #include &lt;iostream&gt; template&lt;class... Args&gt; auto dot(Args... args) { auto a = [args...](Args...) { return [=](auto... brgs) { static_assert(sizeof...(args) == sizeof...(brgs)); auto v1 = {args...}, i1 = v1.begin(); …
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.