Вопросы с тегом «auto»

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

4
Может ли использование C ++ 11 'auto' улучшить производительность?
Я понимаю, почему autoтип в C ++ 11 улучшает правильность и удобство обслуживания. Я читал, что это также может улучшить производительность ( почти всегда авто от Херба Саттера), но я упускаю хорошее объяснение. Как можно autoулучшить производительность? Кто-нибудь может привести пример?
230 c++  performance  c++11  auto 

14
Сколько это слишком много с ключевым словом auto C ++ 11?
Я использовал новое autoключевое слово, доступное в стандарте C ++ 11 для сложных шаблонных типов, для которого, как мне кажется, оно было разработано. Но я также использую его для таких вещей, как: auto foo = std::make_shared<Foo>(); И более скептически для: auto foo = bla(); // where bla() return a shared_ptr<Foo> …

4
Что auto && говорит нам?
Если вы читаете код, как auto&& var = foo(); где fooлюбая функция, возвращаемая по значению типа T. Тогда varlvalue типа rvalue ссылается на T. Но для чего это нужно var? Значит ли это, что нам разрешено воровать ресурсы var? Существуют ли разумные ситуации, когда вы должны использовать, auto&&чтобы сообщить читателю …

2
Каковы некоторые виды использования decltype (auto)?
На этот вопрос есть ответы на Stack Overflow на русском : Конструкция decltype (авто) В c ++ 14 decltype(auto)введена идиома. Обычно его используют для того, чтобы autoобъявления могли использовать decltypeправила для данного выражения . В поисках примеров «хорошего» использования идиомы я могу думать только о таких вещах, как ( Скотт …

7
Ключевое слово C ++ auto. Почему это волшебство?
Из всего материала, который я использовал для изучения C ++, autoвсегда был странный спецификатор продолжительности хранения, который не служил никакой цели. Но совсем недавно я столкнулся с кодом, который использовал его как имя типа само по себе. Я из любопытства попробовал, и он предполагает тот тип, который я ему назначил! …
151 c++  types  c++11  auto 

14
Есть ли обратная сторона в объявлении переменных с auto в C ++?
Похоже, что это autoбыла довольно значительная особенность, которая должна быть добавлена ​​в C ++ 11, которая, кажется, следует за многими новыми языками. Как и в языке, подобном Python, я не видел явного объявления переменных (я не уверен, возможно ли это с использованием стандартов Python). Есть ли недостаток в использовании autoдля …

6
Какого типа лямбда-выражения выводятся с помощью «auto» в C ++ 11?
У меня было ощущение, что тип лямбда - это указатель на функцию. Когда я выполнил следующий тест, я обнаружил, что это неправильно ( демо ). #define LAMBDA [] (int i) -> long { return 0; } int main () { long (*pFptr)(int) = LAMBDA; // ok auto pAuto = LAMBDA; …
142 c++  lambda  c++11  typeof  auto 


2
стрелка (->) в заголовке функции
Я наткнулся на следующий код: template <typename T, typename T1> auto compose(T a, T1 b) -> decltype(a + b) { return a+b; } Я не могу понять одного: Где я мог узнать, что означает стрелка operator ( ->) в заголовке функции? Я предполагаю чисто логически, что ->оператор определяет тип, который …
128 c++  c++11  auto  decltype 

7
Почему auto a = 1; компилировать на C?
Код: int main(void) { auto a=1; return 0; } компилируется без ошибок компилятором MS Visual Studio 2012, если файл имеет расширение .c. Я всегда думал, что при использовании расширения .c компиляция должна выполняться в соответствии с синтаксисом C, а не C ++. Более того, насколько я знаю, auto без типа …
125 c  auto  c11 

6
Лямбда возвращается сама: это законно?
Рассмотрим эту довольно бесполезную программу: #include <iostream> int main(int argc, char* argv[]) { int a = 5; auto it = [&](auto self) { return [&](auto b) { std::cout << (a + b) << std::endl; return self(self); }; }; it(it)(4)(6)(42)(77)(999); } По сути, мы пытаемся сделать лямбду, которая возвращает сама себя. …

3
Как общая лямбда работает в C ++ 14?
Как работает универсальная лямбда ( autoключевое слово как тип аргумента) в стандарте C ++ 14? Основан ли он на шаблонах C ++, где для каждого другого типа аргумента компилятор генерирует новую функцию с тем же телом, но замененными типами (полиморфизм во время компиляции), или он больше похож на дженерики Java …
114 c++  lambda  auto  c++14 

6
Есть ли автоматический вывод типа в Java?
Есть ли autoв Java такой тип переменной, как в C ++? Пример: for ( auto var : object_array) std::cout << var << std::endl; for( auto var : object_array) var.do_something_that_only_this_particular_obj_can_do(); Я знаю, что в Java есть расширенный цикл for, но есть ли автоматический? Если нет, есть ли какой-нибудь способ это сделать? …
113 java  c++  auto 

4
Должен ли стиль синтаксиса конечного возвращаемого типа стать по умолчанию для новых программ на C ++ 11? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы на него можно было ответить с помощью фактов и цитат, отредактировав этот пост . Закрыт 3 года назад . Уточните этот вопрос C ++ 11 поддерживает новый синтаксис …

4
C ++ auto и vs auto
При создании локальных переменных правильно использовать (const) auto&или auto? например: SomeClass object; const auto result = object.SomeMethod(); или const auto& result = object.SomeMethod(); Где SomeMethod () возвращает непримитивное значение - возможно, другой определяемый пользователем тип. const auto& resultНасколько я понимаю, это правильно, поскольку результат, возвращаемый SomeMethod (), вызовет конструктор копирования …
88 c++  auto 

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.