Как стать автором
Обновить
-11
0

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

Отправить сообщение
Опять враньё. Собственно слив засчитан.

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

Невероятно.
Окей, тогда мой ответ (не ораторский): в C++ есть не только operator new.

Из этого ничего не следует.

Совместимая с С часть совместима с С, ломающие новости.

Опять какие-то убогие попытки написать херню. Говорилось не о совместимости, а о причинах этой совместимости. Хотя опять же С++ не совместим с си.

То есть, программу на С++ можно собрать компилятором С? Иначе я не понимаю смысла этого утверждения.

Очередная херня. Дело не в том, что кто-то чего не понимает — дело в том, что кому-то сказать нечего и начинаются инсинуации.

Смысл уже давно был определён. С++ не является языком совместимым с си — он является си в той части в которой он совместим с ним. Ибо по определению понятие «совместимости» не подразумевает того, что совместимое является тем же самым, что и то с чем собственно оно и совместимо.

Об обратной совместимости пересечения, очевидно. Вы вообще понимаете, что такое «обратная совместимость»?

Опять какой-то невнятный высер. Что из этой потуги должно следовать?
Откуда тут число 95% взялось? Почему не 99%? Не 42%? Не 0.01%?

Очередная потуга ещё более убогая чем предыдущая. Был задан конкретный вопрос с конкретными условиями. Какой там число не является принципиальным — нужен чёткий ответ да или нет.

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

Вот мы видим всю убогость балаболистики. Ведь ниже сказано «Да и с любыми раскладами», т.е. заранее дан ответ на потуги про «а если не 95%». Но зачем отвечать нормально? Правильно — херня наше всё.

Вы назвали язык множеством? вы. Я приписал к нему свойство которое есть и может быть у языка. Что вам не ясно?

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

Хорошо — оставим это. Определимся с множеством. Что есть «множество языка»? Из чего оно состоит?

Очередное игнорирование всего и вся.

На адекватном уровне типизации — нет.

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

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

Опять какая-то брехня. Какой ещё объект? В памяти нет никаких объектов. Память это и есть массив адресуемых елементов.

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

Т.е. если мы имеем какой-то адрес и его длину( т.е. блоками памяти по вашему), то на самом деле мы имеем массив из всех значений от значения адреса текущего до значения адрес + длинна.

Всё просто.

И без разницы как это дальше интерпретировать — память это массив. По определению.

Эм, что? Вы макросы с шаблонами точно не путаете?

То. Хотя о чём это я. Экперты тутошние даже не знают что такое шаблоны.

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

Это что? Хотя о чём это я. Это ведь не ответы — это просто невежество.

Ладно — буду срывать покровы. Шаблоны работают точно так как препроцессор — занимаются тупой подстановкой значений. Только подставляют они сущности уровня кода( о чём я писал выше) на уровне кода есть значения и типы. Ну и целом они более мощны, ибо созданы были не в 60-х( в том же препроцесоре запрещена рекурсия) поэтому и тормозят так безбожно.

Т.е. это такой же отдельный от языка уровень. Но который уже более стильный и работает не с текстом. В остальном проблемы всё те же и использование то же.

А значит ли это, что си — это ассемблер?

Эти убогие попытки. Нечего сказать — скажи херню.

А какую логику из ассемблера экспортирует си на уровень языка? Поподробнее.
В коде new используется куда чаще, чем operator new, поэтому обсуждать последний, особенно для доказательства, что в C++ ничего принципиально нового нет, одни прокси к malloc, не имеет особого смысла.

Слив. Я уже опустил слив с массивами из С++, которых не существует. И перлами вида «ссылка из С++ есть указатель из си».

выделение памяти C (malloc/free) и выделение памяти C++ (new/delete)


Чтобы оратор опять не слился на свои интерпретацию понятия «выделение памяти» — разберём его цитатку.

Он назвал «выделением памяти» маллок. Т.е. оратор использовал понятие «выделение памяти» как выделение памяти в общепринятом значении.

А далее оратор называет аллокатором в С++ new, что является неправдой. Ибо new нихрена не аллокатор, а создатель объектов.

И тут оратор загнал себя в угол, ибо он говорил не про объекты, а про память. А теперь же он слился на объекты.

Из утверждения «эта программа написана на языке, который и есть си» не следует, что её можно собрать компилятором си? Окей, а что тогда значит, что программа написана на языке, который и есть си?


Очередной слив. Полный игнор уличения оратора в подлоге. Ни о какой программе и ни о каком языке речь не шла. Речь шла о:

С++ «обратно совместимый» не потому, что он эмулирует поведение си — он и есть си. Изначально существовал как надстройка над си, да и сейчас существует.

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

А далее если учитывать то( это я уже выше/другх постах разбирал) то, что в плане языка С++ состоит из си с прикрученными классами( исключениями и rtti, но опять же это в больше степени левый рантайм, а не уровень языка), то С++ ни что иное как си. Но это уже к делу не относится — это про следующие предложение которые вы не пастили. Хотя вы и не пастили и первое, иначе без вранья и передёргивания отвечать было бы нечего.

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

Очередные кидания левыми понятиями. Если это надмножество, то о какой такой «обратной совместимости» вы говорили выше?

А при этом если надмножество С++ является в плане языка состоящим на 95% множества Си, то является ли С++ каким-то самостоятельным множеством? Да и с любыми раскладами — является ли С++ самостоятельным множеством?

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

Статические массивы есть. С сохранением типа при передаче по ссылке.

Нету. И быть не может.

Что за бред? Вы вообще писали на плюсах что-то, кроме пары лабораторных работ?

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

Ответ на это враньё есть выше.

А что произойдёт, если вы аллоцируете массив из N объектов, и какой-то из конструкторов этих объектов бросит исключение?

Конструкторы не имеют никакого отношения к аллокации. Опять же отвечающий мне путает operator new и new, но такое бывает.

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

Не следует. На основании чего это следует?

Из этого следует лишь то, что всё то, что есть в С++ и си — это одно и то же — это си.

Но опять же всё это не важно, ибо вам ответ не более чем попытка юлить. Вам было сказано это в контексте:

С++ «обратно совместимый» не потому, что он эмулирует поведение си — он и есть си.

Естественно из этого понимается то, что говорится только о частях эквивалентных( в вашем понимании совместимых) с си.

Опять же не верно. С++ не поддерживает совместимость с си — он и есть си. Напишу и тут. Он создавался как надстройка над си. Он существует как надстройка над си. Вся логика уровня языка в нём сишная.

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

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

С++ экпортировал эту логику. Добавил к ней ту же перегрузку, но опять же в С++ функции на уровне языка не появились — опять же только указатели. Опять же те же самые отдельные куски данных. Что мешало в С++ вывести функции на уровень языка? Они итак уже стали несовместимы с сишными на уровне бинаря. Правильно — ничего. Можно было бы на этом реализовать сишное поведение и прочее? можно. Почему это не было сделано? Правильно, ибо С++ это си.

И всё просто в С++ перегруженная функция была бы одной функцией, а не множеством. Её можно было бы спокойно передать как некую общую сущность. Это собственно крестовики и кастылили создавая объект и реализуя перегрузку через перегрузку оператора (). Ибо они понимали, что этот функтор — это и есть функция уровня языка, а не убогий сишный кастыль из 60-х.

И так со всем.
А почему забыли calloc?
они совершенно не интересуются, массив это или нет.

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

Типы — это свойство интерфейса. На этом уровне — указателя.

блоками памяти

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

Не забывайте, *alloc принимают не число элементов, а размер в байтах

А что такое байт? Это не элемент?

realloc завершается успешно, даже если из ста элементов удалось переместить 3,141592. π скопированных элементов — это нормальное поведение массивов?

Чё? Если вектор на аппенде зафейлится, то чем его поведение будет отличатся от реалока?

Массивы C++ — std::array.

Это не уровень языка. Это не более чем поле с сишным массивом.

Желаю удачи с неявными кастами из\в void*.

В крестах есть какие-то проблемы с неявным кастом в воид? Вот это новости.

Это косметическое отличие. Если уж говорить об изменении кастов, то говорить надо об уменьшении силы сишного каста в крестах, а вернее наделение его логикой крестового каста. Но опять же это косметика, ибо ничего на уровне языка не поменялось.
На уровне языка в С++ нету никаких массивов, строк( строк так же нету и в си, кроме левой логики с инициализацией литералов, но это такое), вывода( причём тут вообще вывод?), опять же путанье ключевых слов и операторов. Операторы new/delete являются по сути лишь алиасами( я знаю про новомодные куллстори) к маллоку и никакой новой логики не не несут. Ссылка не является альтернативой указателя. Это дополнительная сущность.

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

Именно из-за того, что С++ есть си в нём и есть та тонна проблем о которой я писал ниже.
Что из этого следует и к чему вообще это написано?

С этой точки зрения все транслируемые языки — не более, чем надстройка.

Надстройка над чем? Причём тут транслируемые языки?

Есть что ответить — отвечайте. Нечего — не отвечайте. Всё просто.
Нет.

Да. С++ не более чем надстройка над си. Ничего своего там на уровне языка( а не сахара) нет. Вся логика работы с функциями экспортирована из си и по этой причине перегрузка функций выглядит как кастыль и работает как кастыль. Попробуйте сделать какой-нибудь std::invoke на перегруженную функцию — не получится, а проблема одна — си. Ибо на уровне языка не существует никакой перегрузки — это убогий кастыль с именами. На уровне языка даже функций нет. Только указатели, хотя тип-функция и есть, но это тупой ссылка.

И так везде. Всё что должно работать и не работает — это наследие си. Нету constexpr памяти? Си. С++ ничего не знает об объектах и памяти — этого не существует на уровне языка( да то же rtti накостылено на именах, отсюда и рефлекшена нет, хотя с чего ему не быть в статическом языке? А правильно — он нихрена не статический.). Строковые литера ущербны? Си. Опять же в си это просто глобалы с законстыленной логикой инициализации.

Различия С и С++ — огромны и фундаментальны.

Их нет. Это не отличия — это просто обвес. Нельзя сравнивать С++ с тем, аналогов чего нет в си. Если сравнивать, то имеет сравнивать именно основу и изменение в основе, которая и есть язык, а сахар и левая логика — это не язык.

Если мы сравниваем Си(чай) и С++(чай с сахаром и ложкой классиков), то мы не можем сравнивать сахар в них, либо классики, ибо их нет в первом случае. Мы сравниваем только чай. Ибо и в первом и во втором напитке основой является чай, а не сахар. И именно этот чай из С++ есть ни что иное как чай си. Ни какой-то другой чай, а именно он. И опять же от добавления в него чего-то ничего не поменяется, ибо основа есть основа.

С — lvalue-discarding language, C++ — lvalue-preserving language. Уже этого достаточно для того, чтобы заявлять, что любые сходства между этими языками — не глубже уровня сходного синтаксиса.

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

Т.е. в крестах просто добавили возможность менять эту логику( оставив сишное поведение — поведением по умолчанию). Из этого ничего не следует — это не уровень языка. Далее вернули сишную логику копирования и назвали её «перемещением», что на самом деле и есть копирование.

А далее все эти рассуждения про типы ссылок — это опять же не что иное как логика вызова( или не вызова) конкретных методов( т.е. левой логики при копировании объектов).

Уже давно было объяснено, что inline больше не имеет отношения к оптимизации.

Кем и почему?
Этот спецификатор влияет лишь на то, как определение функции взаимодействует с One Definition Rule

Бессмысленной правило вызванное наследием Си и 60-х годов. Но мы его не обсуждаем.

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

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

Но опять же это лишь дополнительная логика инлайна для глобалов и само «встраивание» никуда не делось.

, и не более ни на что.

А не для глобалов?

В С++17 появятся inline-переменные, где новая роль inline сияет во всей красе.

Ну на самом деле это логика «определи, либо игнорируй если определено» и то, что её повесили на инлайн — из этого ничего не следует. Да и аллогично это.

«Не отжаты» они были у вебмани.ua, либо у просто вебмани?
Что явно не разрешено/запрещено, условно разрешено, до тех пор, пока этим не заинтересуется правительство страны.

Из этого ничего не следует. Вы спрашивали( а вернее делали намёк, а ещё вернее просто врали( либо не понимали)) про «легально» — вам и ответили. Что это легально. Вы начали искать оправдания, которые к делу отношения не имеют. Вы написали откровенную несуразицу и вместо того, чтобы это понять начинаете юлить.

В этом мире есть законы, а мнение правительства и комментаторов с ГТ никого не интересует. Правительство может пропихнуть законы и уже тогда, когда сервисы будут нарушать эти законы — к ним и будут претензии и их можно закрывать. А пока законов нет — это пустой трёп.

В виду последних событий

Каких событий, подробнее? Как с этими «событиями» связаны эти сервисы?
, украинское правительство заинтересовалось российскими ПС, которые считает «угрозой национальной безопасности», и которые считает необходимым явным образом отрегулировать.

Опять же какие-то несвязные обвинения. Что же следует из того, что они российские? Это только ваши проблемы.

Если вы за какую-то прозрачность( о которой мы ничего не знаем, и вопросы о которой вы благополучно проигнорировали), то надо быть последовательным. В противном случае это ничто иное как принуждение и отъём бабла(рэкет). При этом только на почве того, что либо они российские, либо просто нужны бабки.

Чья это «вина» — это уже другой вопрос, на который я и хотел получить ответ.

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

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

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

Что? Опять что-то несвязное. Никто про это не говорили — говорили именно про то, что если причина претензий в отсутствии прозрачности, то где блокирование пейпала и других подобных сервисов не из рф? Либо зачем это вообще надо? Т.е. где хоть какие-то доказательства того, что существует какая-то прозрачность и именно она нужна?

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

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

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

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

Но для таких обвинений нужны какие-то документы или хотя бы слухи.

Не верно. Есть конкретные действия и может выявить их мотивацию. Если вы можете эти действия объяснить подругому — вперёд. Но вы этого не можете. Зачем заблочили вебмани? Которое не юа?

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

Ещё раз. Это никому не интересно. Я могу давать оценки какие пожелаю. Вы с этим несогласны — аргументируйте. В конечном итоге вы этого не можете и призываете к банальному «это не так потому что не так». В данном случае никакого инсайда быть не может, поэтому все рассуждения на этом уровне о каких-то доказательствах не имеют смысла, ибо их нет ни у кого.

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

Для начала надо повысить и как-то определить эту прозрачность в других платёжных системах. И да, прозрачность чего?

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

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

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

Как можно вообще легально работать в какой-либо стране по законодательству другой?))

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

Какие-то слишком слабые рассуждения.
В этом и есть логика. Сделал вид, что «не в курсе» того, что у тебя отжали, а далее:

Да и потом им разрешили продолжать работу.

Всё просто.
что O(1)

Вы, кстати, хэш-таблицу не на списках писали, я надеюсь?

Такие взаимоисключающие параграфы.

Я могу не глядя в реализации сказать,

А ничего, что O(1) стоит 4кб на елемент минимум? А уж про время ресайза я даже не говорю.

не говоря уже об ужасной аллокации памяти в деревьях (как в списках, только хуже).

Ужасные аллокации( что это?) проблемы stl в который не завезли вменяемый аллокатор.
Я просто не считаю себя умнее группы других людей, работавших над данной конкретной задачей достаточно долгое время.

А над какой задачей работали эти люди? И какое-такое «долгое время»?

Конечно, если вы пишете на С, то вы не можете пользоваться той же STL, но нужно понимать, что отсутствие хорошей стандартной библиотеки — это недостаток, а не достоинство.

Это достоинство. При осмысленном использование си — это не язык — это подход.

Ну и кто вообще сказал, что stl — это «хорошая библиотека»/«хороший подход» с т.з. производительности? Это хорошая обобщенная библиотека и продукт ограниченный рамками заранее определённого интерфейса и интеграции.
Не, ну раз так бывает — я даже попрошу прощения. Если человек может отвечать за свои слова, то он не балабол. Конечно изначально это было в утвердительной форме и утверждать то в чём не уверен не очень хорошо, но всё же — я ценю. Не обижайтесь.

Может это реально не вы меня минусовали и я ошибся, но не особо это что-то меняет итак понятно почему.

Вы можете считать ответ на вопрос неправильным

Дело не в том, что я что-то там считаю — дело в том, что ваш ответ не состоятельный. И вам объяснили почему.

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

Какое отношение ваш ответ имеет к предмету обсуждаемому здесь? Вы можете хоть каким-то образом объяснить — где конкретно в данном случае это проявляется и каким образом решение предложенной автором первоначального коммента решает проблему?

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

Минусанул — не отвечал, после сослался на другой коммент и выкатил первую ссылку из гугла, которую нагуглил после прочтения чужого коммента, при это ни тот коммент, ни его ссылка к теме отношения не имеют — после минуснул и слился. Типичный эксперт.

Информация

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