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

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

Это такое распространенное заблуждение, из которого часто делают неправильные выводы

«Плюсовик»(tm) будет нерешительно топтаться перед макросами, бледнеть перед goto и хвататься за сердце возле обильных кастов. Такое решительно осуждается во всех книгах по С++, но на чистом С без этого эффективно писать не получится.

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

По факту это разные языки, с разными подходами к проектированию и программированию

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

чтобы твоё утверждение стало правильным, надо заменить «Плюсовик»(tm) на «ламер». далее по пунктам:

нерешительно топтаться перед макросами

быстро, решительно выпиливать

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

здесь согласен. от желания взять и ...

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

таких? dynamic_cast<U &>(*const_cast<T *>(p))

шаблоны и есть генераторы кода.

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

Никак не соотносится. Вернее, соотносится через две смены темы обсуждения и вырезание существенной части цитаты.

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

в таком случает, вы криво процитировали.

«Почти все программисты, использующие C++, пишут хороший код на Си и понимают Сишный код.»

Ха-ха-ха-хе-хе-хе-хнык-хнык-хнык :-(

а

«Почти все программисты, использующие C++, пишут хороший код на Си»

Ха-ха-ха-хе-хе-хе-хнык-хнык-хнык :-(

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

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

нерешительно топтаться перед макросами

ага, учитывая, что тот же Qt построен на этих ваших макросах

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

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

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

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

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

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

i-rinat ★★★★★
()
Ответ на: комментарий от RisuX3

На ассемблере так же преспокойно можно ООП использовать как и в Си.

ржал всем шредером, в цитаты!

unt1tled ★★★★
()
Ответ на: В крестах нету того же void * от anonymous

Ты мне сначала под крестами скопиляй это: int * p = malloc(4); А потом уже кукарекай.

Потом ты мне покажешь void * в крестах. И да с семантикой сишного воида.

И да, посуществу есть что?

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

но зачем? кукарекаешь здесь только ты.

void * так и быть, покажу:

$ cat void.cpp
void *foo(void *p) {
    return p = 0;
}

$ g++ -Wall -pedantic -c void.cpp

$ nm void.o
0000000000000000 T _Z3fooPv
                 U __gxx_personality_v0

по существу: ты не умеешь в кресты, поэтому не кукарекай про них.

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

быстро, решительно выпиливать

Датычё 100% в бусте выпилены.

здесь согласен. от желания взять и ...

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

таких? dynamic_cast<U &>(*const_cast<T *>(p))

Не таких. Это примитивное говно.

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

шаблоны и есть генераторы кода.

Нет - шаблоны это примитивная подстановка типов и бесполезное говно в целом.

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

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

Собственно обсерился как и всегда, зачем ты это делаешь? Тратишь моё время на макание тебя в говно?:

$ cat idiot.cpp 
int * foo(void * p) {
  return p = 0;
}

$ g++ -c -Wall -pedantic idiot.cpp 
idiot.cpp: В функции «int* foo(void*)»:
idiot.cpp:2:14: ошибка: некорректное преобразование из «void*» в «int*» [-fpermissive]
   return p = 0;
              ^

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

Давай я тебе дебильчику объясню, в отличии от Си в крестах void * не обладает семантикой автокаста и вообще бесполезен и существует там только для совместимости. В сишке же воид обладает семантикой автокаста.

anonymous
()

в следующем стандарте C появятся средства ООП

А их разве не было?

Указатели на функции в структурах возможны - значит можно объектить. Даже иногда это удобнее чем объектить в С++ ибо можно динамически в объектах методы подменять и ещё много всяких забавных вещей делать.

ЗЫ: в С++ умею, но не люблю из-за монстрообразных идиотизмов типа ххххх_cast<U &>(*const_cast<T *>(p)). Порнография же, приличный, вроде язык, а произвольно кастовать типы и с указателями работать не умеет. Если бы не Qt - вообще бы С++ не пользовал (хотя, если честно, там не совсем ФГМный С++).

Stanson ★★★★★
()
Последнее исправление: Stanson (всего исправлений: 2)
Ответ на: комментарий от anonymous

Датычё 100% в бусте выпилены.

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

Сразу видно ничего сложнее хелворда

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

Не таких. Это примитивное говно.

покажи непримитивное

Нет - шаблоны это примитивная подстановка типов и бесполезное говно в целом.

n+1-й раз: ты не умеешь в кресты

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

оторвали имплицитные касты из void * и у тебя в попке запекло? :)

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

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

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

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

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

произвольно кастовать типы

стрельба из револьвера не вытащенного из кобуры

с указателями работать не умеет

с этого места поподробнее...

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

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

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

стрельба из револьвера не вытащенного из кобуры

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

с этого места поподробнее...

(struct _object *)((struct _tag *)&buffer[offset] + tags_cnt)->func1(v1,v2);
(struct _object *)((struct _tag *)&buffer[offset] + tags_cnt)->func1 = func_new;
(struct _object *)((struct _tag *)&buffer[offset] + tags_cnt)->func1(v1,v2);

И т.д. Конечно оно в ынтерпрайзе нах не надо, но есть не только ынтерпрайз.

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

оторвали имплицитные касты из void * и у тебя в попке запекло? :)

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

Т.е. ты просто обосрался? И от void * в крестах осталось только название?

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

Как я уже говорил - мне насрать на мнение нулёвой шавки. Мне насрать на твои отговорки. Ты должен был высрать сишный void * не высрал, в чем проблема? Обделался? Зачем ты меня заставляешь ещё и рожей тебя в твоё говно макать?

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

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

очень смелое утверждение. достаточно посмотреть на эдика.

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

Царь тут! Всем цак одеть и ку делать!

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

Ты мне высрал, что в крестах есть сишный void *

у тебя прогрессирующее слабоумие. см заголовок комментария.

Ты должен был высрать сишный void *

я тебе ничего не должен.

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

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

Поэто твой удел дырявое и тормазное рантаймговно, как и любой нулёвой мрази..

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

Как закукарекал. Ты же мне напишешь не утрированные примеры невменяемых применений гото. Т.е. там не вайлы на гото и прочее говно. Именно реальные.

покажи непримитивное

Любые воид касты с адресной арифметикой, нулевые поля в структурах и прочее говно. Автокасты структурами.

Да какой-нибудь примитивное говно, аля: ((node_t *)((void *)(node->data) + node->next * block))

Нужно постоянно.

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

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

Могут тошнить радугой еще.

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

Тебе продали кетайскую подделку под Rust.

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

fn args<'a, 'b, T:ToCStr>(&'a mut self, args: &'b [T]) -> &'a mut Command

И это без замыканий.

Обратись в общество защиты потребителей или сразу во Всемирную лигу сексуальных реформ.

Если ты течешь по rust, это не значит, что и все остальные должны.

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

у тебя прогрессирующее слабоумие. см заголовок комментария.

Ещё раз, тебе ясно уточнили «с сишной семантикой», чтобы ты не съехал на тип указателя игноря семантику кастов.

Ты как нивчём не бывало ответил, даже высрав код - обосрался.

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

Я не понимаю, ты на что рассчитываешь? У меня же есть все цитаты, мразь. Ты какбэ не с собратом по"разуму" кукарекаешь на лавочке без диктофона, ты реально не понимаешь, что твой юлёж не работает?

я тебе ничего не должен.

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

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

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

Попасть туда, куда стрелял? Безусловно.

Причём сделать это максимально быстро и с минимальным расходом боеприпасов.

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

цитата: «В крестах нету того же void *»

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

вывод: царь — нулёвая балаболка не умеющая в кресты

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

но зачем?

Я про математику, замену метода объекта и мгновенный каст из чего угодно во что угодно.

И скорее reinterpret_cast + const_cast, а не static_cast

Stanson ★★★★★
()
Последнее исправление: Stanson (всего исправлений: 1)
Ответ на: комментарий от Stanson

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

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

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

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

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

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

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

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

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

и чем rust в таком виде отличается, например, от java?

Сутью.

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

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

У всех ынтерпрайзных кодеров всякой формочкосрани такая уверенность в собственной правоте?

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