1 | |||||||
auto в C++: развитие или деградация?29.08.2015, 15:18. Показов 3041. Ответов 59
Метки нет (Все метки)
А в чем развитие то? Я вижу только деградацию... вводить такую фигню только ради сокращения записи т.е синтактического сахара?
0
|
29.08.2015, 15:18 | |
Ответы с готовыми решениями:
59
Деградация общество или что-то еще Некорректно работают функции Auto-Tone, Auto contrast, Auto color Auto lisp аналог let или варианты определения локальных фугкций Деградация рейда 1 |
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||
30.08.2015, 04:23 | 41 | |||||
я не вел речь о том, сильная она, или слабая.
я вел речь о том, что она - статическая. когда речь заходит о статике, возможности манипулирования типами становятся особенно критичными. сишка например - убогий язык в этом отношении. ----------------------------------------------- по поводу сильной/слабой - язык поддерживает оби возможности. можно запрещать неявное приведение. можно не запрещать. даже более того, с++ поддерживает динамическую типизацию:
где то на хабре есть статья, в которой автор приводит примеры, иллюстрирующие, что мультипарадигменный с++ умеет все эти различные "классификации" типизаций. а достигается это благодаря мощнейшей системе типов, которая позволяет как угодно манипулировать ими в статике (метапрограммирование) именно эту систему типов я и называю "системой изнасилования типов". Добавлено через 1 минуту впервые про такой вообще слышу. сейчас гляну, что за фрукт... Добавлено через 26 минут глянул: не мэйнстрим. к тому же функциональная хрень. может быть у него действительно мощная система типов, однако на вскидку я ничего такого в примерах не разглядел. а изучать язык на котором пишут полторы калеки, что бы оценить её - как то влом.
1
|
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
|
|
30.08.2015, 12:13 | 42 |
Ну как и ожидалось. Полторы безграмотных калеки рассуждают на темы концепций ЯП. Наследники: haskell, ocaml, F# (я ожидал что Вы не знаете). Системы типов те же.
Не по теме: Вы же плюсист. Почему Вы меня об этом спрашиваете? Это я Вас должен спршивать. Кликните здесь для просмотра всего текста
Именно поэтому Вы решили спросить о востребованности. Я понял флейм ради флейма. Что это:
? Это хоть как-то можно натянуть на "аргумент от специалиста"? Это больше похоже на лулзы от Дурнева. Ok, прежде чем постить тут буду спрашивать у Вас разрешение. Я довольно продуктивно (надеюсь) пообщался с ТС.
0
|
30.08.2015, 12:23 [ТС] | 43 |
По тому что вы путаетесь "в показаниях"...
И уже не понято вы говорите от "выводе" какой на данный момент существует в языке С++ (а конкретно про auto), или о каком-то другом с созвездия Андромеда. Это личное мнение... И думал что так очевидно что "сахар" вряд ли можно считать велиуим достижением. Аргументов что это не только "сахар" лично от вас я вообще не услышал. Только витание в облаках и филосовствования на тему быть или не быть.
0
|
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
|
|
30.08.2015, 12:29 | 44 |
Не по теме: Я не виноват что мне попался тупой "следователь". Объективно тупой. Реально. Это даже не сойдет за оскорбление, это факт. Вот Вы плюсист. Скажите мне есть в плюсах вывод типов или нет. Это язык с которым Вы работаете ежедневно и обязаны его знать. Не по теме: Хотя бы его, как минимум. Добавлено через 2 минуты Не по теме: В следующий раз предваряйте термином IMHO, чтобы люди понимали что это комментировать не стоит. Добавлено через 38 секунд
0
|
30.08.2015, 12:39 [ТС] | 45 |
А вы читать по русски не умеете? Или потребность в абривиатурах?
Добавлено через 1 минуту Возможно, но не достаточно тупой что бы вестись на столь низкие провокации. Если вы путаетесь, если вы не можете говорить конкретно что подразумевает под теми или иными вещами о которых идет речь в теме, то проблема в вас, а не в комто другом. А так заходить в тему что бы оставить мессадж тип "С++ гавно, потому что гавно" кудо больше говорит о культуре и ваших умственных способностях.
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
30.08.2015, 13:09 | 46 |
не понятна эта фраза.
и кто тут рассуждает на темы концепций ЯП? если только вы имели ввиду: полторы господина castorsky. --------------------------------------------------------------- что касается системы типов: с++ оопнутый, к тому же императивный (по большей части). здесь манипуляция с типами особенно критична в контексте классов. а это означает: возможность влиять на иерархию классов. а это означает: вывод типов времени компиляции, и в зависимости от, дальнейшее построение иерархии. при этом, с++ умеет метапрограммирование как в функциональном, так и в императивных стилях. примечательно, что его дальнейшее развитие пошло по императивному пути (constexpr)
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
30.08.2015, 13:45 | 47 |
никаким.
auto - действительно лишь сахар. но это полезный сахар: позволяет писать код в утиной нотации, когда фактический тип не имеет значения ни для логики выполнения, ни для чтения самого кода.
0
|
30.08.2015, 14:34 [ТС] | 48 |
Вы имеете ввиду чисто "внешне" ?
Типа то выводятся все равно во время компиляции, а не исполнения. Добавлено через 34 минуты Ну если мы делаем ++i то вероятно должны знать что за тип i, по крайней мере желательно знать.
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
30.08.2015, 14:51 | 49 |
зачем?
достаточно понимать: чем бы оно ни было, но оно умеет инкремент. а для того, что бы это понять, знать тип не обязательно.
0
|
30.08.2015, 15:05 [ТС] | 50 | |||||
Да но "оно" зависит от контейнера, для того что бы узнать
(например нам не удалось сменить вектор на список ибо он не поддерживает концепцию, но мы пока этого не знаем) нужно открывать контейнер - смотреть что за итератор он использует и только потом окрывать класс итератора что бы убидится что в нем есть инкремент... Т.е когда возникают "проблемы" то неплохобы видеть что за типы используются. К примеру:
Тут явное усложнение "навигации" по коду. Понятно что это конечно вопрос вменяемого использования...
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
30.08.2015, 15:36 | 51 |
как то у вас все слишком сложно.
я запускаю компиляцию, и через несколько секунд узнаю удовлетворяют ли типы потребностям бизнес-логики. смотреть "что там за контейнер" нужно лишь в случае проблем. но в случае проблем, смотреть придется в любом случае, что с auto, что без него. единственное: с auto меньше нужно писать/переписывать буковок.
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||
30.08.2015, 15:41 | 53 | |||||
а если так:
не понятным стороннему глазу остается исключительно 'a' потому что нечитабельное имя. а вот вся остальная цепочка - обратите внимание: используется вывод типов. но все понятно: некий виджет. берем у него 1 ребенка. у ребенка берет 2 предмет. что то делаем с этим предметом.... при этом я понятия не имею, какова природа представленных типов. но для понимания логики происходящего мне это и не нужно. Добавлено через 1 минуту смотреть и сразу видеть - это такой тест на внимательность? вместо того, что бы просто прочитать выхлоп компилятора на английском.
0
|
30.08.2015, 15:46 [ТС] | 54 |
Мы не знаем типы, мы с ним не знакомы, нам нужно перелапатить все по цепочки что бы узнать что там за тип и только тогда мы сможем узнать что у него есть мето doModal()
Добавлено через 1 минуту Ну дело не в этом, там может быть к примеру имя dialog, а класс ModalDialog или AbstractDialog
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||
30.08.2015, 15:46 | 55 | |||||
зачем?
вот код:
что у него есть doModal. он просто есть. точно так же как есть вся эта цепочка. потому что такова запись в исходном коде.
0
|
30.08.2015, 15:48 [ТС] | 56 |
Ну как зачем? Мы ведь читаем код и допустим еще хотим что либо изменить в уже существующем коде который писали не мы.
К примеру задача сменить show() на showModal() ? Для этого нужно знать что там за класс.
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||
30.08.2015, 15:50 | 57 | |||||
нет, дело именно в этом.
читабельные имена позволяют нам понимать логику проиходящего. а вовсе не их фактические типы. если мы видим:
мы просто знаем - вот сейчас будет диалог с пользователем "новая игра". Добавлено через 1 минуту в чужом коде вам в любом случае придется разбираться. то есть сидеть, и вникать.
0
|
99 / 70 / 13
Регистрация: 15.12.2013
Сообщений: 455
|
|
30.08.2015, 15:50 | 58 |
Толку нет от Вашего спора. Вне зависимости от того, какого Вы мнения об auto в С++11, Вы ничего изменить не сможите.
0
|
30.08.2015, 15:57 [ТС] | 59 |
Ну вот вопрос затрат времени на это...
Разбирать всю цепочку или смотреть сразу код AbstaсtDialog. Ну ли к примеру посмотреть итератор вектора и сравнивать его с итератором однонаправленного списка что бы понять что нельзя подставлять список в ф-цию из-за того что итератор неподдерживает декримент. Добавлено через 3 минуты Но все же понять когда стоит использовать,а когда нет- можно.
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||
30.08.2015, 16:03 | 60 | |||||
разбирать всю цепочку не понадобится.
смотрите:
рассматривать всю цепочку для этого не обязательно. и это действие "смотреть Item" вы будете выполнять в любом случае, так или иначе, если будет подобная ошибка. Добавлено через 3 минуты зачем так сложно? когда вы подсунете итератор списка, и выяснится, что он не поддерживает какой то функционал, то вы сразу же об этом узнаете. компилятор напишет вам это английским текстом. диагностируются подобные ошибки точно так же, что с auto, что без него.
0
|
30.08.2015, 16:03 | |
30.08.2015, 16:03 | |
Помогаю со студенческими работами здесь
60
Деградация программистов Деградация системы и программ Cannot re-assign auto-global variable _POST in или Warning: Invalid argument supplied for foreach() in Нейронная сетка . Деградация весов с большим количеством итераций Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |