![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Да, но он вычисляет (выводит) его (тип) из выражения справа например. Это позволяет не менять часть кода, типы которого зависят от других типов и их сложно определить однозначно. + уменьшает количество синтаксического мусора. -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
т.е. ты целую страницу разводил демагогию из-за того что auto несколько изменяет семантику decltype, и просто ухмылялся что мы "не разглядели моську"? минусовать тебя за это. Добавлено @ 18:19 и разумеется ты не видел этого: Это сообщение отредактировал(а) boostcoder - 4.3.2012, 18:26 |
|||
|
||||
volatile |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
k0rvin, ну так и нужно было говорить именно так, согласитесь что: не совсем то, с чем можно согласиться... ![]() |
||||
|
|||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Это не вывод типов. Decltype требует явного указания выражения, от которого брать тип. Причем тип этого выражения должен быть явно определен. -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
повторю в третий раз: |
|||
|
||||
k0rvin |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Мда. Еще недавно ты не понимал как работает код на первой странице... Рекомендую переделать следующий код, чтобы он был без auto, и подумать, что будет с кодом проекта, порядка так 100к строк от подобной переделки.
Добавлено @ 18:49
Это и есть явное указание выражения. Так что ты сказать хотел? Это сообщение отредактировал(а) k0rvin - 4.3.2012, 18:50 -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||||
|
|||||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
так вот компилятор делает тоже самое. неявно. я об этом в самом начале написал. специально для тебя объяснил это. чтоб исключить недопонимание. ![]() ты в танке? Это сообщение отредактировал(а) boostcoder - 4.3.2012, 18:59 |
|||
|
||||
mes |
|
||||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
boostcoder, если быть точным, то не разворачивает.. auto и decltype реализуются дополняя друг друга , а не одно над другим..
Добавлено через 1 минуту и 57 секунд если взять ваш пример то то по сути правильно :
Добавлено через 3 минуты и 52 секунды при том на новом стиле записи функций это явно проступает
Добавлено через 5 минут и 22 секунды т.е. auto и decltype два рычага одного механизма, а не один и тот же рычаг под разным соусом ![]() |
||||
|
|||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
mes, называйте как угодно.
цель одна? auto выводит тип? Добавлено через 5 минут и 15 секунд нет. auto у нас нет. есть decltype и обертка над ним с несколько иной семантикой, реализующая auto. зы залезу я все же на stackoverflow... |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
нет, она говорит что для этого выражения тип будет определен позже ![]() "позже" это не рантайм )) |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
ок. тогда, какую же роль выполняет auto в этом примере, и справедлив ли предполагаемый мной разворот auto?: и, что же на самом деле, означает выражение?:
|
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
разница хороша видна на примере std::vector<auto> = f ();
куда засунуть тут declexpr ? |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
||||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
не совсем, ибо упускается из виду важный механизм о котором и говорил korvin.. умение определять тип , по выражению , которое определится позже.. |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
зато с decltype все в порядке: http://liveworkspace.org/code/81fea29a4f58...a1711b4de18e78e
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |