Обновить
0

Пользователь

1
Подписчики
Отправить сообщение

Уважаемый, расскажите нам всем как использовать стд::опшинал со ссылками и не надо тут ляля разводить, что мне это не надо или что вот используйте указатель или что я с++ не понимаю или ещё какую ересь. Где мои безопасные нулабл ссылки я вас спрашиваю!? А нету их и не будет пока страуса буквально не закопают.

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

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

Т.е. во первых этого трэйта нету, во вторых это должен быть не один, а пара десятков трэйтов (по количеству параметров конструктора), в третьих если у вас тип имеет 2 и более конструктора с одинаковым числом параметров то придется приседать и использовать +1 параметр для реализации оверлоада внутри трэйтового метода, в четвёртых мы ещё ошибки даже и не обсуждали, а это ещё несколько десятков трэйтов.

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

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

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

Поэтому в стандартных контейнерах мы действительно этого скорее всего никогда не увидим.

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

Раньше я к файналу для класса относился нейтрально, сам не писал видел редко. Теперь отношусь отрицательно - был неприятный инцидент с ним. Обновили гугл тест/мок до последней версии, а оно там в своих мудях где то использует этот самый файнал для класса обертки результата. А у нас был шаблонный трэйт который определял является ли класс наследником от базового ШАБЛОНА и сделать этот трэйт можно сегодня только через наследие в стандартной библиотеке такого нету. Ну вот у нас юнит тест и поломался из за этого файнал где то глубоко в детэйлсах гтеста - проблемы на ровном месте, а где он помогает я так и не понял.

Я вам как пользователь дома который принимали по правилам скажу (как раз каркасник) - хочешь что бы было нормально строй ну или хотя бы проверяй сам имеется ввиду плати деньги проверенному спецу с репутацией за проверку. Чинуши проверяют не дальше чем в требованиях, а требования скажем так сильно не поспевают вашим ожиданиям ну и само собой вы все равно за эту проверку как покупатель заплатите, только когда проверяет чиновник у вас нет выбора и нет конкуренции и поэтому цены там мама дорогая. Мне больше импонирует схема на подобии обязательной страховки/ТО, т.е. проверить надо но только что бы я сам как покупатель мог выбрать кто и что проверяет. Мне в ипотеку все равно дом страховать вот пусть страховая и проверяет и от результата проверки зависит цена страховки - застройщики сразу начнут как то учитывать что их косяки влияют на продажи из за высоких цен на страховку, а страховой не выгодно ни придираться ни игнорировать ибо это либо меньше клиентов либо большие расходы по страховым случаям.

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

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

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

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

Я и на плюсах и на расте пишу, кастомный делетер в шаред поинтере нужен совсем для других целей никто конечно руки выламывать не будет, хотите использовать по другому вперёд. Кастомный делетер нужен для того чтобы отдать шаред поинтер на дочерний объект но при этом мы все же хотим что бы удалилось все дерево объектов, а не только дочерний (и то он скорее всего владеется по значению). Короче хотите понять зачем шаред поинтер такой какой есть смотрите алиасинг перегрузку конструктора. Я 1 раз этим пользовался очень нишевая функциональность.

Не мешайте человеку хотеть, он художник он так хочет.

Ветки 98 см, с++98, 17,20,23 см тоже самое. Хвост 20-22 и 20-19 это версия вижуал студии, про камни и цвета я не понял. Ну а бобрандеску это Чак Норрис в мире бобров имхо.

Ну вообще то могут и все по праву. Я так говорю потому что знаю на опыте. На одной из предыдущих работ меня так и уволили. Нанимали меня СТО и тим лид и были всем доуольны, потом через год сначало ушел в другое место на повышение СТО, потом мой тим лид пытался занять вакантное место сто, но в конечном итоге должность сто упразднили, а ещё через 3 месяца упразднили тим лида. И вот у меня новый лид и ему не понравилось что по требованию прошлого лида я и ещё один товарищ писали много тестов на легаси код. В общем устроили реструктуризацию на -2 человека, оценки формальные всех в команде. По хард скилам уволить меня у них никак не выходило, а вот как раз софт скилы и стали формальным поводом. В общем через 1.5 года я написал по собственному по их совету. Смысл в том что помимо заявления на увольнение я написал так же и заявление в трудовой трибунал (все по сговору с высшим менеджером). Зачем? Все просто компенсация по такому заявлению не облагается налогами, они мне выдали 1.5 месечной ЗП таким образом. Зачем я на это согласился? Опять очень просто зачем тратить свои эмоциональные ресурсы на бессмысленное противостояние если можно просто найти место получше где мои софт скилы норм? Плюс остаться в хороших отношениях с текущими менеджерами, которые потом смогут дать хорошую рекомендацию + деньги. Т.е. зачем воевать если можно дружить? Ну не понравился я новому тим лиду - не беда, понравлюсь другому.

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

Так что по софт скилам увольняют и вполне по законам.

С хр проблем никогда не было. Избегать таких разговор не значит не уметь их поддерживать.

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

У нас тут neat and tight коллектив, ты нам не подходишь. Я думаю, что реальная причина в том, что сео, сто и большинство их коллег были бездетными на тот момент и просто не понимали чё за чушь они несут. В общем хорошо, что они это сразу сказали, а то потом мучаться с такими.

Это например когда обсуждение кто что ел в каком ресторане и что смотрел в кино/по стримингу и кто где отдыхал и кто пошел на какой концерт/вечеринку уже немного так сказать надоело и поэтому я например стараюсь избегать такого общения. Обсудить рабочий вопрос или интересный аспект программирования всегда пожалуйста, но почему то(да понятно почему) это как раз не то что будет обсуждаться по умолчанию. Я вообще могу вспомнить ровно 1 (~ из 50) англоязычного колегу с которым мне было интересно общаться.

Питохон, прям по русски звучит и сукель хорошо. Я вот часто ещё скулайт говорю.

Ну а я , например, троль, но ничего против ЛГБТ не имею.

Я вам больше скажу, ЛГБТ это страшилка 20 века. В 21 веке бояться стоит иного. Лично я не раз говорил, что если мои дети будут в отношениях в которых хотя бы есть ещё один другой человек, когда вырастут, то это уже успех.

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

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

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

А по колхозному, хорош ля-ля и покажи код.

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

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

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

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

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

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

По-моему скромному мнению, серьезность проблемы чрезмерно переоценена. В подавляющем числе реальной передачи слайсов они таки не пустые. Мало того я не очень понимаю какую полезную работу может выполнить сторонний код будучи вызванный с пустым слайсом (в любом направлении). Обычно если слайс пустой это выявляется ещё до вызова сторонней функции и вызов просто не происходит за бессмысленностью.

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

Теперь в обратную сторону, что если нулевой слайс пришел из с++, да очень просто используйте ас_реф который возвращает опшионал, а на нем анврап_ор с дефолтным/пустым слайсом. Да чуть больше накладных расходов, но не ужас ужас.

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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность