LINUX.ORG.RU

C++: как сделать, чтобы это не компилировалось?

 


1

2

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

-Wall -Werror – достаточно по-пацански так жить?


struct Data {
   const int &ref_;
   explicit Data(const int &_r)
   : ref_(_r) {

   }

   void print() {
      std::cout << ref_ << "\n";
   }
};

int main() {
   
   Data t(42);
   t.print(); // развал жопы на куски
   return 0;
}



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

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

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

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

Причина, по которой такое всратое говно, как C++, Java, C#, Golang и прочие Python или прости господи Rust - популярны, заключается в том, что их продвигали крупные копрорации. Продвигали это даже мягко сказано. Агрессивно навязывали, и продолжают навязывать. Ну а лемминги разного рода, ну типа тебя, смотрят на это, и такие - о, это популярно, значит это правильно. Твой вот этот «фильтр консенсуса» буквально хакнули маркетологи из крупных корпораций.

Это с++ продвигают? Какая-то шутка что ли, да его уже лет 20 усиленно пытаются закопать все, кому не лень. Корпорации, выкатывающие убийц, и с отношением к крестам как к приёмному ребёнку. Им нужны свои экосистемы замкнутые на себя любимых. Вспомнилось как давно в мелкомягкой студии для шарпа изкоробки были все плюшки, SDK, формошлёпство и тп, а плюсовику предлагалось взять лопату и отправиться в чистое поле и писать поделки на чистом WinApi. Какие-то удобства предлагались в платной версии. Конечно, это не станет препятствием, кто не первый год замужем, но для желающего вкатиться в программирование это сильный аргумент при выборе языка

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

Причина, по которой такое всратое говно, как C++, Java, C#, Golang и прочие Python или прости господи Rust - популярны, заключается в том, что их продвигали крупные копрорации.

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

Ну а что касается меня - я вообще пишу на всем, за что платят бабки, и/или, на том что мне интересно - т.к. часто могу диктовать на чем я буду писать.

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

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

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

а плюсовику предлагалось взять лопату и отправиться в чистое поле и писать поделки на чистом WinApi.

У MS всегда были дизайнеры для user32/gdi окошек. И никогда там нихрена голого особо не было - было MFC и ATL. Плюс, щас есть WinUI, который очередная итерация WinRT, с COM, крестами, и вот этим всем. У борланда также такое же было.

Для крестов делаются IDE, компиляторы, фреймворки, и все прочее. Силами далеко не опенсорса, естественно. Это всё тянется с 90х годов. Много такого делается для Forth, Factor, для лиспа, хаскеля, и всего остального, что давно может примерно во всех отраслях заменить кресты? Нет.

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

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

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

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

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

Ну я так понимаю, ты перед зеркалом никогда не смеешься

Иди пердак туши

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

У MS всегда были дизайнеры для user32/gdi окошек. И никогда там нихрена голого особо не было - было MFC и ATL. Плюс, щас есть WinUI, который очередная итерация WinRT, с COM, крестами, и вот этим всем. У борланда также такое же было.

Ну я же тебе говорю как оно было в реальности, а не придумываю, я не знаю как сейчас, но раньше - ставишь express вазилиновую студию и получаешь голый с++ без всяких либ, без дизайнера форм. А рядом стоит заряженный шарп, где всё из коробки в бесплатной версии. Зелёному программисту было не под силу накатить какую-нибудь либу (не знаю как сейчас там дела, вроде же есть какой-то менеджер, может проще) и он просто брал шарп. Все эти виндовые MFC и смежное были лишь в платной версии.

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

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

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

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

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

Он говорит о временах на двадцать лет раньше появления VS Express. Если не лень, то спросите этого клоуна как так получилось, что на начало 1990-х в продаже было полдюжины, если не больше, компиляторов C++ от разных поставщиков (к первому компилятору от AT&T затем подтянулись HP, Sun, IBM, Zortech (купленный затем Semantic-ом), MS, Borland, Watcom, Metrowerks) + бесплатный от GCC. Они все сговорились что ли? Картельный сговор? И почему они не смогли сговориться вокруг чего-то получше C++?

Наверняка у lovesan-а какая-то своя картина мира, в которой все это спокойно уживается.

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

Наверняка у lovesan-а какая-то своя картина мира, в которой все это спокойно уживается.

Ну так идиоты же все. Все уже написано. :)

Я бы с удовольствием вернулся на forth, как в 80-х, но не могу найти проекты/людей, которые за это платят. :) Остается ждать пенсии. :)

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

Ну так идиоты же все.

Ну да, это же все объясняет:

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

Должно быть lovesan-у страшно жить в таком несовершенном мире.

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

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

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

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

Причина, по которой такое всратое говно, как C++, Java, C#, Golang и прочие Python или прости господи Rust - популярны, заключается в том, что их продвигали крупные копрорации.

Со списком согласен, кроме С++. Я думаю с С++ принцип совсем другой. Есть всякие менеджеры, что принимают решения, что в языках программирования не разбираются вообще. И вот им предлагают С++, который якобы «Си только лучше», ну и конечно они решат использовать якобы более продвинутый язык. Так же с приёмом кандидатов, знание С++ с очередным номером будет в глазах таких же, не разбирающихся в программировании, HR-менеджеров лучше чем Си. Короче С++ изначально паразитировал на Си.

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

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

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

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

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

всякая функция должна возвращать значение

не всякая

и она же должна возвращать код ошибки

не всякая

А теперь внимание, вопрос: что именно должна возвращать функция?

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

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

anonymous
()