LINUX.ORG.RU
Ответ на: Объясняю. от o2n3e

Ущербное стл, пропихивание этого вырвиглазного стл куда нипопадя.

тупые какие-то рассуждение об «небезопасности», вера в что-то нипонятно, фанатичность.

Велосипедостроение опасносте, ага. :)

slackwarrior ★★★★★
()
Ответ на: комментарий от x905

как следовало бы сделать

Ответ немного предсказуем... Как в голом Ц же :)

slackwarrior ★★★★★
()
Ответ на: Объясняю. от o2n3e

Писать 2 строчки для юза stl, что бы не писать 2строчки на С(да, да, теже алгоритмы и прочее, прочее)

vector<string> foo() {
    vector<string> v = { "a", "b", "c" };
    v.push_back( "d" );
    for( string& s: v ) s += '_' + to_string( rand() );
    return v;
}

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

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

wota ★★
()
Ответ на: Только вот. от o2n3e

окай, я понял. ты из тех, кто делает интерфейсы на ифах и свичах, когда нужно сделать структуру с указателями на ф-ии. а когда тебе нужен линейный список, ты каждый раз начинаешь делать его сначала. или даже может быть у тебя есть в заначке свой велосипед для сверхбыстрых линейных списков, который работает быстрее на один такт, чем std::linked_list и даже (!) man 3 queue.

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

nanoolinux ★★★★
()
Ответ на: комментарий от slackwarrior

То было раньше. А сейчас говорят: «Иногда лучше жевать, чем говорить» (ну или в перекладе на седые муди: «молчание - золото»)

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

fixed

malbolge ★★
()
Ответ на: комментарий от malbolge

«молчание - золото»

ITT прям россыпи :) Ополчаются именно пионеры - остальные делом заняты.

slackwarrior ★★★★★
()
Ответ на: комментарий от nanoolinux

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

Зачем? Они же пишут один раз - и потом все работает :) А потом все с нуля переписывают - зато всегда очень заняты.

slackwarrior ★★★★★
()
Ответ на: комментарий от wota

хочется увидеть аналог на С

Ты забыл еще ему про «О большое» и гарантии :) У велосипедистов из гарантий обычно ЧСВ и «зуб даю» :) Быть им без зубов, когда состоится выстрел в ногу... заказчика.

slackwarrior ★★★★★
()
Ответ на: комментарий от wota

Чет неувидел я тебя.

Ты бы мог понять, что я пишу про «алгоритмы» и прочую байду.

а) man указатель, man куча. б) man виртуальная память, ман char buff[100500]; в) man указатель. Скобки ставим. Ну и да, такое тормазящие говно только божественные сущности пишут. г) man пункт а.

Бомжатские, тормазящие веркторы и иные stl сущности в нормально написанном коде не нужны. Осиль reserve(), авось твое поделие не будет тормазить как лыжник на асфальте. Вот осилишь reserve(), и тогда поймёшь, что твои векторы можно выкинуть, ибо это проще написать на Си.

o2n3e
()
Ответ на: комментарий от nanoolinux

Молодец.

И как это связанно с тем, что я писал выше? Да, я каждый раз начну делать сначала, ибо: а) это меньше тормазит, б) это делается за 5минут. Быстрее такого говна, как stl контейнеры работает любой кастыль, а уж один такт - это твои фантазии, погугли про tlb, погугли про говяные аллокаторы в stl, погугли много чего ещё. Когда из 100 елементов, такого говна как std::linked_list 30елементов находятся в разных страницах, я думаю тебе не надо объяснять в чем фейл?

Про man 3 queue, я тебе открою тайну - там 3макроса по 5строчек, которые пишутся за 30-40секунд. Не удался пример.

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

И да, удачи тебе в дебаге stl"а, и иных шаблонных штук. Удачи тебе в расширении stl, допустим добавить туда нормальный аллокатор. Удачи тебе в изменение логики работы какого-нибудь метода, удачи тебе в написании чего-то быстрее касынки.

o2n3e
()
Ответ на: Молодец. от o2n3e

Удачи тебе в расширении stl, допустим добавить туда нормальный аллокатор.

Вообще-то, это стандартная фича.

Deleted
()
Ответ на: комментарий от slackwarrior

Окай.

Меня веселят такие сущности. Лепечут про какие-то гарантии, про какие-то выстрелы в ногу. Удачи тебе в написании реалтайма на stl. Твой шаблонный высер конвейерного тяпаляпалки никакой объективной информации не несёт. Мне похрен на твоего заказчика и твои пугалки и твой деревенскийинтерпрайз.

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

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

Ну и да, как я уже писал выше: Фобии и детские аргументы детей играющих в кубики и трясутся перед каким-то заказчиком - мне не интересны, они смешны и сливаются на раз. Играйся в песочнице - удачи тебе в развитии.

o2n3e
()
Ответ на: комментарий от Deleted

Кстати.

Добавление нормального алокатора - это не смена шила на мыло. Нормальный аллокатор не совместим с «парадигмой» stl, ибо он убивает основу stl - «саморастущий кантейнер», конструкторы/дедструкторы и прочую лабуду с алокаторами.

Есть пуллы/(кольцевой)буферы/стеки - запилить над ними обёртку проще, чем делать кастыль для стл, который будет раскидывать куски по 10+ контейнерам в программе.

Фича не прокатила.

o2n3e
()
Ответ на: Чет неувидел я тебя. от o2n3e

а) man указатель, man куча. б) man виртуальная память, ман char buff[100500]; в) man указатель. Скобки ставим. Ну и да, такое тормазящие говно только божественные сущности пишут. г) man пункт а.

код будет? то, что задача решаема на С, я и так знаю

векторы можно выкинуть, ибо это проще написать на Си

у меня такое ощущение, что ты векторы использовал только для буферов статичного размера, где и в плюсах никто не подумает использовать вектор, вот тебе пример «динамики»:

struct db {
	void add_user( string name ) { users.push_back( name ); }
	vector<string> users_ = { "admin" };
};

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

wota ★★
()
Ответ на: комментарий от wota

Упорот чтоле?

Ок, давай конкретный пример. Что должен код делать и что принимать. Твои бредни про «юзеров может быть бесконечно» и прочую детсадовскую лабуду я не не слушаю. Конкретно.

Нет понятия статического буфера. Я тебя сказал - гугли виртуальная адресация. Твои детские бредни смишны и убоги, я думаю ты это осилишь? посчитаешь во сколько раз 48бит «больше» 36, или неосилишь?

address sizes   : 36 bits physical, 48 bits virtual

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

Я тебя уже сказал char buf[100500*100500]; Влезет мильён твоих юзеров, и вообще иди осиль матчасть + Осиль что-то кроме вектора.

Думаю тебе не надо объяснять, что твои пример ущербен? std::string сдесь не является даже в твоём кривом понятии «динамическим», а является константным.

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

o2n3e
()
Ответ на: комментарий от nanoolinux

Аргументы иссякли?

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

o2n3e
()
Ответ на: комментарий от wota

Ну давай.

Давай, скажи мне что это небезопасно. Или какие там у вас ещё аргументы есть. Не, самым эпичным аргументов будет - «не влезет на стек"е», «не влезет в оперативу» и ещё т.п.

o2n3e
()
Ответ на: А ты подумай. от o2n3e

Понимаешь, ява-вагон, который тащит С/С++ паравоз НЕ МОЖЕТ НИКАК БЫТЬ БЫСТРЕЕ ПАРАВОЗА

Чувак, похоже ты не понимаешь, как работает JIT в приципе. «Вагон и паравоз» описывают интерпретацию, а не компиляцию. В случае JIT, образно говоря, один паравоз делает другой паравоз, который дальше едет сам. Да, он может ехать медленнее и даже требовать участия другого паравоза, чтобы въехать на горку, но теоретически может быть и быстрее.

annulen ★★★★★
()
Ответ на: комментарий от annulen

Только вот.

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

Тот же предсказатель ветвлений в процессор явно(объективно) медленней тупо переходов по true в 100% случаев, та же работа кеш"а и прочии кастыли явно медленней код"а, который сам всё это делает. Это простые объективные вещи, которые нормальный код усиленно пытается обойти. Такая же ситуация и с жавой, ибо для того, что бы жаба-коду приблизится(даже на десятичный порядок) к скорости нормально написанного Си/асм кода - надо выти за пределы ограничиния jit, и jit Тут ОГРАНИЧЕНИЕ, а не помошник.

Jit, это если взять близкую аналогию - это дорого в обход преград, которую построили бульдозеры(Си/асм) и идти по ней можно быстро и безопасно. Это будет быстрее, чем идти напрямиг, преодалевая препядствия. Даже бульдозерам(Си/асм). НО, но только если ты не создашь свой самолёт, а самолёт можно создать только с навыками на десятки десятичных порядков превышающие навыки требуемы для хотьбы по дорогам. Поэтому да, человек с навыками 10псевдопунктов будет быстрее идти по окружной дороге, чем напрямик(и фейлится на природных приградах). Но человек с навыками 1000000псевдопунктов просто сядет на место, и пока предыдущий человек шел половину пути - построит себе самолёт и будет летать ограниченный лишь законами физики(т.е. железом), а не природными(ограничения навыка/понимания) препятсвиями.

Аналогия крива, я смешал 2 понятия код и программист, но в общих чертах она правильна.

o2n3e
()
Ответ на: Аргументы иссякли? от o2n3e

учись аргументировать свой выхлоп

что тебе аргументировать? тебе уже пару раз предложили написать на С за 5ть минут на коленке аналог кода, написанного на с++, но в ответ видны лишь скудные знания архитектуры х86 и всякие

Твои детские бредни смишны и убоги

nanoolinux ★★★★
()
Ответ на: комментарий от nanoolinux

Молодец.

Как ты не поймёшь, да и те, комут ы подпеваешь. Нет такого понятия «код работает так же», есть такая штука, как «код выполняет ту же задачу». Для реальной задачи аналог кода на С++ НЕ НУЖЕН, а навоять то, что делает этот бомжатский вектор - это 5строк кода. Что там сложного? заюзать реалок? Запилить конкатенацию? маллок+2memcpy, либо stdlib. Только вот это говно будет тормазить так же, как этот вектор.

Щас придёт лиспер или пхпешник, и будет мне говорить «напиши мне анлог кода на Си», но, даже если я напишу - этот «несмысшлёный человек» начнёт мне вонять, аля «У тебя память сама не удаляется, деструкторов нет», «у тебя конкатенация работает не так как», «У тебя не шаблонный класс» и т.п. Весь этот бред мы уже 10раз проходили.

И я на 95% уверен, что если я напишу str = conc(str,conc(str1, str2));(str = conc3s(str, str1, str2);) - это твой «предложатель» будет мне вонять, а в С++ это красивее и это будет str += (str1+str2); он будет мне вонять, что в Си нет перегрузки, мои функции будут работать только с char, либо будет выдавать ровнинги и требовать указания типов. Это, как я уже говорил - детский сад.

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

o2n3e
()
Ответ на: комментарий от nanoolinux

А уж если.

А уж если я напишу какой-то аналог С++ компилятора(т.е. макроподстановку конструкторов/деструкторов, замену конкатинации аля +=,= на stdlib, то ты же первый будешь вонять «Это сложно и нечесно». В чем смысл твоих притензий?

o2n3e
()
Ответ на: Правда чтоли? от o2n3e

Дело не в том, тормозит Ява или не тормозит. Она гораздо безопаснее в принципе.

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

В С++ даже полноценного логического типа нет, о чем еще говорить?

LongLiveUbuntu ★★★★★
()
Ответ на: Потомучто. от o2n3e

Да, объясни, почему идеология С++ протухла. Недавно прочел наконец-то D&E, много интересного узнал. И почти понял, почему и зачем С++ «такой». И что Страуструп не дурак на самом деле.

anonymous
()
Ответ на: комментарий от LongLiveUbuntu

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

он просто не осилил gdb, такие дела

В С++ даже полноценного логического типа нет, о чем еще говорить?

зато там unsigned есть ^_^

wota ★★
()
Ответ на: комментарий от anonymous

Я же говорил.

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

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

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

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

Так же как и ООП - это вещь, которая полезна, но. Это лишь ПУТЬ решения проблемы/задачи. И программист должен знать и понимать много путей, но пусть должен выбираться оптимальным, исходя из задачи. НО, когда ООП головного мозга пихает тупое ООП везде, агрументируя это его мистическйо «безопасностью» - это пичаль.

И идеальный язык должен МИНИМАЛЬНО ограничивать программиста, ни порадигмой, ни возможностями. И С++ самый, объективно, идеальный язык, но... Деревенский интерпрайз, тысячи макак, ООПголовного мозга, лень, неспособность осилить - припратили его из С++ в stl, и там не ослось ни Си, ни ++.

o2n3e
()
Ответ на: Объясняю. от o2n3e

STL - это не ООП. Более того, автор STL является противником ООП. Никто ООП не навязывает, а некоторые считают, что в С++ его вообще нет. По поводу С. Очень не хватает автоматического вызова деструкторов, шаблонов(не буста, а для нормального обобщенного кода - на макросах неудобно), ИНОГДА не хватает ООП(руками сделанная на Си - не удобна, я уж не говорю о ужасах gobject) и исключений. При чем в С++ это все(кроме исключений) не приводит к оверхеду. Писал по нескольку лет и чисто на Си, и на плюсах. С++(при грамотном подходе) гораздо удобнее. Ты говоришь о ненужных обертках, забывая о не менее ненужных велосипедах, вроде собственных реализаций даже списков, которыи кишат почти все сишные проекты...

anonymous
()
Ответ на: комментарий от LongLiveUbuntu

Безопасность нужна макаке с гранатой.

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

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

И чё? Нахрен мне твои исключения? Чем мне поможет твоя строка?

Жабисты, такие жабисты. Осиль матчасть. Логический тип на текущей архитектуре не возможен, да и не нужен. Или сложно осилить, что !0 == true?

o2n3e
()
Ответ на: комментарий от vertexua

GPGPU это отдельная песня. Под них пока пишут гораздо реже чем под ЦПУ, хотя тенденция огпушивания таки есть...

AIv ★★★★★
()
Ответ на: А ты подумай. от o2n3e

ява-вагон, который тащит С/С++ паравоз НЕ МОЖЕТ НИКАК БЫТЬ БЫСТРЕЕ ПАРАВОЗА.

паравоз НЕ МОЖЕТ НИКАК БЫТЬ БЫСТРЕЕ ПАРАВОЗА.

Слова не мальчика, но идиота.

LongLiveUbuntu ★★★★★
()
Ответ на: комментарий от anonymous

Объясняю. ОПАСНО, МЕГОВЫСЕР

!!ОПАСНО, ПОШЛО МЫЛЬЦО!!

Для меня ООП головного мозга - это ненужная смесь данных и кода.

Я против С++, как к языку с обширным набором возможностей не имею притензий. Я имею притензии к социуму, который образовался вокруг него.

Кто там и чем С++ не считаем - это не особо интересно, это их бредни и они не особо нам интересны.

Да, я за С++. Я за то, что бы компилятор - был моим другом, он должен мне помогать. Он не должен быть тупым, волшебным черным ящиком. Я знаю, что он может определять типы и т.п. и МНЕ ЭТО НУЖНО. Но почему-то вместо удобго api к компилятору - я получаю борьбу с ним(компилятором).

Я вообще считаю, что программы не надо писать. Я хочу лишь говорить компилятору КАКУЮ программу я хочу, какой код. Он мои помошник, моя база знаний, мой генератор кода. ОН НЕ ЗАМЕНА МОЕГО МОЗГА. Я не хочу писать на абёртках над абёртками(в лице С++) и на АБСТРАКЦИИ обёртки над обёрткой( влице скриптовых языках, jit и т.п.).

Компилятор ЯП высокого уровня - должен быть что-то типа помошника для языка похожего на макроассемблер. Зачем скрывать работу жезела от меня? Зачем скрывать алгоритмы компилятора от меня? Зачем, зачем? Я хочу писать, я хочу понимать. 99% своего времени я трачу на борьбу с компилятором и на изучение железа, профайлер, курение выхлопа копилятора и потрошение gcc, glibc. Зачем это скрывать, зачем?

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

Как я уже говорил - универсальность бич, отец тормазов и мать кастылей. Мне нужна реализация списка именно такая, какая нужна МНЕ, а не ТА, КОТОРАЯ НУЖНА ВСЕМ. Допустим, мне нужно обработка удалёных елементов, какая-то спецобработка до вставки и т.п. - МНЕ ПРОЩЕ ЗАПИЛИТЬ НОВУЮ РЕАЛИЗАЦИЮ, чем писать обёртки для каждого метода stl списка.

Поэтому С++ - это для меня Си с плюсами, а не новый язык. Мне похрен на ООП и т.п. Я спользую что мне удобно, и то, что даёт мне больший профит. И мне пичально, что возможности С++ становятся универсальными, но не гибкими. Мне нужна гибкость, а не универсальность.

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

o2n3e
()
Ответ на: комментарий от LongLiveUbuntu

Учи матчасть.

Возмножно лишь обёртка над uint8_t, а обёртку ты можешь написать и на С++. Слейся и подучи матчасть. Бул - это бит, а биты адресовать машина не может. Твоя реализация имеет менее 20% кпд по памяти и перфомансу и нужна лишь неосиляторам из деревенского интерпрайза.

o2n3e
()
Ответ на: Учи матчасть. от o2n3e

Ты идиот. Причем тут биты? Булевский тип может занимать в память любое количество байт, дело не в этом. Главное, чтобы логические операции возвращали результат логического типа вместо арифметического, тогда как минимум исчезнут ошибки вида «=» вместо «==» и им подобные.

LongLiveUbuntu ★★★★★
()
Ответ на: комментарий от LongLiveUbuntu

Учи матчасть.

И чё? Нахрен мне твои исключения? Чем мне поможет твоя строка?

Где заволилась я итак пойму, и осиль stdout, stderr.

Учи матчасть.

Т.е. конкретного объяснения нет? Так и запишем, - «слив». Очередной пациент, который доказывает, что исключения, векторы нужны и незаменимы, но как-то же люди без них живут?

o2n3e
()
Ответ на: комментарий от vertexua

Учи матчасть.

А ещё ява не годится для числодробилок(49% программ), и молотилокданных(49% программ), ибо работа с памятью в жава такая, что рыдать и ржать так и пропирает. Т.е. ява годитсят олько для окошек и деревенского интерпрайза с кпд 5-10%, - так и запишем. Да, да, а OpenCL/CUDA это не Си. Да и гугли матчасть.

o2n3e
()
Ответ на: комментарий от LongLiveUbuntu

Учи матчасть.

Т.е. «логическая» обёртка над арифметическими «результатами»? Я разве не про это говорил? Кдп такой обёртке сам посчитаешь? Таких ошибок я не видел никогда, а проблемы косолапых адептов деревенского интерпрайза меня не интересуют. Осиль ворнинги, маторику, глаза и т.п.

Нет в железе твоего логического типа, есть == !=, битом больше, либо битом меньше. Минимальный объект сравнения байт, и он может быть только НЕ РАВЕН или РАВЕН нулю в «логическом смысле». Осиль логику.

o2n3e
()
Ответ на: комментарий от LongLiveUbuntu

Шел бы ты отсюда.

Хотя да, там двусмысленно. Уточню специально для тебя. Я хочу именно РЕАЛИЗАЦИЮ программы. Вот я пишу, допустим, strlen. И компилятор должен мне помачь написать её так, что бы она выглядила в машинном коде минимум так, как я хочу. Мне надоело бороться с компилятор, переставлять аргументы, добавлять/убирать переменные - т.е. методом тыка добиваться от него того, ЧТО Я ХОЧУ. Мне проще блин написать её на ассемблере, чем потрошить gcc в надежде понять как он там внутри устроен, ибо конкретной инфы 0.

o2n3e
()
Ответ на: комментарий от false

А ты видел.

Для начала - твой пост оффтоп. Автор решил свою проблему - суть темы уже неважна. Теперь тут обсуждается жава/плюсы, ибо тема сама по себе не особо конкретна и нужна.

o2n3e
()
Ответ на: комментарий от LongLiveUbuntu

Упорот чтоле?

ЧТо тебе не нравится? Ява-вагон, который тащит паравоз не может быть быстрее паравоза, который тащит этот вагон.

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

o2n3e
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.