LINUX.ORG.RU
Ответ на: комментарий от anonymous

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

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

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

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

В крестах нету того же void *. Я уж не говорю о чем-то повменяемей протухшего с89 говна.

Если ты имеешь в виду неявный каст, то оно и к лучшему. Это более строгое и правильное поведение. Да, C++ часто более требователен.

Си не является его подмножеством, ибо отдельная сущность.

Даже если множество является «отдельной сущностью», это не мешает ему быть подмножеством другого множества. Но в строгом смысле ты прав. Но в посте, который ты цитировал, была оговорка на счет редких исключений(т.е. да, можно на си написать не c++ код).

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

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

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

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

Уровень владения си у плюсовика, как правило, не уступает уровню владения C++

Это такое распространенное заблуждение

Это просто жизненное наблюдение. Хотя да, встречались чистые плюсовики, но это был вопрос отвращения к коду на си.

«Плюсовик»(tm) будет нерешительно топтаться перед макросами

Нет. Он или избавиться от них, или будет аккуратно использовать. Программист C++ должен понимать работу макросов и уметь их писать.

бледнеть перед goto

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

и хвататься за сердце возле обильных кастов.

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

Такое решительно осуждается во всех книгах по С++

Потому, что в C++ это все, как правило, не нужно или нужно редко.

но на чистом С без этого эффективно писать не получится.

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

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

Если ты имеешь в виду неявный каст, то оно и к лучшему.

Воид делает что-то кроме этого?

Это более строгое и правильное поведение.

Меня абсолютно не интересует твоё мнение. Аргументов кроме мистического говна у тебя нет и не будет.

Да, C++ часто более требователен.

Мне абсолютно насрать. Я лучше знаю, что мне надо. Защита от дурака реализуется ворнингом, а не прямым ограничением. Си не создавался как язык для обезьян - для обезьян есть скриптуха/жава/сишарпик и прочее.

Даже если множество является «отдельной сущностью», это не мешает ему быть подмножеством другого множества.

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

Но в посте, который ты цитировал, была оговорка на счет редких исключений(т.е. да, можно на си написать не c++ код).

Редкие - это всмысле для с89 обезьяны? Ну удачи ей в написание хелвордов. Какбэ воид в сишке юзается чаще всего. Никакой Си-код не будет крестами, если спициально не писать на ублюдочном С/С++.

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

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

Посмотрел бы я, как они напишут инициализацию штук 5 сущностей в одной функции int foo_init(struct foo*)... С обработкой ошибок, конечно.

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

Ты понимаешь, что ты поехавший? Уже всё. Не я, блядь, поехавший… не он, блядь, а ты!

Эй, амёба. Ты же аргументацию выкатишь?

И чтож ты мразь криво цитируешь? В надежде на то, что кто-то не нажмёт на ссылку?

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

Причём тут void мразь? Ты обосралась и ответить было нечего, поэтому ты решила что-то высрать? Ну дак ты же мне расскажешь ублюдок, а где же ты в контексте нашёл воид?

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

факт: это не так

Амёба, тут штука в том, что ты уже обсерился вот тут: C++ всё (комментарий) - и там ниже по ветке.

Давай попроще. Ниже по коду я там тебе показал воид в крестах, но почему-то он не работает. Где же в крестах воид? В сишке-то всё работает.

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

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

просто вызовут heartbleed и всё

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

Скорее из двух автоматов с обоих рук. Не каждому дано.

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

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

Я уже написал толкового (как ынтерпрайзного, так и нормального и эмбедного) больше

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

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

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

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

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

Ничего не понимаю! И это программисты. Говно какое-то, пидоры, блядь. Computer science им дала типобезопасный полиморфизм — используй! Используй полиморфизм, блядь! «Не хочу, хочу говно на void*!» Что такое? Это программирование? Это программирование? Суки, мудачьё — разработчики. Редакторы открыли, говно пишут — пидоры, блядь, ёбаные.

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

Давай попроще.

давай. видел мой код? работает? работает. как и задумывалось.

если хочешь скастить — так и напиши в коде. в крестах так и мне насрать на сишные грабли.

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

давай. видел мой код? работает? работает. как и задумывалось.

Давай. видел мой код? Не работает? не работает. так не задумывалось.

если хочешь скастить — так и напиши в коде

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

в крестах так и мне насрать на сишные грабли.

Т.е. ты обосрался? И типа если void * не работает, а вернее его просто нет - есть тип без семантики для совместимости, то это не твои проблемы? А нахрен ты кукарекал?

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

Т.е. по сути у тебя ничего нет?

Да и вообще, с чего какая-то нулёвая шавка будет меня учить писать? Мне не нужна твоя безопасность - она нужна тебе, убогому, а мне на неё насрать.

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

так не задумывалось.

повторяю n+2 раз: это потому что ты не умеешь в кресты

предсказуемое и стандартизированное поведение.

повторяю n+3 раз: это потому что ты не умеешь в кресты

если void * не работает, а вернее его просто нет

повторяю n+4 раз: это потому что ты не умеешь в кресты

если ты не знаешь как в крестах используют void * — это не значит что он не нужен и тем более что его там нет

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

Посмотрел бы я, как они напишут инициализацию штук 5 сущностей в одной функции int foo_init(struct foo*)... С обработкой ошибок, конечно.

int foo_init(struct foo*)

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

алсо, писал инициализацию подобного и безо всяких goto. другое дело, без goto какое-нибудь

for(i = 0; i<array_size; i++)
if(func(array[i])) goto Label_x;
return fail;
Label_x:
...

проще не написать

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

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

Я тебе про мк говорил? С далеко не только на мк используется.

алсо, писал инициализацию подобного и безо всяких goto.

В студию. Я хочу увидеть уровень вложенности!

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

просто вызовут heartbleed и всё

Да ты я смотрю эксперт? Какой жопой heartbleed связан с void *?

Кресты - нету void * - пожалуйста.

int main(void) {
  vector<int> a, b;
  a.resize(100), a.reserve(100);
  b.resize(100), b.reserve(100);
  for(auto & it : a) it = 0xdeaddead;
  for(auto & it : b) it = 0xbeefbeef;
  fprintf(stderr, "%x\n", a[110]);
}
$ ./a.out 
beefbeef

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

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

Ведь только в этом её приемущество перед C++, в том что парадигмы и их реализации не навязываются;

А где в C++ навязывание парадигм, можно пример?

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

я стараюсь бустом не обмазываться

А где их нет? В бусте есть, в Qt есть. Даже в стандарте некоторые макросы прописаны. Ну и в большинстве проектов, есть свои макросы. Причём, как правило, оправдано.

для всех вменяемых применений goto у меня есть исключения

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

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

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

Не оторвут, да. Но совсем по другой причине: обратная совместимость. Нафиг кому-то будет нужен «новый С», если код собираться перестанет?

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

Пример из оф. wiki:

Передёргиваешь. Этот пример ведь идёт рядом с обьяснением о том, что лайфтаймы автоматически выводятся, если могут, так ведь? И это именно «расширенный» вариант, который никто руками писать не будет.

Но справедливости ради, всяких спец-символов хватает, да. Но пользоваться этим, имхо, проще, чем С++.

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

Я б вообще запретил какие бы то ни было xxxx_cast обществу C++ных энтерпрайзных быдлокодеров ваяющих формочки для баз данных и распечатки бамажек.

Это говорит достаточно о твоём С++ опыте.

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

и уже фейл.

Датычё.

на мк (по крайней мере, на тех)

Ахренительный аргумент.

дорого выходят такие функции

Каким образом?

они полстека сожрут

Рили? Полстека на что? На указатель? Какой там callabi? Сколько надо иметь вложенных вызовов чтобы на 8-ми битном говне просрать полстека указателем. Инлайн не осилился?

только void foo_init(void), увы

Куллстори.

алсо, писал инициализацию подобного и безо всяких goto.

Говнолапшу на тыщу строк?

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

крестовик шопесдетс

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

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

согласен, процитировал немного не правильно:

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

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

К коду рандомных обезьян это конечно же не относится.

если к «рандомным обезьянам» вы относите всех, кроме вас самих, толку-то.

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

И? К чему ты это высрал? Что показывает твой вставленный a.reserve(101)? Почему конкретно я должен обосраться?

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

Ну какбэ в крестах это есть.

Аргумент детского сада.

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

Так и скажи - ты тупо не осилил С++.

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

макросы в стандарте. правда ты назовёшь парочку кроме __cplusplus?

goto. читай внимательнее на что я отвечал.

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

Я тебе про мк говорил? С далеко не только на мк используется.

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

В студию. Я хочу увидеть уровень вложенности!

5, максимум, ЕМНИП. в падлу искать.

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

5, максимум, ЕМНИП.

А если 10 сущностей инициализировать? Если что, это каноничный случай использования goto.

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

если к «рандомным обезьянам» вы относите всех, кроме вас самих, толку-то.

Я отношу к ним тех, кто остался на уровне 70-х годов.

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

А так да, можно продолжать писать дырявую говнолапшу на протухшем говне под протухшее говно, но в чем смысл?

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

Аргумент детского сада.

Чего аргумент?

Так и скажи - ты тупо не осилил С++.

Там есть что осиливать? Тебе не надоело мне что-то вякать, а потом обсираться?

Ты же мне расскажешь как ты дедуктивно вывел одно из другого?

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

Мне не нужна твоя безопасность - она нужна тебе, убогому, а мне на неё насрать.

Меня твои высеры просто доебали уже, я уже не могу их слушать, блядь! Один высер охуительней другого просто! Про говно, блядь, про какую-то нулёвку, void*... Чё ты несешь-то вообще? Ты можешь заткнуться? «Пишу, блять, void* — скастится сам». Чего, блядь? Про что несешь? Вообще охуеть.

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

Конкретней. На каком основании ты сделал данный вывод. Почему ты проигнорировал мои вопросы?

Что показывает твой «пример»?

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

алсо:


#include <iostream>
#include <vector>

using namespace std;

int main(void) {
  vector<int> a, b;
  a.resize(100), a.reserve(100);
  b.resize(100), b.reserve(100);
  for(auto & it : a) it = 1;
  for(auto & it : b) it = 2;
  cout<< a.at(110);
}


terminate called after throwing an instance of 'std::out_of_range'
  what():  vector::_M_range_check
Aborted

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

a.at
at

не стильно, не можно, не молодёжно.

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

Там есть что осиливать?

Ты привел типа «код С++», в котором заюзал libc функции вывода вместо libstdc++. Вывод - ты нихрена не умеешь С++. Я уже молчу про operator[] вместо at().

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

Ты привел типа «код С++», в котором заюзал libc функции вывода вместо libstdc++. Вывод - ты нихрена не умеешь С++

Логика дегенерата.

// другой анонимус

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

Т.е. уровень replace(T, type), если твой хлебушек не способен понять о чем я.

ГАГАГА

Такой большой мальчик, а факториала написать не способен.

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

Ты привел типа «код С++», в котором заюзал libc функции вывода вместо libstdc++.

И? Зачем мне юзать говно, если я могу юзать не говно? Мне ничего это не запрещает.

Вывод - ты нихрена не умеешь С++

На чем основан этот вывод?

Я уже молчу про operator[] вместо at().

И, причём тут at()? Где проверка выхода за массивы для дефолтных скобочек? Нету - дырявое говно - потенциальный heartbleed.

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

И? Зачем мне юзать говно, если я могу юзать не говно?

Если ты свой пример ущербности С++ привел на смеси С и С++, то его ценность нулевая.

На чем основан этот вывод?

Продолжай дальше делать вид, что ни понял.

Где проверка выхода за массивы для дефолтных скобочек?

Ты их сам назвал дефолтными?

Pavval ★★★★★
()
Последнее исправление: Pavval (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.