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

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

Отправить сообщение
Вот только не надо хаскелль и лисп складывать в одну кучу к коболам

Я складываю в одну кучу не с т.з. языка, синтаксиса, его идей и прочего, а именно с ТЗ комьюнити — тех, кто их используют и возможностей самого языка.

Да и в целом я всё правильно сказал. Вся это это кобоальгольная семья. Которая существовала до того как появился си. А после си захватил как мир, так и все эти язычки.

Хаскелль и лисп — отличные языки со своей нишей, как и многие другие.

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

Да и само понятие «ниши» для языка — это уже определения его как убогого. У языка не может быть «ниши» — у него может быть только порог вхождения.

Да хотя б даже зайдите на оф. сайт хаскелля https://www.haskell.org/ и посмотрите, сколько там пакетов в менеджере пакетов

И всё это мусор никому не интересный и никому не нужный, ну кроме адептов, хипстеров и прочих школьников.

Единственная причина почему хацкель не на помойке как остальные ФП-языки — это его мультипарадигмальность. Хотя он называется «функциональный» — он полностью дискредитировал ФП, как и коммонлисп. Ничего без циклов и классиков на этом позере не написать.

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

да, кстати, у хаскелля есть менеджер пакетов, в отличие от c++, я помню, кто-то в комментах тут жаловался об отсутствии менеджера пакетов у c++

Зачем сравнивать жопу с пальцем? Хацкель псевдояп для школьников. Одно дело собирать хелворды школьников из шаблончиков на недоязычке, а другое дело интегрировать в себя всю широту того же С++ мира и системщины с тоннами легаси. Что там будет делать хацкель-адепт для получения своего гхц, пакетного манагера и прочего бинарного рантайма?

Да и что за враньё. У меня есть «менеджер пакетов» портеж называется. Ведь с C++ я получаю системный мир, а так же си, а с си — весь остальной(основной) системный мир.

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

Вот именно в этой области фортран дико популярен и конкурирует с C&C++ нередко выигрывая у них.

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

В реальном мире даже дефолтные диалекты сишки на помойке. Для этого достаточно взглянуть на любые блобы интела( выше эксперт рассказывает куллстори про штеудский компилятор фотрана), да и любые конкурентоспособные реализации. Фортран там невидно, но он 100% там есть. Единственное что есть на фортране — это протухшее дерьмо из 70х, которое не сливает в хлам только жаваскрипту. И то если повезёт.

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

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

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

А приведенные выше MatLab, Python, та же Mathematica — это чаще всего лишь инструменты прототипирования или текущих расчетов над небольшими моделями.

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

Справедливости ради MatLab поддерживает параллельные вычисления на суперкомпьютерах

Это на уровне заспавнить на mpi тонну дерьма? Не велика заслуга. Слово «супер» не делает код под этот «супер» супер. Никто до сих в параллельность на уровне суперскалярности и симдов не может, кроме как в подвалах интела в обнимку с ассемблером, либо каким-нибудь дсл.

мы гарантируем те ресурсы, которые указаны в тарифных планах

Правильно, только ничего в ТП не указано. Там написано: E5-2650 v4 (6 Cores), что не является верным.

да и ЦОД не предоставит столько дополнительных IP адресов

Не понял. Чем 30 адресов на одной тачке отличаются от 30 на 5?

Вы можете убедится в этом, аппаратная виртуализация KVM не позволит создать 30-40 виртуалок

Оснований для этого я не вижу. Что этому помешает?

Очень часто, виртуалок крутится до 6.

Ну давайте посчитаем. 6виртуалок 80% из которых с 10гб — это 6-7 планок по 8гигабайт. Каждая по «6 Cores» — т.е. один процессор на одну виртуалку. Там их 2. Уже не сходятся показания. Почему же так мало памяти? Ведь память ничего не стоит — в нашем сервере ещё 20планок свободны.

Зададим себе просто вопрос — почему во всех этих «виртуалках» определяющим параметром является память? Для этого нет никаких предпосылок, кроме одной: память в отличии от процессора пошарить на 30виртуалок нельзя. Поэтому чем меньше памяти тем больше у нас виртуалок на одном сервере. Всё сходится.

это гарантированный ресурс

А собственно кто говорил обратное? Память и есть гарантированный ресурс. С этим никто не спорит.

Контекст статьи «использования для высокопроизводительных математических вычислений». И именно в этом контексте фортран никого интересовать не может.

А то, что кто-то пишет на фортране по каким-то другим причинам — это не важно т.к. эти причины не есть «мы пишем на фортране, ибо нам надо максимально быстро».
под виртуализацию у нас применяются платформы DELL R730XD новейшего поколения (v4)

Ну это-то понятно. Тухлые штеуды не прокачают 30-40виртуалок на тачку.

Платформа дорогая и 1 платформа стоит около 8000-9000 евро в РФ, в Европе немного дешевле. И эта платформа лишь на несколько виртуалок по 29-49 долларов, даже не евро.

Такой показательный сеанс саморазоблачения. Действительно. Платформа с 24 планками даёт 2-3 виртуалки по 10ГБ памяти. Как всегда нет никаких условий по ЦПУ. При этом это ещё неизвестно сколько на них стоит впс класа «2ядра-2гига», либо ещё чего.

Это ещё не учитывая всяких фокусов с ksm из-за которого каждого юзера мы на 1-2гига налюбливаем, а уж если пропатчить дистрибутив/ядро, то точно 2-3гига можно отъесть.
Начну с многомерных массивов. Допустим, вам нужно максимально эффективно работать с большими квадратными матрицами в C++

Только в контексте фортрана говорить об «максимально эффективно» не имеет смысла.

А как сделать так, чтобы синтаксис был нормальным (a[i][j]), но чтоб было эффективно?

А с чего это нормальный синтаксис? Кто определил тот «факт», что синтаксис через n не нормальный?

При этом читаем ниже:
И обращение к i-му j-му элементу происходит так: A(I, J)

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

А по поводу «не может» — у меня почему-то может:

#include <stdio.h>
#include <stdint.h>

void f(uint64_t n, char p[n][n]) {
  fprintf(stderr, "%lu\n", &p[10][0] - (char *)p);
}

int main(void) {
  f(1024, (void *)(char[123456]){0});
}


Однако Fortran 90 не такой уж и новый. 26 лет прошло. 26 лет эта фича есть в Fortran'е. А в C++ её нет до сих пор.

А кому она нужна? Никому — кому нужно красиво — пишет на крестах и делает себе какой угодно синтаксис.

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

А теперь «фичу» чтобы получить обратный случай? Что? Её нету? Да вы что. Оказывается это никакая не фича, а просто иное поведение по умолчанию, а си может и так и так? Ну ничего — бывает.

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

Такой истории нет. Производительность есть у компилятора( в случае фортрана). Уже наверное лет 20 как фортран никого не интересует и интересовать не может.

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

В тех компиляторах, в которых фотран быстрее жаваскрипта никакие рестрикты компилятору не упали. Это хинты для экспортируемых функций. Если «высокопроизводительных вычислений» собирать как в 95-м в разных единицах трансляции, то тут конечно всякое бывает. Но таким профессионалам дали lto.

А вот как там устроены правила алиасинга в Fortran'е, я не знаю, просто где-то в интернете я как-то прочитал, что появление restrict позволило C наконец приблизиться Fortran.

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

Да и интересуют не самим биткоином, либо ещё чем-то, а интеграцией его в текущую банковскую систему. Это задача банковской системы и правительства — контролировать всё то, что можно продать/обменять т.е. ценности. Естественно чтобы поиметь маржу, да и не только.
Майнеры могут только цензурить (не допускать какие-либо транзакции в блок).

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

Не совсем понятно: вы утверждаете что блокчейн вообще бесполезная технология в принципе, или не применима конкретно в описанном в статье случае?

Блокчейн никакая не технология. Это просто иная вариация известных всем 100лет в обед «технологий», которые никто не использует введу их не нужности. Биткоин — просто один из немногих примеров где эта вариация имеет смысл, но опять же — это и есть фатальный недостаток биткоина.

Блокчейн позволяет достичь консенсуса относительно состояния некоей информационной системы (пример: распределение монет в Биткоине или состояние памяти Ethereum Computer)

Я не понимаю что мне пытаются сказать. Блокчейн к этому не имеет никакого отношения.

Любой бы отгрёб побольше биткоинов, но это невозможно.

И блокчейн тут не причём.

Торренты построены на полностью альтруистичекой системе, там речь не об обогащении.

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

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

Точно так же и в биткоине. У меня есть биткоины — я не хочу, чтобы они потеряли цену. У меня есть мощности — я не хочу, чтобы они потеряли цену.

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

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

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

Опять булшит.

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

Чем вам биткоин не угодил? Что конкретно вызывает слёзы?

Его техническая несостоятельность.

Сама генерация блоков не состоятельна — это форкбомба для сети. Сейчас биткоин существует только благодаря кастылю — увеличиваем время генерации до невменяемых значений уменьшая шанс на форк. Невменяемое время на подтверждение делает биткоин несостоятельным как платёжную систему. Я хочу за кассой в макдаке заплатить и получить свой бургер сейчас, а не через час. И эта проблема не решается. Сколько там сейчас трупут биткоин-сети? 3tps? Идеальная система, которая ставиться раком тремя перводами от мамки 3 сынкам. Хочу заплатить с мобилки? А нет — я не могу туда поставить ноду.

блокчейна

От чего спасает блокчейн? Правильно — ни от чего. Это булшит.

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

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

Далее, где брать эти хеши? Кто будет гарантом? Децентрализация сети такой же булшит как и блокчейн — её так же не существует. Т.е. даже не смотря на первое замечание нужна централизация.

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

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

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

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

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

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

Читаешь эти куллстори про биткоин, блокчейн и плачешь.

E5640 сейчас можно купить по такой цене,

Ну сейчас — это наверное года 2-3 как. И купили они его по такой же цене. Бизнес-модель простая — покупаем железо по цене металлолома, а потом продаём лохам.

Никто в здравом уме не будет покупать 40-й когда есть 20-й для таких целей.

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

В таких условиях никто 40-й вместо 20-го и не купит. Это сразу говорит о том — откуда они там взялись. И именно в последние пару лет.

Ну пацаны нашли выход — вдс. Идеальный бизнесплан. На тачке 4ядра? Сколько на неё можно накатить вдс по 1ядру? Правильно — 40.

Надо отбивать.

Им по 5лет. И уже минимум года 2 они стоят по цене лома.

кроме возможно доступной памяти

Обычно на таких хостингах еле-еле 8 отсыпают. Ну максиму 16.

А не стыдно продавать E5640 и прочий треш со стоимостью в районе цены металлолома по 100$+? Но даже не это самое страшное — неужели это кто-то покупает?

В конечном итоге, за редкими исключениями, либо E5640, которых можно килограмм на эти 100баксов купить, либо хетцнер со стоимостью х2. Так и живём.
Зайдём с формальной точки зрения. Надстройка — это то, что может быть выражено через базовый функционал. С какой стороны не зайди, хоть бытовой, хоть судостроительной, хоть марксистско-идеалистической, надстройка является следствием базиса, выражается через базис и выполняет функцию оптимизации и повышения удобства работы этого самого базиса. Вы можете выразить плюсовые шаблоны через макросы? Нет? А на плюсах писать, не трогая <cstd*>? Да? Ну, значит, не надстройка, а самостоятельная сущность. А то же самое Qt или boost — надстройки, так как они целиком реализуются из чистого с++.


Мне уже лень разбирать ваши потуги уровня первого класса. Это настолько фееричные высеры. Какая оптимизация? какой ещё нахрен базис. Настройка это то, что имеет основу и не может существовать как самостоятельный объект.

Является ли анальный зонд подключаемый к айфону надстройкой? По логике( вернее её отсутствию) тутошних экспертов нет. Но это ладно.

А на плюсах писать, не трогая <cstd*>? Да?

Нельзя. cstd не является языком ни в коей мере — это кусок лишь сишного рантайма. Да и не существует никаких реализаций крестового рантайма не основанного на сишном.

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

А далее мы задаём правильный вопрос — если из С++ выпилить си, то что останется от С++? Правильно — ничего. Даже синтаксиса не останется, но опять же к синтаксису я не придираюсь.

Если же мы расширяем термин «надстройка» до уровня «может иметь одинаковое представление на нижнем уровне»

Опять какой-то убогий высер. С++ является си не на уровне какого-то там конечного представления — он является им на уровне начального преставления.

Для ламерков и балаболов это слишком сложно. Банальный пример с теми же функциями — std::decay -это что? Правильно типичный пример экспортированной из си логики.

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

Именование тут не причём — очередной убогий высер. Дело в том, что по определению перегруженные функции не являются одной функций, а являются разными функциями — почему? Правильно — по той причине, что в си нету перегрузки функций.

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

Причём тут методы? Если говорилось о функциях? Ну а далее всё просто — перегруженные методы являются одним методом? Либо разными?

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

Очередной убогий высер. Про какие-то там электроны.

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

Концепция памяти на уровне языка описана.

А вот в структуре и синтаксисе языков программирования они есть. Есть там и типы, и методы, и enum'ы.

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

Тип это не про память — тип это про интерпретацию данных. Интерпретация данные к памяти отношения не имеет — это исполняемая логика.

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

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

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

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

Что? Какая-то неведомая херня.

К сожалению или к счастью, он так не работает.

О боже, днище не понимает почему не работает инвок. А я поясню. Он не работает по той причине, что невозможно в функцию передать функцию. Т.е. функции на уровне С++, а вернее на уровне си представляют из себя уникальные объекты доступные по ссылке(имени)/указателю. На уровне си никакой перегрузки функций нет, а значит все работает нормально.

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

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

Кстати говоря, почему срабатывают перегрузки operator()?

Пацан реально не понимает, либо ослит? Я уже писал про оператор().

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

Но функтор есть ни что как кастыль. Как и все С++.

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

Шаблоны никакущий инструмент для метапрограммирования — его там нет.

Вот так и живём, что #define invoke(f, args...) f(args) может больше, чем мощные шаблоны.

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

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

Если будет не лень мне — я сделаю отдельный разбор. Вдруг вы рально не понимаете.
На уровне процессора и ассемблера — массив байт. На уровне языка — нет.

На уровне языка так же. В целом споры с балаболами лсными бесмысленны — зачем я этим страдаю?

На уровне языка память никакой типизацией не обладает. Собственно поэтому аллокаторы и возвращают void *.

Типизация памяти является свободной — это определено на уровне языка. У памяти есть только свойство «длинна» и начальный адрес. По определению понятие адреса и длинные( опять же в языке длинна является ничем иным как офсетом между началом и не включенным конечным значением) представляют множество всех значений. По умолчанию используемой единицей адресации на уровне языка определён char, а на уровне модели памяти любое значение числа в промежутке «между» допустимыми.

Да, и эту логику юнионы инкапсулируют (и, кстати, поговаривают, писать в один член юниона, а читать из другого — UB). Но инкапсуляция — для балаболов, чоткие пацаны смешивают понятия, ясно.

О боже, опять какой-то убогий высер.

Чтение и записать в любые члены юниона не является уб. Ты получишь ровно то, что там есть. Это валидная операция.

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

Потому что копировать объекты через memcpy вы не можете, например.

Какие такие объекты? Мемкопи копирует память. Копировать представление в памяти любого объекта я могу.

В целом потуги ясно. Балаболка обосралась и пытается съехать с темы памяти и объектов в памяти на тему объектов в логики смеси данных и исполняемой логики.

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

Вон из профессии.

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

Мешает семантика языка и наличие конструкторов копирования, которые надо вызывать. Копировать вы можете только POD-типы (в C++03, в C++11 чуть сложнее).

В целом слив пошел по тому пути, что я заранее определил.

Какое отношение семантика языка имеет к памяти?

Этот тред тому доказательство, юное создание.

Действительно. Что-то на основной мой пост ты не ответил. А теперь как и любая балабокла пытаешься юлить, в чём-то меня обвинять и прятаться за таких же лсных балаболов как ты.

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

Вот это новость. Меня тутошние эксперты учат Си. Как это мило. В функцию передаются аргументы через копирование. И отсутствие передачи массивов, функций и прочего — это свойство не функций, а некопируемости этих объектов. Так работает присваивание в си, что присваивание некопируемоего объекта равняется присваиванию указателя на оный.

Такая же логика работает везде и поведение функций есть следствие этой логики.

Вызвать printf с первым параметром типа FILE получится после изнасилования компилятора.

Чего? Поподробней про насилие при передачи указателя.

На уровне железа?

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

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

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

Из этого ничего не следует. Зачем мне об этом рассказывать? От этого этого определение памяти не меняется.

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

Это верно и для уровня ОС и для уровня приложения. «блоки» на уровне ОС есть ни что иное как объект уровня менеджмента, а не памяти. В любом случае всё это в конечном итоге эмулирует то определение памяти, что я дал.

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

Ну давай, завкаф филфака, удиви, что же есть на уровне языка?

Зачем мне задан этот вопрос? Из чего он следует?

Может не ясно почему логика рантайма и логика программиста не являются уровнем языка?

Нет, если у меня массив int.

Опять 25. Что за тотальный аутизм. Массив, а в данном случае указатель — есть интерфейс, а не память. Нет никаких различий между int и не int на уровне памяти. По определению и языка, и матчасти и логики.

Выбрасыванием исключения std::bad_alloc?

Опять какая-то ахинея вместо ответа. Вы написали херню:

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

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

Вас спросили чем это поведение отличается от «массива» вашего. Вы ответили «не знаю». О какой вообще вашей вменяемости может идти речь? Если вы не знаете — нахрен вы это пишите?

На уровне памяти и массивов не существует. На уровне памяти вся память — один большой единственный массив.

Ой балаболка. Дак память массив или не массив? Ну ладно тут лужа.

А теперь подумаем, о чём же мы говорили? Ой мы говорили о:

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


Т.е. кусок массива( блок есть кусок) не является массивом? Вот это новость.

Объект — это, если сильно упрощать, вот эта самая адресуемая штука. int a; struct {} foo;, и так далее.

Не верно. Объекты существует на уровне языка — это интерпретация памяти. На уровне памяти же никаких объектов не существует.

Собственно на этой логике построены юнионы. Ну куда там балаболам.

Вы не можете так относиться в памяти к C++.

Опять какие-то пустые утверждения. На основании чего вдруг я не могу? Поподробнее.

А объекты вы через memcpy копируете? Даже с виртуальными функциями и всем таким? Норм вам тама.

Какие такие объекты? Причём тут объекты. Говорилось про «блок памяти» — блок памяти есть массив. С этим вы выше согласились. Зачем эти ваши потуги? Какое они имеют отношения к теме?

Да, объекты копируются мемкопи — любые. И объясняется этот факт очень просто. Вы там выше балаболили про new, дак вот как работает new? Правильно через sizeof.

Т.е. при создании объекта он создаётся в «блоке памяти», который явно определён. И этот блок ничего не мешает копировать.

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

При это какое отношения имеет ваш высер к той цитате на которую вы отвечаете — вы не ответите, ибо он отношения не имеет.

Заметим. Высер аналогичный той тактике, что я описал в каком-то комменте. Мы высираем какую-то не относящуюся к делу херню и на основании «потому что я так сказал» делаем вывод, что «оппонент дурак».

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

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

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

«я не понимаю» — это не ответ. Вы можете не понимать только потому, что в моих рассуждениях есть какие-то дыры, либо потому, что вы дурак. Если никаких дыр и фактов слабости суждений у вас — вы дурак. А это ваша проблема.

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

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

Из этого следует, как минимум, что конструкция с new интереснее, чем прокси к маллоку.

Очередная потуга. Хотя что с вами балаболами спорить. Выше вами же было определено, что:
выделение памяти C (malloc/free) и выделение памяти C++ (new/delete)

Т.е. (new/delete) — «есть выделение памяти C++ ». Вам сказали, что это не так. В данном случае вы сравнивали аллокаторы и явно это указали. Все потуги не имеют смысла.

Но при этом является Си. Ясно.

А С++14 не совместим с С++11 — является ли он С++? А является ли CL лиспом?

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

Вот у нас есть айфончик. У айфанчика есть коробка. Есть айфончик в чехольчике. Можно ли на основании того, что айчинчик в чехольчике не влезает в коробку сделать вывод, что айфончик в чехольчике не является айфончиком? Ведь он с коробкой не совместим, а значит имеют другую форму и габариты. Т.е. его представлению в пространстве добавлены новые свойства.

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

Если же пойдём дальше и будем учитывать только форму( ну с логикой домохозяйки иного и не дано), но тут у нас уже возникает вопрос — что определяет форму айфончика в чехольчике? Чехольчик или айфончик? Уж явно не чехольчик, но так же явно и не сам айфончик в полной мере. Хотя он без чехольчика существует, а чихольчик без него нет — это уже определяет то, что является из них основополагающим елементом.

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

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

Ну раз число не является принципиальным, я его заменю и на вопрос «А при этом если надмножество С++ является в плане языка состоящим на 0.01% множества Си, то является ли С++ каким-то самостоятельным множеством?» со спокойной совестью дам ответ «нет».

Слив засчитан.

Для любого множества элементы его подмножеств принадлежат этому множеству. Ваше определение неконструктивно.

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

На уровне доступном вам. Вот у вас, в детском садике, есть шарики на ниточке в руке у васи. Т.е. элемент есть шарик — их 3 — это множество шариков.

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

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

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

И вам привили пример. Есть функции. Функции это объект — конструкция языка. У этой функции есть неопределяющие свойства — т.е. отсутвие/наличие какого-то из этих свойств не делают функцию другим объектом.

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

Точно так же, как редакция какой-то книги не определяет содержание книги как «новое», ибо не изменения не являются определяющими.

Из допустимых программ, очевидно.

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

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

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

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

Мне вот интересны. Вы такой балаболящий эксперт, но почему же вы не ответили внятно на это: https://habrahabr.ru/post/315152/#comment_9916208. Тем все подробно разобрано. Правильно, ибо обосрамс.

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

Как минимум, есть частичные специализации

И что же из этого следует? Правильно — ничего. Это не тупая подстановка значений?

а значит, есть паттерн-матчинг

Нету. На уровне шаблонов есть только генерация тонны типов и в этих тоннах говна компилятор уже копается — опять же тупым перебором с приоритетами.

Да и опять же — к чему эту потуги? Это что-ли что-то меняет? Либо делает мои слова неверными?

условные операторы

Нету. Можете мне попытаться его показать, только не накостыленный, а именно оператор.

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

и полная Тьюринг-полнота.

Как и в брайнфаке.
На шаблонах это всё немножечко сложнее.

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

Сделайте мне

Опять пошел какой-то байт на трату моего времени и заведомо ущербанские предъявы.

Как им образом из:
В остальном проблемы всё те же и использование то же.

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

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

Информация

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