A non-static member function is a virtual function if it is first declared with the keyword virtual or if it overrides a virtual member function declared in a base class.
в плюсах начали гнать какой-то популизм и развели нездоровую активность. бешеный принтер стандартов. видимо, у кого-то там руки чешутся. смысла в большинстве этих нововведений нет абсолютно. чаще всего это синтаксический сахар и всякое явное ненужно.
Ваше мнение еще более ненужно, но вы считаете возможным являть его публике. Вот и разработчики стандарта считают возможным делать то, что считают нужным.
Тем более, что за такие вещи, как variadic templates, move semantic, constexpr, noexcept, enum class, static if и еще кучу всякого разного им только спасибо сказать остается.
вот из перечисленного разве что variadic templates имеет смысл. и то это 11-й стандарт. там ещё понос их не разобрал. но зачем весь остальной мусор? всё действительно нужное (а это буквально 3-5 фич) можно было бы в одном релизе выпустить. остальные нововведения откровенный шлак для макак. и так тут шариковы на форуме пишут, что у них this нулевой. шлак привлекает уродов и это вдвойне плохо.
Простите, а в этом вопросе на что нужно ответить: на «зачем» или на «мусор»? Ибо если для вас это мусор, то вам можно посоветовать продолжать тихо сидеть в том уютном болоте, до которого прогресс еще не добрался.
всё действительно нужное (а это буквально 3-5 фич) можно было бы в одном релизе выпустить
Как говорят участники комитета, у них в прямом смысле не хватает рабочих рук. Поэтому какие-то вещи доходят до стандарта очень долго (яркие примеры: concepts, ranges, executors, networking TS). Им явно вашей помощи не хватает.
и так тут шариковы на форуме пишут, что у них this нулевой
Эти никуда не денутся вне зависимости от сложности языка. Зато новые фичи позволяют делать инструменты, которые можно дать таким вот «шариковым» и они хотя бы ноги себе отстреливать не будут.
если бы я видела реальную пользу в этих пустых абстракциях, я бы, может, и помогла. но я не вижу. пока что я вижу бешеный принтер. большую часть можно было реализовать существующими средствами языка. остальная часть - прогиб под неосиляторов: как бы им, бедным, облегчить отсутствие мозга. но проблема кривых рук не решается добавлением «безопасных» конструкций (а по сути - ненужных извращений) в стандарт. там под этим барахлом уже самого языка в его первоначальном виде не видать.
пока что из того, что было полезным - разве что vaiadic templates. и то это очень узкий круг задач. скажем так, за более чем 20 лет программирования я только один раз наткнулась на место, где он был нужен. и то я это реализовывала другими средствами, когда его ещё не придумали. то есть, прямо неразрешимой проблемы не было. остальное же пока больше похоже на подгузники для неосиляторов.
делать инструменты, которые можно дать таким вот «шариковым» и они хотя бы ноги себе отстреливать не будут.
НЕ НУЖНО!!! это принципиально. именно активно не нужно. прямо надо запрещать такие практики. не надо привлекать в разработку макак. человек, который пишет софт, должен понимать что он делает. если он не понимает - пусть идёт мести дворы. а защита макак - это к CITES, а не к стандартизации С++.
Узбагойся, как и раньше приоритет №1 есть «Zero Overhead». Кстати, об этом и толкает Herb Sutter (по ссылке выше) (или, если не он, то сам Страуструп на той же конфе).
если бы я видела реальную пользу в этих пустых абстракциях, я бы, может, и помогла.
Знаете, а ведь у того, что вы не видите пользы, может быть ряд объяснений, не имеющих никакого отношения к реальной полезности нововведений в стандарте. Начиная от банального «малолетнего дебилизма» (с), проходя стадию отсутствия разнообразия в опыте и заканчивая неспособностью осваивать новое.
Судя по тому, что вы здесь на LOR-е про себя писали, все эти причины неприятия нового гораздо большее вероятны, чем то, что в стандарт C++ включили что-нибудь ненужное. И заводить шарманку про 20+ лет опыта, отличное знание C++ и крутые проекты за плечами не нужно, вы себе репутацию здесь давно создали.
большую часть можно было реализовать существующими средствами языка.
Покажите, к примеру, как «реализовать существующими средствами» такие вещи, как move semantic, constexpr, static if, =default/=delete, template argument deduction, enum class. Ну или что-то одно из этого.
я просто выражаю своё мнение. и оно не на нулевом опыте базируется. и я вижу, что происходит и какие вопросы юзеры задают на форумах. идёт отупение и попытки использования С++ методом тыка. и весь этот синтаксический сахар привлекает мух, а не разработчиков. потому что разработчик и без него спокойно пишет код. ему это не нужно.
что касается оптимизации - я знаю в деталях, что и как. но ещё раз: таких фич - единицы. можно привести пример с move-semantics. это реально потребовало изменений в компиляторе и таки добавило скорости (правда, где-то 0.01%, но всё же). остальное же в большинстве своём - «защита от дурака». и она не нужна.
Покажите, к примеру, как «реализовать существующими средствами» такие вещи, как move semantic, constexpr, static if, =default/=delete, template argument deduction, enum class. Ну или что-то одно из этого.
про move я уже написала. остальное просто ненужно. лучше приведи реальные примеры (не деятельность макак), где это вот прямо кровь-из-носу как нужно. приведи пример задачи, которую без этого нельзя решить. начнём с аргументации за, а не против. как с чайником Рассела.
Да-да. Вы тут уже представали «во всей красе». Спасибо, достаточно.
идёт отупение
Оно идет и вне экосистемы C++. Это общая тенденция. И не учитывать ее при развитии языка программирования, который хоть на что-то претендует, нельзя.
можно привести пример с move-semantics. это реально потребовало изменений в компиляторе и таки добавило скорости (правда, где-то 0.01%, но всё же)
Вы путаетесь в показаниях. То у вас полезными были только variadic templates. Теперь вот еще и от move-semantics польза нашлась.
А если вы включите мозги и попробуете таки перестать нести чепуху, а подумаете и над другими вещами в новом C++, то может и еще чего полезного найдете.
остальное же в большинстве своём - «защита от дурака». и она не нужна.
Ну понятно. Есть некое мифическое место, в котором бородатые дядьки и страшные тетьки вдумчиво и неспеша пишут мегакод, который не содержит багов и работает с первого раза. И вы там главная.
приведи пример задачи, которую без этого нельзя решить
Тетенька, вас с такими заходами на первый курс профильной специальности отправить нужно учиться. Там вы будете объяснять, зачем нужен C++, когда есть C. И зачем есть C, когда есть ассемблер.
Ты принципиально не понимаешь что и как делаешь, кроме самых вершков. Наука пытается это безуспешно выяснить. Ты и есть шариков, постыдись писать такие глупости.
Это общая тенденция. И не учитывать ее при развитии языка программирования, который хоть на что-то претендует, не
вот после этого я думаю, что не стоит прдолжать дискуссию. я не состою в обществах социальной адаптации слабоумных, всяких там sjw и прочих недомерков. нас учили думать головой, а не жопой. это вполне возможно. и я никогда не соглашусь с тем, что язык должен прогибаться под неудачников. пусть те, кто так думает, сдохнут в потоке говнокода, который породили их питомцы.
однако, хочу предупредить: для матёрого говнокода и отсутствия мозгов есть пистон. и он гораздо более популярен среди говнокодеров. так что борьба за самое тупое поделие уже проиграна заведомо. стоит ли в этом пачкаться - большой вопрос.
вот после этого я думаю, что не стоит прдолжать дискуссию
А ее и не предполагалось, дискуссии-то. Вам просто наглядно показали, что мнение ваше — чистой воды ненужно. И еще более оно ненужно, потому что вы сами же свои слова ничем подтвердить не можете.
Казалось бы, возьми да и покажи аналог constexpr на макросах или с внешним кодогенератором каким-нибудь.
Ну или enum class на базе того, что было в C++98...
Тогда хоть какая-то цена у ваших слов была бы. А так пустозвонство под прикрытием многолетнего опыта.
детка, не тебе бы вякать. я-то как раз понимаю. и в этом суть конфликта: понимающему этот мусор не нужен. но он привлекает говнокодеров. и, увы, я вижу, как многие опенсорцные проекты буквально протухают, когда туда приходят «освоившие С++ за 30 дней». а потом они тут плачутся, что у них указатели вдруг нулевые, что у них стек затирается, что у них там лезут сегфолты. это не моя проблема. но я вижу корень этой проблемы в заигрывании с идиотами.
я никогда не соглашусь с тем, что язык должен прогибаться под неудачников
Язык должен прогибаться под рынок,что он и делает. И только беспощадный рынок расставляет всех и вся по своим местам. А всякие элитарные клубу «тру кодеров», «идеальных проектов», «мир во всем мире» никому в этом мире не нужны.
ты не ответил на вопрос: зачем твой contexpr нужен вообще. сначала обоснуй, потом уже раздувай про то, «а как бы это было в 98-м». код, который в 98-м писали, прекрасно работает. и, главное, что его спокойно писали и никто не рвал на жопе волосы, что ему не хватает constexpr. так что давай, приводи примеры неразрешимых задач, а там уже посмотрим.
я не состою в обществах социальной адаптации слабоумных, всяких там sjw и прочих недомерков.
что язык должен прогибаться под неудачников
Только я вижу тут противоречие в жиненой позиции. Первая фраза явно подразумевает взвешанный и расчетливый взгляд. Но вот вторая, явно подразумевает явный фанатизм и стремление к элитарности, а так же полное отрицание реалий общества и рынка.
А всякие элитарные клубу «тру кодеров», «идеальных проектов», «мир во всем мире» никому в этом мире не нужны.
ну, не нужны, так не нужны. только потом не жалуйтесь тут, что браузеры у вас гигабайты жрут, а всё прочее падает в сегфолт. мне, на самом деле, фиолетово. но я вижу, что смысл больше никому не важен. важна бурная деятельность. жрите говнокод, если нравится. но я лично этого делать не буду.
ты не ответил на вопрос: зачем твой contexpr нужен вообще
Очевидно для _гарантий_ того, что некое выражение будет подсчитано на этапе компиляции и не будет жрать такты процессора в рантайме. Можно конечно как в Си объявить коснтанту где подсчитан результат выражения, а в коментах написать само выражение, но это как-то по колхозному...
Другого выхода нет. Кол-во компьютеров в том или ином виде с каждым кодом растет, областей и кейсов применения айти технологий все больше и больше. Спрос на ПО и программистов растет. Поэтому очевидно, что к работе будут превликаться не только гики академики, но и более простые ребята. Но что еще важнее, так как рынок и конкуренция все жестче и жестче с каждым годом, то сроки на реализацию проекта становятся все более короткими и менее гибкими. Уже нет времени вылизывать свой проект с точки зрения архитектуры, красоты кода.
Поэтому языки становятся проще и удобнее, ибо если на чистом си делать все быстро и «и так сойдет», то получится реальная нечитаемая и неподдерживаемая херня(внезапно да?), а вот на языках которые имеют этот самый «синтаксический сахар» можно даже в ускоренных темпах сделать нечто похожее на нормальный код. Это же вроде очевидно.
Очевидно для _гарантий_ того, что некое выражение будет подсчитано на этапе компиляции и не будет жрать такты процессора в рантайме.
старый боян. сколько раз твоё выражение «жрёт такты»? конечно, если вся софтина работает 10 наносекунд в жёстком риалтайме, то пара тактов - это важно. но С++ уже давно вышел из той категории, на которой пишут такие программы. и вышел он из этой ниши именно благодаря наворотам для ламеров. а для корпоративных приложений на серверах «тормоза» на инициализации одного выражения не заметны даже под электронным микроскопом.
Девушка, если вы уж начали играть в игру «сначала ты», то позволю себя напомнить, что это вы сперва сказали «большую часть можно было реализовать существующими средствами языка». Ну вот и покажите хоть что-нибудь из этой самой «большей части».
зачем твой 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.
Во-первых, отучаемся говорить за всех.
Во-вторых, раз уж его добавили и им пользуются, то кому-то он был сильно нужен. Не факт, что волосы на жопе рвали, но нужен был.
Ты смотри, только говяные кресты обозвали говяными и не дотягивающими даже до сотой доли сишечки, как нашлись дегенераты, которые принялись вопить, что это не так! Хотя ничего в защиту своих слов привести не могут, кроме газификации луж!
Поэтому очевидно, что к работе будут превликаться не только гики академики, но и более простые ребята.
грузчики? ребята с раёна? кто будет «привлекаться»? может, так у нас дальше пойдёт веселуха: в хирургию надо всё больше людей. давайте наберём чуваков из подворотни. ненуачо? точно такая же аналогия с кодом. не может непрофессионал писать код. и не должен. но если люди этого не понимают, они обречены на траходром с говнокодом и вечными глюками. я уже устала это повторять. больше не стану.