Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Указатели на неименованные перечисления, где-нибудь использует или для "красоты" 
V
    Опции темы
mes
Дата 6.3.2012, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(volatile @  5.3.2012,  23:12 Найти цитируемый пост)
Здесь (с) принимает значение заранее неивестнго типа от функции, с заранее неивестным количесвом аргуметнов.

здесь (с) с заранее определенным типом (инт) инициализируется результатом функции, выбранной в результате разрешения перегрузок по двум аргументам..


Это сообщение отредактировал(а) mes - 6.3.2012, 09:44


--------------------
PM MAIL WWW   Вверх
baldina
Дата 6.3.2012, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



Цитата(mes @  6.3.2012,  09:14 Найти цитируемый пост)
просто когда речь касается "неизвестности типа"  рассуждают с точки зрения конечного  результата.. Тип же в конце концов становится известным компилятору ?значит известен.. И как аргумент приводят, ведь для вычисления все известно, значит и вычисленное заранее известно.. 

с этим никто не спорит. есть процесс вывода типа, проводимый компилятором. его может произвести и человек.
когда мы пишем auto или вообще не указываем тип (в языках где это допустимо) мы просто ленимся.
так же мы ленимся самостоятельно выводить новые факты из существующих фактов и правил, возлагая это на машину вывода (в БЗ, Пролог и пр.), т.е. поручаем машине черновую трудоемкую работу.
везде, где отсутствует информация извне, результат заранее определен. только не всегда очевиден smile в таких случаях неизвестность синоним неочевидности.

PM MAIL   Вверх
mes
Дата 6.3.2012, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(volatile @  5.3.2012,  23:12 Найти цитируемый пост)
вычисляет выражение стоящее справа по тексту 

тип будет вычислен по выражению стоящему дальше по тексту ..
а раз будет, то на момент определения переменной он еще неизвестен, и подставляется чуточку позже, после того, как разберется с  правостоящим выражением smile



Это сообщение отредактировал(а) mes - 6.3.2012, 09:47


--------------------
PM MAIL WWW   Вверх
baldina
Дата 6.3.2012, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



Цитата(baldina @  5.3.2012,  18:37 Найти цитируемый пост)
т.е. еще неизвестный компилятору

согласен, плохо. заменить на "не очевидный мне, мне лениво" ;)
хотя все масло масляное
PM MAIL   Вверх
mes
Дата 6.3.2012, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(baldina @  6.3.2012,  08:46 Найти цитируемый пост)
везде, где отсутствует информация извне, результат заранее определен. т

если рассматривать конечную точку процесса, то да.. а взглянуть на компиляцию, как на процесс то, не важно кем делается вывод, человеком и компиляцией, мы можем сказать известен те ли на определенной момент времни или нет..  при этом проблема неизвестности встречалась в С++ и раньше, задолго до auto..
только почему то та неизвестность, никого не смущала )) 
Код

struct A {
   T a;
   typedef int T;
};


сейчас начнут призывать аргументы, что написанно не на одной строчке.. так и в статически типизированных языках auto тоже может быть написано не на одной.. 
Код

auto x;
...
x = "str";

т.е. объявляться с неизветным типом, и приобретать его в момент определения.. в конце концов тип x будет известен и его в любом случае нельзя менять..

Добавлено @ 10:02
Цитата(baldina @  6.3.2012,  08:46 Найти цитируемый пост)
 мы просто ленимся.

неа.. в данном случае речь не о лени.. мы говорим какие правила использовать.. 
и вот правила как раз и разные для запроса типа и выведения..

Добавлено @ 10:03
Цитата(boostcoder @  6.3.2012,  08:36 Найти цитируемый пост)
следующего стандарта? 

ну или переходить на языки, на которых это уже есть ))

Добавлено @ 10:08
Цитата(baldina @  6.3.2012,  08:49 Найти цитируемый пост)
 заменить на "не очевидный мне, мне лениво

вот опять.. в выражении "неизвестный тип" сам программист совсем не при чем.. речь о том кто разбирает код.. и встретив новую переменную и запомня ее, разборщик (будь он человек или машина)  не может сразу проассоциировать его с типом, а идет дальше изучать след выражение..

Добавлено @ 10:12
Цитата(baldina @  6.3.2012,  08:46 Найти цитируемый пост)
формация извне, результат заранее определен

Код

auto a = a +5;

так почему нельзя вывести тип правого выражения ? smile 



Это сообщение отредактировал(а) mes - 6.3.2012, 14:31


--------------------
PM MAIL WWW   Вверх
baldina
Дата 6.3.2012, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



Цитата(mes @  6.3.2012,  09:58 Найти цитируемый пост)
Цитата(baldina @  6.3.2012,  08:46 )
 мы просто ленимся.

неа.. в данном случае речь не о лени.. мы говорим какие правила использовать.. 
и вот правила как раз и разные для запроса типа и выведения..

точнее, мы знаем правила и учитываем их. правила есть и они не меняются.
а про различие запроса типа и выведения не оспаривается

Цитата(mes @  6.3.2012,  09:58 Найти цитируемый пост)
код C++
1:
auto a = a +5;

так почему нельзя вывести тип правого выражения ?  

два ответа.
1. потому что неограниченная рекурсия
2. можно, если использовать правило приведения типов в выражении + правило приведения неизвестного типа к известному
Цитата

зависит от определения

PM MAIL   Вверх
mes
Дата 6.3.2012, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(baldina @  6.3.2012,  10:04 Найти цитируемый пост)
+ правило приведения неизвестного типа к известному

так все таки неизвестного  ? 
smile )))


Это сообщение отредактировал(а) mes - 6.3.2012, 11:15


--------------------
PM MAIL WWW   Вверх
mes
Дата 6.3.2012, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



 smile 
Цитата(baldina @  6.3.2012,  10:04 Найти цитируемый пост)
 
Цитата

мы говорим какие правила использовать.. 
и вот правила как раз и разные для запроса типа и выведения..

точнее, мы знаем правила и учитываем их. правила есть и они не меняются.

а если взглянуть на слово "правило" шире ? smile


Это сообщение отредактировал(а) mes - 6.3.2012, 14:50


--------------------
PM MAIL WWW   Вверх
baldina
Дата 6.3.2012, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



Цитата(mes @  6.3.2012,  11:14 Найти цитируемый пост)
так все таки неизвестного  ? 


Цитата(baldina @  6.3.2012,  11:04 Найти цитируемый пост)
Цитата

зависит от определения


PM MAIL   Вверх
mes
Дата 6.3.2012, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(baldina @  6.3.2012,  13:56 Найти цитируемый пост)
зависит от определения


Цитата(baldina @  6.3.2012,  10:04 Найти цитируемый пост)
. потому что неограниченная рекурсия

угу, а неограчиность рекурсиии твердит нам об известности типа smile



--------------------
PM MAIL WWW   Вверх
k0rvin
Дата 7.3.2012, 07:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 24.1.2010

Репутация: 1
Всего: 5



Код

GHCi, version 7.0.3: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package ffi-1.0 ... linking ... done.
Prelude> let x = x + 5
Prelude> :t x
x :: Integer



--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
k0rvin
Дата 7.3.2012, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 24.1.2010

Репутация: 1
Всего: 5



Цитата(volatile @ 5.3.2012,  01:16)
Итак, к чему нас привела логическая цепочка:
Цитата
auto же вычисляет тип выражения, находящегося справа по тексту

Стоило ли разводить столько шума?  smile

Шум был не из-за этого, а из-за того, что некоторые утверждали, что "auto x = <expr>" можно однозначно заменить на "decltype(<expr>) x = <expr>". Однако нет.Пардон, пример уже приводили.

Это сообщение отредактировал(а) k0rvin - 7.3.2012, 08:45


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
boostcoder
Дата 7.3.2012, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(boostcoder @  4.3.2012,  18:18 Найти цитируемый пост)
т.е. ты целую страницу разводил демагогию из-за того что auto несколько изменяет семантику decltype, и просто ухмылялся что мы "не разглядели моську"?

просто я не мог поверить, что ты таки мог придраться к этому. ибо да, auto реализован поверх decltype но с иной семантикой.

http://liveworkspace.org/code/092676eb3995...319ba83e7b42001
но обратное невозможно.

Это сообщение отредактировал(а) boostcoder - 7.3.2012, 09:04
PM WWW   Вверх
mes
Дата 7.3.2012, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(k0rvin @  7.3.2012,  07:28 Найти цитируемый пост)
 что некоторые утверждали, что "auto x = <expr>" можно однозначно заменить на "decltype(<expr>) x = <expr>"

и даже не из этого... а
Цитата(boostcoder @  7.3.2012,  07:54 Найти цитируемый пост)
 auto реализован поверх decltype но с иной семантикой

auto это не иная семантика, а иная идеология.. которая к сожалению на текущий момент не отражена в С++ в полноте своей красоты 
smile



--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 7.3.2012, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(mes @  7.3.2012,  09:29 Найти цитируемый пост)
на текущий момент не отражена в С++

я не фантазер и не ясновидец. то, что Вы мне приводили в пример - в с++ невозможно в рамках текущего стандарта. и не известно, изменится ли оно когда-либо. а так да, за примеры спасибо. они мне очень помогли, и главное - сэкономили мое время потраченное на объяснения невозможного smile 

Это сообщение отредактировал(а) boostcoder - 7.3.2012, 09:40
PM WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0882 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.