Запитання з тегом «auto»

Ключове слово `auto 'було замінено на C ++ 11 для виведеного типу. Коли використовується для заміни імені типу в ініціалізованому оголошенні змінної, змінній надається такий же тип, як ініціалізатор. При використанні в якості типу повернення тип повернення задається як зворотний тип повернення або виводиться з виразу повернення.

7
Чому мені потрібно явно писати ключове слово "auto"?
Я переходжу до C ++ 11 з C ++ 98 і ознайомився з autoключовим словом. Мені було цікаво, чому нам потрібно явно оголосити, autoчи компілятор може автоматично вивести тип. Я знаю, що C ++ - це сильно набрана мова, і це правило, але чи не вдалося досягти того самого результату …
80 c++  c++11  auto 


5
Тип повернення лямбди може бути виведений за значенням, що повертається, то чому не може функція?
#include <iostream> int main(){ auto lambda = [] { return 7; }; std::cout << lambda() << '\n'; } Ця програма компілює та друкує 7. Тип повернення лямбда виводиться до цілочисельного типу на основі поверненого значення 7. Чому це неможливо зі звичайними функціями? #include <iostream> auto function(){ return 42; } int …
75 c++  function  c++11  lambda  auto 

11
Використання відрахування типу «auto» - як дізнатися, який тип вивів компілятор?
Як я можу дізнатись, який тип вивів компілятор при використанні autoключового слова? Приклад 1: Простіший auto tickTime = 0.001; Це було виведено як a floatабо adouble? Приклад 2: Більш складні (і мій головний біль): typedef std::ratio<1, 1> sec; std::chrono::duration<double, sec > timePerTick2{0.001}; auto nextTickTime = std::chrono::high_resolution_clock::now() + timePerTick2; Що це …
74 c++  c++11  auto  chrono 

1
'auto' як заповнення аргументу шаблону для параметра функції
C ++ 20 дозволяє використовувати autoдля типу параметра параметр. Чи дозволяє це також використовувати autoяк заповнювач аргументу шаблону (не схожий, але в дусі шаблону <a +> шаблону C ++ 17) ) для типу параметра функції? Отже, наступний код, попередньо C ++ 20: template<typename First, typename Second> void printPair(const std::pair<First, Second>& …
22 c++  templates  auto  c++20 

6
Ініціалізація змінної невідомого типу через перевантажені конструктори в C ++
Виходячи з фона в основному пітона, я дещо боровся з роботою з типами в C ++. Я намагаюся ініціалізувати змінну класу за допомогою одного з декількох перевантажених конструкторів, які приймають різні типи як параметри. Я прочитав, що за допомогою autoключового слова можна використовувати автоматичне оголошення змінної, однак у моєму випадку …

1
std :: пара <авто, авто> тип повернення
Я грав autoу std::pair. У наведеному нижче коді функція fповинна повертати а std::pairтипів, які залежать від параметра шаблону. Робочий приклад: ПРИКЛАД 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}; // …

2
Невідповідне виведення авто типів між різними компіляторами c ++
Отже, я намагаюся реалізувати крапковий продукт ( https://en.wikipedia.org/wiki/Dot_product ) в якомусь ароматі сучасного C ++ і придумав наступний код: #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...}, …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.