Перейти к публикации
  • Сейчас на странице   Всего пользователей: 1   (0 пользователей, 1 гость)

Rooster

Программирование, т. 8

  

315 пользователей проголосовало

У вас нет прав на голосование в этом опросе, или на просмотр результатов опроса. Пожалуйста, войдите или зарегистрируйтесь для голосования в опросе.

Рекомендованные сообщения

 

 

Ну ты скажи, какую ошибку выводит компилятор-то. Или по-твоему разработчики компилируют свою программу взглядом?)))

это был эталонный пример инициализации массива в классе на С++, в нем нет ошибок (и странно что ты не осилил 10 строк кода уровня хело ворд)

точнее в нем НЕТ ОШИБОК ПО СТАНДАРТУ

а вот CLANG находит ошибку

и дает утечку памяти

 

и я проебал 2 часа чтоб понять почему у меня код крашиться на ебучем CLANG тупо чтобы добавить 1 массив, 2 часа, классный С++ язык

 

и это я к тому что

 

 


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

Собственно, отсюда и много попыток переделать C++, ибо компиляторы стали умнее и с такой ерундой могут разобраться сами.

копиляторы компилируют так как им хочеться(в зависимости от текущей версии компилятора)и никак иначе

никаких "ахуенныых стандартов" там нет

я уже три версии clang-а борюсь все с новыми и новыми ахуенными багами там где их блять фиически и теоретически быть не может(ктоб мог подумать что в clang инициализация static const может быть багнутая, ктобы мог подумать)

 

горю с clang, ничего личного, извини ес че

JuJeu понравилось это

Поделиться сообщением


Ссылка на сообщение

Знаете это чувство когда слышишь разговор двух адептов философии, как там они про Гегеля-Хуегеля разговаривают, Кант-Хуянт блять? Вот такое же чувство когда читаю про то как там компиляторы с с++ работают


Shaman.png.0cdd33d48561cd068bb3c5ee78289381.png Anna.jpeg.03c9b49363298ceec256500a5d522f7d.jpeg Nigga.jpg.f807f2556bdbf68452292a9301494591.jpg

 

Поделиться сообщением


Ссылка на сообщение

мда щас бы гегеля не осилить


65881.png

Поделиться сообщением


Ссылка на сообщение

Нахуя если можно у Рассела прочитать за его хуйню?


Shaman.png.0cdd33d48561cd068bb3c5ee78289381.png Anna.jpeg.03c9b49363298ceec256500a5d522f7d.jpeg Nigga.jpg.f807f2556bdbf68452292a9301494591.jpg

 

Поделиться сообщением


Ссылка на сообщение
Гость LifeIsPain

А вы когда набрасываете код на тетрадке / в голове на СИ++ обычно на какой компилятор ориентируетесь?

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

Поделиться сообщением


Ссылка на сообщение
(изменено)

в джаве если что тоже баги есть


Изменено пользователем Just.Doit

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

фух хорошо что у нас в джаваскрипте все в порядке

.felix понравилось это

65881.png

Поделиться сообщением


Ссылка на сообщение

так падажжи что у нас тут компилятор

`KV понравилось это

Я не человек, Я - Кантона. (с)

Miraxes#2986

753357.png

Поделиться сообщением


Ссылка на сообщение
(изменено)

 

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

да это неважно, валидность можно проверять четвёртой типа

 

([0-9a-zA-Z]|[тут дальше вайтлист символов])

 

или тупо отрицательно на забаненые вещи

 

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

хочешь проверить допустимые символы? 1 регулярка

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

 

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

 

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

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

 

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

 

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

 

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


Изменено пользователем TRiPL3

Не проигрываю доту с 2013го - dotabuff

Поделиться сообщением


Ссылка на сообщение
(изменено)

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

фиксед

 

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

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

 

 

PS: ты не прав. 3 мелких регулярки гораздо читаемее чем хуйня в 1 строку. все твои плюсы имеют место быть но профит от них микроскопический. ты приводишь какие-то нерелевантный вещи типа количество копирований или разница в размере кода между 1 большой регуляркой и 3мя разными отдельными ее частям

всё это нивелируется тем как мыслит человек когда подходит к этой задаче - "нужно проверить А, Б, В => сделаю 3 проверки для А, Б и В"


Изменено пользователем Just.Doit

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

Раз уж говоришь о данной ситуации, то я, например, просидел над той регуляркой минут 10 от силы. Какие лишние символы она, по-твоему, пропускает?


Не проигрываю доту с 2013го - dotabuff

Поделиться сообщением


Ссылка на сообщение

 

А эта?

 

^(?=.*[a-z]+)(?=.*[A-Z]+)(?=.*[0-9]+)(?!.*\s)(?!.*[а-я])(?!.*[^\x00-\x7F]).{8,}$

 

 

 

 

лол, с единицей жестко тупанул 

Вроде работает, шас еще почекую и разберусь, шо к чему тут.

 

чет вы какую-то сложную хуйню нагородили

 

https://regex101.com/r/oQYJWI/1

 

добавить только нужные спецсимволы в последний блок разрешенных символов

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


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

Поделиться сообщением


Ссылка на сообщение

Я понял из условия, что он хочет, чтобы все символы были допустимы, без отдельного указания.


Не проигрываю доту с 2013го - dotabuff

Поделиться сообщением


Ссылка на сообщение
(изменено)

Раз уж говоришь о данной ситуации, то я, например, просидел над той регуляркой минут 10 от силы. Какие лишние символы она, по-твоему, пропускает?

но твоя регулярка как раз содержит вайтлист чарактеров которые ты критиковал........................

просто он записан как 0-127 кодепоинты


Изменено пользователем Just.Doit

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

Я понял из условия, что он хочет, чтобы все символы были допустимы, без отдельного указания.

ну судя по

Regexperu на месте?

Нужен регэксп на пароль - 1 маленькая, 1 большая, 1 цифра - обязательно. Символы - опциально. И только latin. 

^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).{6,8}$
пока такую хуйню ток нашел, но тут и русские буквы и иероглифы хавает, не пойму как их исключить

 

 

надо латиница + разный регистр + цифры + допустимы спецсимволы

даже про пробельные ничего не понятно


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

Поделиться сообщением


Ссылка на сообщение

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

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

 

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

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

1) таки ж её удобнее читать

2) у тебя есть два кейса проблемного пароля - в нём есть что-то недопустимое, в нём не хватает чего-то обязательного

что для юзера удобнее видеть конкретную проблему или хотя бы вектор (наличие/отсутствие), что для программиста которые это читать будте потом видеть чё твои проверки вообще делают и как

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

 

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

опять-таки, разделяешь на 2 кейса - "не хватает" и "лишнее"

 

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

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
(изменено)
это был эталонный пример инициализации массива в классе на С++

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

 

А вы когда набрасываете код на тетрадке / в голове на СИ++ обычно на какой компилятор ориентируетесь?

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

А вголове несколько компиляторов держать трудно

 

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

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

Я бы понял, если бы в примере был пустой массив (без размера). Тут вроде есть разницы в обработке.

 

копиляторы компилируют так как им хочеться(в зависимости от текущей версии компилятора)и никак иначе

никаких "ахуенныых стандартов" там нет

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

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

 

Случай с тем, что статические переменные нужно неинлайново инициализировать растет из того, что переменная должна "жить" в конкретном объетнике. У нее не может быть несколько адресов. Поэтому и заставляют разработчика конкретно указать, определяя переменную, в каком объектнике она живет. Когда компилятор генерирует код определенного объектника, у него есть только заголовочные файлы от других модулей. И он не знает, должен ли он в данном модуле дать адрес статической переменной или же должен слинковать ее с переменной, живущей в другом модуле.


Изменено пользователем Grohuf

Поделиться сообщением


Ссылка на сообщение

с днем пидораса вас мужики

Grohuf и `KV понравилось это

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...