Pytania otagowane jako auto

Słowo kluczowe `auto` zostało zmienione w C ++ 11 dla wywnioskowanego typu. Gdy jest używany do zastępowania nazwy typu w zainicjowanej deklaracji zmiennej, zmienna otrzymuje ten sam typ, co inicjator. Gdy jest używany jako typ zwracany, typ zwracany jest określany jako końcowy typ zwracany lub wywnioskowany z wyrażenia zwracanego.

7
Dlaczego muszę wyraźnie wpisać słowo kluczowe „auto”?
Przechodzę w kierunku C ++ 11 z C ++ 98 i zapoznałem się ze autosłowem kluczowym. Zastanawiałem się, dlaczego musimy jawnie zadeklarować, autoczy kompilator może automatycznie wydedukować typ. Wiem, że C ++ jest językiem silnie typizowanym i jest to reguła, ale czy nie można było osiągnąć tego samego wyniku bez …
80 c++  c++11  auto 


6
Inicjalizacja zmiennej nieznanego typu za pomocą przeciążonych konstruktorów w C ++
pochodzące głównie z pythonowego środowiska, z którym miałem problemy z pracą z typami w C ++. Próbuję zainicjować zmienną klasy za pomocą jednego z kilku przeciążonych konstruktorów, które przyjmują różne typy jako parametry. Przeczytałem, że użycie autosłowa kluczowego może być użyte do automatycznego zadeklarowania zmiennej, jednak w moim przypadku nie …

1
typ zwracany std :: pair <auto, auto>
Grałem około z autow std::pair. W poniższym kodzie funkcja fpowinna zwracać std::pairtypy zależne od parametru szablonu. Przykład roboczy: PRZYKŁAD 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.0}; // pair of …

2
Niedopasowane odliczanie typów auto między różnymi kompilatorami c ++
Próbuję więc wdrożyć produkt kropkowy ( https://en.wikipedia.org/wiki/Dot_product ) w jakimś smaku współczesnego C ++ i wymyśliłem następujący kod: #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(); auto v2 = {brgs...}, i2 …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.