![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
неправда ![]() |
|||
|
||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
истинная правда. Добавлено через 37 секунд Ну разве что точнее "заранее неопределен" -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
постыдились бы. auto, компилятор разворачивает как:
Добавлено через 1 минуту и 12 секунд это возможно только в ран-тайме. а с++ - не динамический язык. |
|||
|
||||
k0rvin |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
"постыдились бы" http://en.wikipedia.org/wiki/Type_inference http://en.wikipedia.org/wiki/C%2B%2B11#Type_inference И никакой динамической типизации. -------------------- “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, 17:20 |
|||
|
||||
k0rvin |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Я-то прочел, а ты? Добавлено через 5 минут и 21 секунду Рекомендую для понимания обратить внимание на этот пример:
-------------------- “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 |
Я этим задал вопрос (знак вопроса '?' как бы говорит нам об этом). В вопросе содержался намек, что decltype — это не вывод типов, чтобы автор поста про decltype задумался. Это сообщение отредактировал(а) k0rvin - 4.3.2012, 17:43 -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
||||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
k0rvin, в какой строчке тип заранее не известен? В С/С++ впринципе это невозможно. Просто по определению ![]() С/С++ язык со статической типизацией - и этим все сказано. |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
http://stackoverflow.com/questions/6869888...to-and-decltype
или я "таво", или второе... Добавлено через 1 минуту и 38 секунд
я тоже пытался обратить его внимание на это. но после ответа, я уже начал сомневаться в себе ![]() |
|||
|
||||
k0rvin |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Ты ведь не прочитал, что такое "Вывод типов", да? Хаскелл, *ML — тоже языки со статической типизацией. Добавлено через 1 минуту и 46 секунд
И тебе: вывод типов — это техника для статически типизированного языка Добавлено через 2 минуты и 39 секунд
т.е. ты не видишь разницу между decltype и auto? -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||||
|
|||||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
k0rvin, просто у auto и decltype разная семантика.
auto чудес не совершает. В любом месте где стоит ауто, компилер точно знает какой именно тип туда нужно поставить. Причем знает это он в момент компиляции. |
|||
|
||||
k0rvin |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Тип переменной a заранее не известен, он вычисляется из определения a = v[0]:
Зато тип b вычисляется из заранее типизированного выражения, decltype без всяких махинаций берет тип выражения v[0] и приписывает его переменной v. Т.е. суть в том, что тип переменной a определяется из выражения справа, а тип переменной b из выражения слева (decltype). Например, если изменить код примерно так:
то a определится как String и вообще строка с определением a будет работать, а стрка с определением b -- нет. Добавлено через 49 секунд
Хвала яйцам, кто-то это понял наконец-то. -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||||
|
|||||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
без decltype не существовало бы auto. auto реализован "поверх" decltype, с немного другой семантикой. но вывод типов - это decltype. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |