Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30

auto в C++: развитие или деградация?

29.08.2015, 15:18. Показов 4686. Ответов 59
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Цитата Сообщение от castorsky Посмотреть сообщение
Важно то, что c++ хоть как-то подтягивается к развитым языкам.
А в чем развитие то? Я вижу только деградацию... вводить такую фигню только ради сокращения записи т.е синтактического сахара?

 Комментарий модератора 
Данная тема вынесена из отсюда.
Стартовый пост является ответом на это сообщение.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.08.2015, 15:18
Ответы с готовыми решениями:

Деградация общество или что-то еще
В наше время людей интересует больше всего деньги, алкоголь/наркотики, секс. Это было всегда, или в наше время началась такая деградация ?...

Некорректно работают функции Auto-Tone, Auto contrast, Auto color
Не корректно работают функции Auto-Tone, Auto contrast, Auto color. Вот пример (как на картинке). То есть оно какбы что-то делает и,...

Auto lisp аналог let или варианты определения локальных фугкций
сабж + visual lisp

59
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
29.08.2015, 22:40
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Avazart Посмотреть сообщение
Ну выходит что нет?
Просто Вы, пардон, трудно проходимый собеседник. Впрочем, я умываю руки поскольку все Ваши ко мне вопросы раскрыты.

Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от Avazart Посмотреть сообщение
Это ведь С++14 ?
А тем временем первая половина 2015 года пройдена. Всё ясно. Я вспомнил Вас.

0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
29.08.2015, 22:42  [ТС]
Цитата Сообщение от castorsky Посмотреть сообщение
строгость типизации
Уже было съездом с темы, ибо никто не собирался спорить с вами на отвлеченные темы абстрактной теории.
0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
29.08.2015, 22:46
Avazart, Я правильно понимаю что Вы утверждаете что система типов c++ строгая статическая?
0
29.08.2015, 22:51  [ТС]

Не по теме:

Цитата Сообщение от castorsky Посмотреть сообщение
Avazart, Я правильно понимаю что Вы утверждаете что система типов c++ строгая статическая?
Ну вот а сами призывали не флудить...

0
Игогошка!
 Аватар для ct0r
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
29.08.2015, 22:53
Цитата Сообщение от Avazart Посмотреть сообщение
Только как я понимаю "шаблонные" лямбды не везде еще реализованы? Это ведь С++14 ?
Ну наверное не везде. В clang и gcc реализованы. Да, это С++14. Но это не имеет значения, ведь изменения в стандарт вносятся исходя из долгосрочной перспективы, плюс С++14 - это скорее доработка С++11, нежели что-то кардинально новое. Что же касается записи в переменную, то auto позволяет нормально это сделать для типов, которые известны только компилятору. Например, хранение лямбда-функции в std::function медленнее и тяжелее.
0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
29.08.2015, 22:54
Avazart, отвечайте коротко: ди или нет. Теперь я Вас пощупаю за бороду как Вы пытались водить меня за нос.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
29.08.2015, 22:59  [ТС]
Рукалицо. Cardeli L, Wegner P.
Parametric polymorphism is obtained when a function works uniformly on a range of types: these types
normally exhibit some common structure. Ad-hoc polymorphism is obtained when a function works, or
appears to work, on several different types (which may not exhibit a common structure) and may behave in
unrelated ways for each type.
Ну так я не все равно не понимаю на что вы намекаете?
Что Ad-hoc polymorphism это перегрузка ф-ций, т.е по сути к этому и относятся шаблоны.
Хотя опять же это как посмотреть, ибо вероятно и к параметрическому виду можно отнести.
Но не думаю что стоит вообще притягивать за уши.
0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
29.08.2015, 23:08

Не по теме:

Цитата Сообщение от Avazart Посмотреть сообщение
Хотя опять же это как посмотреть, ибо вероятно и к параметрическому виду можно отнести.
А если посмотреть со стороны астрологии, то это знак судьбы и никакой не полиморфизм.


Цитата Сообщение от Avazart Посмотреть сообщение
Но не думаю что стоит вообще притягивать за уши.
Сами тянете. Никак не успокоитесь. Жду ответа на вопрос.

Добавлено через 4 минуты
Цитата Сообщение от Avazart Посмотреть сообщение
Ну так я не все равно не понимаю на что вы намекаете?
Я ни на что не намекаю. Если Вы не видите разницы между одним и другим, то это не мои проблемы. Я всё сказал Вам достаточно ясно и открыто. Шаблоны это не ПП. Фишка ПП в другом, эта фишка клевая и ее нет в крестах. С введением auto возможно появится и от этого выиграет сообщество.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
29.08.2015, 23:17  [ТС]
Цитата Сообщение от ct0r Посмотреть сообщение
gcc реализованы. Да, это С++14.
Чет у меня не хочет.

Добавлено через 2 минуты
Цитата Сообщение от castorsky Посмотреть сообщение
Сами тянете. Никак не успокоитесь. Жду ответа на вопрос.
В том контексте что вы показали, да слабая, и если учитывать саму возможность использования неявного приведения типов, но вопроса auto это никак не касается.
0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
29.08.2015, 23:20
Тогда объясните мне это. С учетом того что вывод типов неизбежно ведет к строгости системы типов.
Цитата Сообщение от Avazart Посмотреть сообщение
Уже было съездом с темы, ибо никто не собирался спорить с вами на отвлеченные темы абстрактной теории.
0
Игогошка!
 Аватар для ct0r
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
29.08.2015, 23:24
Цитата Сообщение от Avazart Посмотреть сообщение
Чет у меня не хочет.
Версия должна быть не ниже 4.9
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
29.08.2015, 23:27  [ТС]
Цитата Сообщение от castorsky Посмотреть сообщение
С учетом того что вывод типов неизбежно ведет к строгости системы типов.
И да и нет, шаблоны та и так работают? Работают перегрузки типов...
Другое дело что это работает по запутаной схеме во первых, во вторых может приводить к неоднозначностям.

Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от ct0r Посмотреть сообщение
Версия должна быть не ниже 4.9
Да дело не компилаторе как оказалось, что-то с опициями в qmake, QtCreator.
Успешно скомпилилось "с консоли".

0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
29.08.2015, 23:33
С учетом того что вывод типов неизбежно ведет к строгости системы типов. Прочитайте еще раз эти слова и вдумайтесь.
Теперь:
Цитата Сообщение от Avazart Посмотреть сообщение
И да и нет, шаблоны та и так работают?
Что работает? При чем тут шаблоны? Я гворю про вывод типов, а не шаблоны или что-то еще. Я так понимаю что вопрос был задан "для проформы".
Цитата Сообщение от Avazart Посмотреть сообщение
Работают перегрузки типов...
И что? Я говорю про вывод типов компилятором. А Вы мне про перегрузки типов (я понимаю, смысловая ошибка, но я понял что Вы хотели сказать).

Не по теме:

Предлагаю поспать.

0
196 / 197 / 120
Регистрация: 27.05.2011
Сообщений: 545
29.08.2015, 23:35
Цитата Сообщение от castorsky Посмотреть сообщение
С учетом того что вывод типов неизбежно ведет к строгости системы типов.
Что за бред? Вывод типов никак не влияет на существующие преобразования типов.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
29.08.2015, 23:38  [ТС]
Вот и я не пойму каким боком.

C++
1
2
3
4
5
6
7
8
9
10
int main()
{
    bool a = true,
         b = true;
 
    auto c=  a + b;
    std::cout<< c <<std::endl;
 
    return 0;
}
Что изменилось?


Не по теме:

Цитата Сообщение от castorsky Посмотреть сообщение
Вы мне про перегрузки типов (я понимаю, смысловая ошибка, но я понял что Вы хотели сказать).
Хотел написать "перегрузка ф-ций".

0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
29.08.2015, 23:58
Цитата Сообщение от mymedia Посмотреть сообщение
Что за бред?
Бред это Ваши 5 копеек.
Цитата Сообщение от mymedia Посмотреть сообщение
Вывод типов никак не влияет на существующие преобразования типов.
Так его (вывода) еще толком и нет. Как появится, появятся и последствия. Придется избавиться от неявных преобразований иначе они не впишутся в общую концепцию системы.
Цитата Сообщение от Avazart Посмотреть сообщение
Что изменилось?
Ничего не изменилось. Операция + для типа bool не определена. Но это компилятор нисколько не смущает. Потому что есть неявное преобразование, которого при строгой типизации и быть не может.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
30.08.2015, 00:47  [ТС]
Цитата Сообщение от castorsky Посмотреть сообщение
Так его (вывода) еще толком и нет.
Т оесть навоображели какуюто фигню, которой нет и теперь нам парите мозг последствиями от этой фигни...

Цитата Сообщение от castorsky Посмотреть сообщение
Так его (вывода) еще толком и нет.
То что вы понимаете под выводом и не будет, ибо отпадет совместимость с Си.

Добавлено через 2 минуты
Цитата Сообщение от castorsky Посмотреть сообщение
впишутся в общую концепцию системы.
В "реальной жизни" много что не вписывается в концепцию.
0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
30.08.2015, 01:02
Цитата Сообщение от Avazart Посмотреть сообщение
и теперь нам парите мозг
пардон, это Вы мне "парите мозг" совими глупыми вопросами и придирками по поводу не полученных ответов на не заданные вопросы.
Цитата Сообщение от Avazart Посмотреть сообщение
То что вы понимаете под выводом и не будет, ибо отпадет совместимость с Си.
Еще в 98м пора было. Может сейчас прозреют.

Не по теме:

Avazart, прошу прощения, Вы пишете лишь бы писать, может от нечего делать, может "в интернете опять кто-то не прав"? Потому что это не я "навоображал какую-то фигню", а с 11 года эта фигня существует в языке и развивается хотите Вы этого или нет. Просто язык настолько убог что малейшее изменение стоит очень больших усилий, о чем я и сказал в первом посте. Есть очевидное желание привести его к приемлемой форме и это делается. Какие ко мне вопросы?

0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
30.08.2015, 01:39  [ТС]
Цитата Сообщение от castorsky Посмотреть сообщение
Так его (вывода) еще толком и нет.
Ну так есть вывод или нет?
То есть он как бы по вашему мнению есть, но вроде как и не вывод?
Цитата Сообщение от castorsky Посмотреть сообщение
пардон, это Вы мне "парите мозг" совими глупыми вопросами и придирками по поводу не полученных ответов на не заданные вопросы.
Мой вопрос касался auto в языке С++, а в каких вы облаках витаете и размыления на тему "хороших языков" мне было не интересно совсем.

Цитата Сообщение от castorsky Посмотреть сообщение
может от нечего делать, может "в интернете опять кто-то не прав"?
Не нравится С++ не чего вообще в этом разделе торчать... я уже не говорю об своих извращенных фантазиях.
1
31 / 31 / 6
Регистрация: 23.10.2014
Сообщений: 107
30.08.2015, 03:32
castorsky, я вот тоже понять не могу, каким боком auto к строгой типизации и пп.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
auto foo(auto...) { ... } // это обычная шаблонная функция
template <typename... Args>
auto foo(Args...) { ... } // абсолютно то же самое
 
// ---------------------------------------------------- //
 
auto foo(vector<auto>) { ... } // шаблон
 
template <typename T>
auto foo(vector<T>) { ... } // тоже самое
 
// ---------------------------------------------------- //
 
template <typename T>
concept bool Container = requires { ... };
 
auto bar(Container) { ... } // просто шаблоная функция; тип параметра "какой-то там", но не Container
 
template <typename T>
auto bar(Container<T>) { ... } // тоже самое; тип параметра T
 
template <typename T>
  requires Container<T>
auto bar(T) { ... } // тоже самое
 
template <Container T> // можно так
auto bar(T) { ... } // и все равно тоже самое
Всё те же шаблоны. Концепты вместо enable_if. Вывод типов выражений останется такой же как сейчас. Сахар, да и только.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.08.2015, 03:32

Деградация рейда 1
Добрый день, подскажите по деградации диска, использовалось 3 диска (2 ssd на 120гб и один обычный который на фото) на фото где таблица...

Деградация программистов
Программистов теперь не интересует астрономия, история, компьютерные игры. На этом форуме за месяц не появилось новых тем по астрономии и...

Деградация системы и программ
Наверное, многие сталкивались с ситуацией, когда какая-то программа, если ей долго не пользоваться, потом отказывается работать....

Cannot re-assign auto-global variable _POST in или Warning: Invalid argument supplied for foreach() in
Здравствуйте, у меня такая проблемка, на php 5.3 всё работало, а вот когда перешел на php 5.6 появилась первая ошибка Cannot re-assign...

Нейронная сетка . Деградация весов с большим количеством итераций
Я тут экспериментировал с нейронной сеткой, наблюдал изменения выходных значений при решении простых задач, интересовался, как же этот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml, в чате форсили функторы модулей как суперфичу. Пытаясь отдуплить концепт, наткнулся на тутор с простым примером. А главный принцип обучения от. . .
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru