LINUX.ORG.RU

В C++20 появятся виртуальные функции!

 


0

4

Несколько часов назад в драфт стандарта были смёржены коммиты, определяющие термин «виртуальная функция». До сих пор такого определения не было.

★★★

Последнее исправление: utf8nowhere (всего исправлений: 1)

Какое неуважение к Ъ!

anonymous
()
Ответ на: комментарий от redgremlin

Просто жопа была, а слова — нет.

[Offtop] А я считаюсь очень старым, если знаю откуда (точнее чья) это фраза?

Kroz ★★★★★
()
Ответ на: комментарий от Kroz

Старый — это когда не знаешь, зачем мыш куда-то кродёться.

redgremlin ★★★★★
()
Ответ на: комментарий от KennyMinigun

Прикол в том, что у буквоедов раньше только методы в составе объекта могли быть, а теперь вот и «виртуальные функции» узаконили.

yoghurt ★★★★★
()
Ответ на: комментарий от yoghurt

Если уж у буквоедов, то методов как раз не было (и, видимо, нет).

anonymous
()

Никогда такого не было, и вот опять.

madcore ★★★★★
()

И только в С все хорошо, и никакие педерасты грязными ручонками в любимую сишечку не лезут!

anonymous
()
Ответ на: комментарий от anonymous

вот именно это.

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

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

бешеный принтер стандартов.

+100500 для каких то мега ленивцев пишут фичи которые только код замусоривают

quester ★★
()
Ответ на: комментарий от Iron_Bug

и всякое явное ненужно

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

Тем более, что за такие вещи, как variadic templates, move semantic, constexpr, noexcept, enum class, static if и еще кучу всякого разного им только спасибо сказать остается.

eao197 ★★★★★
()
Ответ на: комментарий от eao197

вот из перечисленного разве что variadic templates имеет смысл. и то это 11-й стандарт. там ещё понос их не разобрал. но зачем весь остальной мусор? всё действительно нужное (а это буквально 3-5 фич) можно было бы в одном релизе выпустить. остальные нововведения откровенный шлак для макак. и так тут шариковы на форуме пишут, что у них this нулевой. шлак привлекает уродов и это вдвойне плохо.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от Iron_Bug

но зачем весь остальной мусор?

Простите, а в этом вопросе на что нужно ответить: на «зачем» или на «мусор»? Ибо если для вас это мусор, то вам можно посоветовать продолжать тихо сидеть в том уютном болоте, до которого прогресс еще не добрался.

всё действительно нужное (а это буквально 3-5 фич) можно было бы в одном релизе выпустить

Как говорят участники комитета, у них в прямом смысле не хватает рабочих рук. Поэтому какие-то вещи доходят до стандарта очень долго (яркие примеры: concepts, ranges, executors, networking TS). Им явно вашей помощи не хватает.

и так тут шариковы на форуме пишут, что у них this нулевой

Эти никуда не денутся вне зависимости от сложности языка. Зато новые фичи позволяют делать инструменты, которые можно дать таким вот «шариковым» и они хотя бы ноги себе отстреливать не будут.

eao197 ★★★★★
()
Ответ на: комментарий от eao197

Им явно вашей помощи не хватает.

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

пока что из того, что было полезным - разве что vaiadic templates. и то это очень узкий круг задач. скажем так, за более чем 20 лет программирования я только один раз наткнулась на место, где он был нужен. и то я это реализовывала другими средствами, когда его ещё не придумали. то есть, прямо неразрешимой проблемы не было. остальное же пока больше похоже на подгузники для неосиляторов.

Iron_Bug ★★★★★
()
Ответ на: комментарий от eao197

делать инструменты, которые можно дать таким вот «шариковым» и они хотя бы ноги себе отстреливать не будут.

НЕ НУЖНО!!! это принципиально. именно активно не нужно. прямо надо запрещать такие практики. не надо привлекать в разработку макак. человек, который пишет софт, должен понимать что он делает. если он не понимает - пусть идёт мести дворы. а защита макак - это к CITES, а не к стандартизации С++.

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

Узбагойся, как и раньше приоритет №1 есть «Zero Overhead». Кстати, об этом и толкает Herb Sutter (по ссылке выше) (или, если не он, то сам Страуструп на той же конфе).

KennyMinigun ★★★★★
()
Ответ на: комментарий от Iron_Bug

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

Знаете, а ведь у того, что вы не видите пользы, может быть ряд объяснений, не имеющих никакого отношения к реальной полезности нововведений в стандарте. Начиная от банального «малолетнего дебилизма» (с), проходя стадию отсутствия разнообразия в опыте и заканчивая неспособностью осваивать новое.

Судя по тому, что вы здесь на LOR-е про себя писали, все эти причины неприятия нового гораздо большее вероятны, чем то, что в стандарт C++ включили что-нибудь ненужное. И заводить шарманку про 20+ лет опыта, отличное знание C++ и крутые проекты за плечами не нужно, вы себе репутацию здесь давно создали.

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

Покажите, к примеру, как «реализовать существующими средствами» такие вещи, как move semantic, constexpr, static if, =default/=delete, template argument deduction, enum class. Ну или что-то одно из этого.

eao197 ★★★★★
()

не, спасибо

у меня после универа аллергия на кресты

BMX ★★☆
()
Ответ на: комментарий от eao197

я просто выражаю своё мнение. и оно не на нулевом опыте базируется. и я вижу, что происходит и какие вопросы юзеры задают на форумах. идёт отупение и попытки использования С++ методом тыка. и весь этот синтаксический сахар привлекает мух, а не разработчиков. потому что разработчик и без него спокойно пишет код. ему это не нужно.

что касается оптимизации - я знаю в деталях, что и как. но ещё раз: таких фич - единицы. можно привести пример с move-semantics. это реально потребовало изменений в компиляторе и таки добавило скорости (правда, где-то 0.01%, но всё же). остальное же в большинстве своём - «защита от дурака». и она не нужна.

Iron_Bug ★★★★★
()
Ответ на: комментарий от eao197

Покажите, к примеру, как «реализовать существующими средствами» такие вещи, как move semantic, constexpr, static if, =default/=delete, template argument deduction, enum class. Ну или что-то одно из этого.

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

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от Iron_Bug

я просто выражаю своё мнение

Про нужность вашего мнения см.выше.

и оно не на нулевом опыте базируется.

Да-да. Вы тут уже представали «во всей красе». Спасибо, достаточно.

идёт отупение

Оно идет и вне экосистемы C++. Это общая тенденция. И не учитывать ее при развитии языка программирования, который хоть на что-то претендует, нельзя.

можно привести пример с move-semantics. это реально потребовало изменений в компиляторе и таки добавило скорости (правда, где-то 0.01%, но всё же)

Вы путаетесь в показаниях. То у вас полезными были только variadic templates. Теперь вот еще и от move-semantics польза нашлась.

А если вы включите мозги и попробуете таки перестать нести чепуху, а подумаете и над другими вещами в новом C++, то может и еще чего полезного найдете.

остальное же в большинстве своём - «защита от дурака». и она не нужна.

Ну понятно. Есть некое мифическое место, в котором бородатые дядьки и страшные тетьки вдумчиво и неспеша пишут мегакод, который не содержит багов и работает с первого раза. И вы там главная.

eao197 ★★★★★
()
Ответ на: комментарий от Iron_Bug

А примечательно что вы с Эдиком на одной волне. Ты уже начала пить коньяк по утрам?

anonymous
()
Ответ на: комментарий от Iron_Bug

приведи пример задачи, которую без этого нельзя решить

Тетенька, вас с такими заходами на первый курс профильной специальности отправить нужно учиться. Там вы будете объяснять, зачем нужен C++, когда есть C. И зачем есть C, когда есть ассемблер.

eao197 ★★★★★
()

почему в C++ не хотят добавить частичную специализацию шаблонов функций?

Bad_ptr ★★★★★
()
Ответ на: комментарий от Iron_Bug

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

anonymous
()
Ответ на: комментарий от Iron_Bug

Синдром Кобольщицы во всей красе.
Пиши дальше ад как в stl

bga_ ★★★★
()
Ответ на: комментарий от eao197

Это общая тенденция. И не учитывать ее при развитии языка программирования, который хоть на что-то претендует, не

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

однако, хочу предупредить: для матёрого говнокода и отсутствия мозгов есть пистон. и он гораздо более популярен среди говнокодеров. так что борьба за самое тупое поделие уже проиграна заведомо. стоит ли в этом пачкаться - большой вопрос.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от Iron_Bug

вот после этого я думаю, что не стоит прдолжать дискуссию

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

Казалось бы, возьми да и покажи аналог constexpr на макросах или с внешним кодогенератором каким-нибудь.

Ну или enum class на базе того, что было в C++98...

Тогда хоть какая-то цена у ваших слов была бы. А так пустозвонство под прикрытием многолетнего опыта.

eao197 ★★★★★
()
Ответ на: комментарий от anonymous

детка, не тебе бы вякать. я-то как раз понимаю. и в этом суть конфликта: понимающему этот мусор не нужен. но он привлекает говнокодеров. и, увы, я вижу, как многие опенсорцные проекты буквально протухают, когда туда приходят «освоившие С++ за 30 дней». а потом они тут плачутся, что у них указатели вдруг нулевые, что у них стек затирается, что у них там лезут сегфолты. это не моя проблема. но я вижу корень этой проблемы в заигрывании с идиотами.

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

Ты из пораши такой соцдарвинист десантировался?

anonymous
()
Ответ на: комментарий от Iron_Bug

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

Язык должен прогибаться под рынок,что он и делает. И только беспощадный рынок расставляет всех и вся по своим местам. А всякие элитарные клубу «тру кодеров», «идеальных проектов», «мир во всем мире» никому в этом мире не нужны.

Dudraug ★★★★★
()
Ответ на: комментарий от eao197

ты не ответил на вопрос: зачем твой contexpr нужен вообще. сначала обоснуй, потом уже раздувай про то, «а как бы это было в 98-м». код, который в 98-м писали, прекрасно работает. и, главное, что его спокойно писали и никто не рвал на жопе волосы, что ему не хватает constexpr. так что давай, приводи примеры неразрешимых задач, а там уже посмотрим.

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

я не состою в обществах социальной адаптации слабоумных, всяких там sjw и прочих недомерков.

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

Только я вижу тут противоречие в жиненой позиции. Первая фраза явно подразумевает взвешанный и расчетливый взгляд. Но вот вторая, явно подразумевает явный фанатизм и стремление к элитарности, а так же полное отрицание реалий общества и рынка.

Dudraug ★★★★★
()
Ответ на: комментарий от Dudraug

А всякие элитарные клубу «тру кодеров», «идеальных проектов», «мир во всем мире» никому в этом мире не нужны.

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

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

ты не ответил на вопрос: зачем твой contexpr нужен вообще

Очевидно для _гарантий_ того, что некое выражение будет подсчитано на этапе компиляции и не будет жрать такты процессора в рантайме. Можно конечно как в Си объявить коснтанту где подсчитан результат выражения, а в коментах написать само выражение, но это как-то по колхозному...

Dudraug ★★★★★
()
Ответ на: комментарий от Dudraug

явно подразумевает явный фанатизм

какой фанатизм? зайди на гитхаб/гитлаб, посмотри код. я не с потолка беру факты о говнокоде.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от Iron_Bug

жрите говнокод, если нравится.

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

Поэтому языки становятся проще и удобнее, ибо если на чистом си делать все быстро и «и так сойдет», то получится реальная нечитаемая и неподдерживаемая херня(внезапно да?), а вот на языках которые имеют этот самый «синтаксический сахар» можно даже в ускоренных темпах сделать нечто похожее на нормальный код. Это же вроде очевидно.

Dudraug ★★★★★
()
Ответ на: комментарий от Dudraug

Очевидно для _гарантий_ того, что некое выражение будет подсчитано на этапе компиляции и не будет жрать такты процессора в рантайме.

старый боян. сколько раз твоё выражение «жрёт такты»? конечно, если вся софтина работает 10 наносекунд в жёстком риалтайме, то пара тактов - это важно. но С++ уже давно вышел из той категории, на которой пишут такие программы. и вышел он из этой ниши именно благодаря наворотам для ламеров. а для корпоративных приложений на серверах «тормоза» на инициализации одного выражения не заметны даже под электронным микроскопом.

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

но С++ уже давно вышел из той категории, на которой пишут такие программы.

Да ладно?=) Все у него там с этим нормально, юзается он в жестком реал-тайме и будет юзаться еще очень долго.

Dudraug ★★★★★
()
Ответ на: комментарий от Iron_Bug

сначала обоснуй, потом уже раздувай про то

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

зачем твой contexpr нужен вообще

Затем, чтобы можно было производить вычисления в compile-time и затем использовать их контексте, где требуется константа. Например, при объявлении C-шных массивов. Или параметризации шаблонов скалярами. Скажем:

std::array<int, some_compile_time_calculation(some_ct_args...)> data

Ваш К.О.

код, который в 98-м писали, прекрасно работает. и, главное, что его спокойно писали

Вы эти сказочки рассказывайте тем, кто C++98 в глаза не видел. Писать-то писали. Только вот если сейчас представляется возможность модернизировать написанный на C++98 код под новый стандарт, то выясняется, что можно выбрасывать от 1/3 до 2/3 старого кода. Просто потому, что там бойлерплейт и отсутствие того самого сахара.

и никто не рвал на жопе волосы, что ему не хватает constexpr.

Во-первых, отучаемся говорить за всех.

Во-вторых, раз уж его добавили и им пользуются, то кому-то он был сильно нужен. Не факт, что волосы на жопе рвали, но нужен был.

eao197 ★★★★★
()

Ты смотри, только говяные кресты обозвали говяными и не дотягивающими даже до сотой доли сишечки, как нашлись дегенераты, которые принялись вопить, что это не так! Хотя ничего в защиту своих слов привести не могут, кроме газификации луж!

anonymous
()
Ответ на: комментарий от Dudraug

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

грузчики? ребята с раёна? кто будет «привлекаться»? может, так у нас дальше пойдёт веселуха: в хирургию надо всё больше людей. давайте наберём чуваков из подворотни. ненуачо? точно такая же аналогия с кодом. не может непрофессионал писать код. и не должен. но если люди этого не понимают, они обречены на траходром с говнокодом и вечными глюками. я уже устала это повторять. больше не стану.

Iron_Bug ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.