Это копия, сохраненная 20 октября 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

Ответы на все вопросы: http://eel.is/c++draft/
http://eel.is/c++draft/, пропущенный через кишечник макак: https://en.cppreference.com/w/cpp
cppcon
https://www.youtube.com/user/CppCon/featured
cppconrussia
https://www.youtube.com/channel/UCJ9v015sPgEi0jJXe_zanjA/featured
corehard
https://www.youtube.com/channel/UCifgOu6ARWbZ_dV29gss8xw
Вандервуда и Джоссатиса по шаблонам книга: недавно перевели их новую редакцию с фичами cpp17. В электронном виде нет, по крайней мере не нашел.

А то после шарпа все эти хуйни типа ->, ::, : итд смотятся НЕУДОБНО.
Все это как я понял обращения к разным тирпм одной структуры.
Но нахуя если все можно сделать через точку, как у белых людей принято.
-> еще выводит тип результата функций. Пройди в питон тред, там как раз твой уровень.
Ебать гордиться тем что у тебя в говноязыке неоднозначная хуйня.
Вот поэтому вас ретраградов никто не любит.
На вопрос не можете ответить, так еще и снобизма больше чем у ЛГБТ петухов гордящихся что они ебуться в жопу.
Но уровень самореализации примерно такой же.
>Ебать гордиться тем что у тебя в говноязыке неоднозначная хуйня.
>Вот поэтому вас ретраградов никто не любит.
>На вопрос не можете ответить, так еще и снобизма больше чем у ЛГБТ петухов гордящихся что они ебуться в жопу.
>Но уровень самореализации примерно такой же.
>
на самом деле эти стрелки и прочие четвероточия сильно лучше, чем ОДНА ТОЧКА НА ВСЕ. Т.к. как раз прям по коду можно делать выводы о нем.
"Мы знаем что ты любишь программировать, и мы засунули ещё один ЯП в С++, чтобы ты мог программировать когда программируешь"
Шаблоны крута.
ЖОПА ГОРИТ!!!
Но какая же ахуенна штука всё таки.
SomeValue& SomeValue::operator++() // prefix
{
++data;
return this;
}
SomeValue SomeValue::operator++(int unused) // postfix
{
SomeValue result = this;
++data;
return result;
}
Не могу понять, зачем в этом примере в postfix создается дополнительный объект-копия вызывающего объекта.
Почему вообще у пре/постинкрементарных операторов разные тела? Разве они не одно и то же делают с разным приоритетом?
{
++data;
return \this;
}
SomeValue SomeValue::operator++(int unused) // postfix
{
SomeValue result = \this;
++data;
return result;
}
Перед this звездочка короче.
>Разве они не одно и то же делают с разным приоритетом?
Нет, они возвращают разные значения. Читай заново учебник.
Стримить стринги.
Это все прекрасно, но где можно почитать словарик для высокоуровневых боговю
Я уверен, что ты и C# нормально не знаешь.
Есть ли возможность перехватить эвент нажатия клавиши?
Не так, чтобы при нажатии клавиши A дальше нажимались B C D
На выходе получаем инпут A B С D
А так, чтобы при нажатии A, плюсы сказали "падажжи, ёбана" и вместо нажатия А, в инпут уходили бы только B C D.
На выходе полуаем B C D.
речь идёт о winAPI
Ну, например, я его использовал дважды, но очень удобно - сплит строки в вектор(читаешь из строкового потока, указывая ему конкретный символ конца считывания и собираешь из этого вектор строк) и форматирование даты/времени через iomanip вместо проверок длины значений (я просто лучше способа для этого не нашел)
Вполне себе удобная вещь
Вопрос по потокам: почему не компилируется и что хотели сделать тут https://ideone.com/s5mTfx
смущает попытка присвоить прочитанное из потока указателю без типа
while((p=std::cin >> a) && a)
Я представляю, что это заработает как раз только когда прочитывается 0, который становится нулевым указателем, но в итоге !0&&0 дают false и в цикл не входим вообще.
Однако эта хрень не компилируется вовсе. Что не так?
Скажите, что за штуки эти аттрибуты.
[[где реально это применяется, и на что влияет]]
Это еще одна робкая просьба в сторону компилятора типа inline или еще один // комментарий для человека
или что это такое? Ни разу не встречал в коде. Нафига оно вообще?
Ответ строго по сути вопроса: в TCPL авторства какого-то Б. Страуструпа.
https://en.cppreference.com/w/cpp/io/basic_ios/operator_bool
Преобразование в void* после C++11 выкинуто.
while((p=std::cin >> a) && a) — приём из прошлого столетия.

>Блядь где можно почитать после шарпа о крестах и его ебливом синтаксисе?
>А то после шарпа все эти хуйни типа ->, ::, : итд смотятся НЕУДОБНО.
>Все это как я понял обращения к разным тирпм одной структуры.
>
>Но нахуя если все можно сделать через точку, как у белых людей принято.
>while((p=std::cin >> a) && a) — приём из прошлого столетия.
Ладно, не совсем так.
Тип p из прошлого столетия. Надо поменять на bool.
>>43974
Тогда сформулирую вопрос иначе.
Что хотели показать этим примером здесь: http://web.snauka.ru/issues/2016/12/75931 (примерно на середине статьи)?
Или они уже тоже из лохматого века и это не стоит всерьез принимать?
Отключи безопасное поведение на шарпе и еби байты там

тому шо вся йоба на крестах, ЦЭ илитариев ебошить без абстракций на всех не хватает
щито поделать десу, под растик всех так просто не сконвертируешь
Ох уж этот быдловатый линус с его школьной манерой общения "ну Х короч говно потому что яскозал а если тебе не нравится то и ты говноед и короч не зря я Х говном назвал, только выигрол!!11".
Свою поделку на сишке написать смог, а вот вменяемой её сделать не смог. Зато не на крестах. Зато в рассылках можно матом хуесосить несогласных, красноглазым эпатирует образ "бунтаря-нонконформиста".
в 2007 этот высер актуален, в 2018 нет, когда кресты стали кардинально другим языком
На Растике не программировал, но все коммон предьявы к крестам, такие как УТЕЧКИ ПАМЯТИ, СЛОЖНО НИПОНЯТНО - все решены в С++11 и далее. Ну, если ты обучаемый, конечно.

ну и конечно же компилятор, который тебе слюни подтирает, я люблю учиться на практике и меня радуют такие фишечки
это все здорово, но растик это сложно с точки зрения бизнеса
ну так ты пояснишь или чо?
Вот вчера наткнулся на такой пример:
std::vector<char> vec = { "a", "b" };
std::cout << vec[0];
Как вы думаете что будет? Хуй угадаете.
Вызовется конструктор вектора для итераторов, а все потому, что ахуенный дизайн итераторов через шаблоны, который не позволяет делать какие-то констранты на входные типы ( хотя вроде в с++20 там что-то добавили ) и легаси говнотипы типа const char[] у строк.
По хорошему, надо уже перестать поддерживать легаси код в новых стандартах С++ и выпустить что-то типа С++ 2.0, где,
во-первых, будет удалено всякое ненужное и легаси говно, во-вторых, будет кардинально переделана вся система типов, хотя бы даже все эти const char, всякие кучи разных интов в которых хуй разберешься без дефайнов из stdint что в каком размере, будет добавлена рефлексия, что просто необходимо для тех же шаблонных типов и прочего, в третьих, будет переработана стандартная библиотека.
мимо пишу на С++ 10 лет, на Си писал тоже много времени*

>пишу на С++ 10 лет, на Си писал тоже много времени
и сишка тебе больше нравится как я понял, да? оно реально там чище и аккуратнее получается или линепс пиздит?
хочется начать твикать уеч(чисто по мелочи допилить уебанское юзабилити, на которое успешные мультимиллиардеры хуй клали), без всякого системного знания, с чего лучше стартовать?
что про растик думаешь?
Про чище тут зависит скорее от самого тебя, на сишке можно ахуенно уебищно писать так же как и на плюсах, но если делать все грамотно, то разницы наверное нет.
Линус не пиздит, там речь идет о с++03, который на самом деле был довольно уебищный, но тут тоже зависит, многие просто на С++ пишут действительно уебщиные не понятные вещи, слишком используя шаблоны, давая именам функций и переменных непонятные названия, не умея разделять сущности и т.д.
Про раст не особо знаю.
ясно, спасибо, примерно так себе и представлял, большие возможности - большая ответственность, ну а дуроебы учажные в линепси нинужны
ладно походу реально придется в кресты закатываться, раз у вас тут все так пиздато, ни гонок ни ликов типы свежие
какой есть справочник годный самий свэжий?
>Как вы думаете что будет? Хуй угадаете
А чё там думать то? Видно же, что кто-то обосрался с кавычками и дизайн языка тут нипричём.
У тебя 4 ошибки в слове Go.
Держи в курсе, анончик.
Для того чтобы стать программистом надо писать, а не читать
Тогда это, получается, тавтология в условии:
bool p;
while((p = std::cin >> a) && a!=0){...}
Любая считанная a кроме 0 в булевой переменной даст true, а проверка, что a!=0 получается избыточной.
Кстати, этот пример не компилируется: cannot convert ‘std::basic_istream<char>::__istream_type {aka std::basic_istream<char>}’ to ‘bool’ in assignment
Пришлось заюзать static_cast
Вот, что получилось: https://ideone.com/08eKFd
Странно, что не работает rdbuf()->in_avail()
Я что-то неправильно понял, или он должен бы вернуть уж явно не 0?
лучше б какой-нибудь питон или джаву учил бы. ты с плюсами столько времени убьёшь до первой работы, а профиты сомнительны
Пока работаю погромистом на 1с. Плюсы просто чем-то иррационально нравятся, на другое тупо не будет энтузиазма к изучению.
Всё-таки присмотрись к java. После 1C самое оно идти в энтерпрайз. У тебя кроме знания языка, уже будет хорошее понимание предметной области.
Он позволяет сверхудобно преобразовывать всяческую дичь в строки, в том числе дичь, отсутствующую в стандартных либах, если для неё создатели этих либ озаботились перегрузкой операторов >> <<, как здесь:
https://stackoverflow.com/questions/18950680/how-to-overload-operator-to-take-variable-argument-list
Ну и например зачастую получается меньше графомании:
std::stringstream stringBuilder;
stringBuilder << myFloat << " " << myDouble << " " << cv::Rect(10, 10, 10, 10); //cv::Rect - класс для прямоугольника из opencv с перегруженными операторами
return stringBuilder.str();
cv::Rect roi(10, 10, 10, 10);
str::string result = std::to_string(myFloat) + " " + std::to_string(myDouble) + " " + std::to_string(roi.x) + " " + std::to_string(roi.y) + " " + std::to_string(roi.width) + " " + std::to_string(roi.height);
return result;
Ну или если даже вынесем преобразование в отдельный метод, может быть что-то вроде такого:
cv::Rect roi(10, 10, 10, 10);
str::string result = std::to_string(myFloat) + " " + std::to_string(myDouble) + " " + cvRectToString(roi);
return result;
Также stringstream хорош тем, что он единообразно принимает аргументы, что позволяет в некоторых случаях использовать его в шаблонных методах.
Если же использовать в шаблонном методе std::to_string от аргумента, то для типа std::string этот метод не будет изкоробки определён, к примеру.
Выучи сначала обычные Си, без их хотя бы базового знания 90% плюсов пройдёт мимо головы.

хирьянов и сопящий жироуебок оператор в помощь
https://www.youtube.com/playlist?list=PLRDzFCPr95fItmofHO4KuGjfGtbQtEj-x
Есть кто-то, кто её не юзает?

>Тогда это, получается, тавтология в условии:
>bool p;
>while((p = std::cin >> a) && a!=0){...}
>Любая считанная a кроме 0 в булевой переменной даст true, а проверка, что a!=0 получается избыточной.
У тебя 3 недели до конца каникул, а ты здесь срёшь
нет, сам с нуля пишу все контейнеры, реализации алгоритмов и утилиты.
погуглил ероркод - какие то хуеглоты что то невнятное пишут, я не разобрал
на тебя вся надежда анончик
ланчера под линупсами нет, так что купить не варик, если взлетит занесу китайцу на палку в обход маркета
думаю что нужно какое то окружение, на вендах сдк 8.1 выкачивать приходилось на ебанную прорву гигобайт, но на линепсах вроде уже все есть гсс или не?
просвящающаяся веб-макака

Анончик, сколько у тебя стаж в 1С? Город, зп, какие знания? До 1С вообще писал на чем то?
Сам работаю в 1с, думаю перекатиться. . До этого со школы еще с++ изучал opengl там, но в нужный момент не нашёл работу стажёром с++. Пошел в 1с, но не диски разводить, а сразу обновления /доработки. Думал посижу пол годика с++ поизучаю. Но на тот момент было столько всего нового в 1с что уже не до чего было. Так и прошло 7 лет пока не понял что уже потолок по зп и нового изучать особо нечего. + пригорание от осознания себя недопрограммистом
Конечно, иначе утечи
А как правильней? Через поинтер и new? Тогда ведь тоже подчищать за собой надо, только через delete, разве нет? Тогда почему я вижу как malloc постоянно тащат в код каких-нибудь эмуляторов?
вебмакака
Через smart pointer не нужно.
malloc - это си-стайл.
Если ты хочешь байтоёбить, то делай через new/delete (только не путай потом delete и delete []).
Если боишься прострелить себе ноги, можешь память через вектора аллоцировать, например, так:
std::vector<uint8_t> myData;
myData.resize(100);
uint8_t *dataPtr = &myData[0];
Только учти, что вектор и все данные внутри него протухают после выхода из области видимости (и поинтеры на эти данные тоже становятся невалидными), а ещё векторы во время присваивания перекопируются.

именование разыменование, линковка хуевка, вот это все, интересно как будет выглядеть ирл
кто нилюбит змийку - у того нет сердца :3
> Анончик, сколько у тебя стаж в 1С? Город, зп, какие знания? До 1С вообще писал на чем то?
Стаж год с небольшим. Зашло очень легко, делаю что угодно из задач что мне ставят с полпинка. Конфигурация самописная, медицинская система. Именно программист, не диски разносить и не с клиентами общаться. Пишу новый функционал, допиливаю старый, курирую иногда более зелёных программистов.
До 1с в универе на с++/qt писал очень простые программы для курсачей всяких (типа там график по числам из таблицы построить и обработать по математическим алгоритмам). Ну и другие языки типп дельфи там мельком изучались. В школе на флеше делал примитивные игры типа угадаек.
>Город, зп
Мухосрань, маленькая. Главный двигатель моего энтузиазма. Можно было бы сказать, что мог мы и с 1с улучшить своё положение, но слишком специфическая конфигурация и задачи у меня, так что не всё так просто. Предметных областей типа бухгалтерии я не касаюсь.
> Так и прошло 7 лет пока не понял что уже потолок по зп и нового изучать особо нечего. + пригорание от осознания себя недопрограммистом
Тоже вижу 1с как недопрограммирование с недоперспективами. Я считаю, что я недораскрываю с ним свой потенциал, и что мне по силам освоить любой язык программирования. Тем более что я ещё практически в совершенстве владею английским.
Читаю дальше ту книжку по с++ вечерами и практикуюсь в Qt Creator. Пока всё достаточно понятно, по крайней мере в общих чертах. Дошел до абстрактных классов. Тут как в 1с - сложности на начальных этапах больше потому что хз какие стандартные объекты, методы и т.п. тут есть и вообще что где находится. А так, мне например доставляет, что гуй на кутях делается 1с-стайл с формочками, элементами, событиями и т.п. - уже легче. Да и вообще в плане написания алгоритмов, все знания с 1с перетекли сюда, просто синтаксис другой.
1с после плюсов кажется деревянной игрушкой, прибитой к полу. Вот бы было заебись, например, если бы там можно было создавать свои классы и дополнять новыми методами стандартные. Кстати сразу видны параллели с 1с и понятно почему некоторые вещи там работают именно так - саму 1ску то на плюсах писали.
Даже если не стану профессиональными погромистом на плюсах, хотя бы повышу свою компетентность в программировании в целом.
> Анончик, сколько у тебя стаж в 1С? Город, зп, какие знания? До 1С вообще писал на чем то?
Стаж год с небольшим. Зашло очень легко, делаю что угодно из задач что мне ставят с полпинка. Конфигурация самописная, медицинская система. Именно программист, не диски разносить и не с клиентами общаться. Пишу новый функционал, допиливаю старый, курирую иногда более зелёных программистов.
До 1с в универе на с++/qt писал очень простые программы для курсачей всяких (типа там график по числам из таблицы построить и обработать по математическим алгоритмам). Ну и другие языки типп дельфи там мельком изучались. В школе на флеше делал примитивные игры типа угадаек.
>Город, зп
Мухосрань, маленькая. Главный двигатель моего энтузиазма. Можно было бы сказать, что мог мы и с 1с улучшить своё положение, но слишком специфическая конфигурация и задачи у меня, так что не всё так просто. Предметных областей типа бухгалтерии я не касаюсь.
> Так и прошло 7 лет пока не понял что уже потолок по зп и нового изучать особо нечего. + пригорание от осознания себя недопрограммистом
Тоже вижу 1с как недопрограммирование с недоперспективами. Я считаю, что я недораскрываю с ним свой потенциал, и что мне по силам освоить любой язык программирования. Тем более что я ещё практически в совершенстве владею английским.
Читаю дальше ту книжку по с++ вечерами и практикуюсь в Qt Creator. Пока всё достаточно понятно, по крайней мере в общих чертах. Дошел до абстрактных классов. Тут как в 1с - сложности на начальных этапах больше потому что хз какие стандартные объекты, методы и т.п. тут есть и вообще что где находится. А так, мне например доставляет, что гуй на кутях делается 1с-стайл с формочками, элементами, событиями и т.п. - уже легче. Да и вообще в плане написания алгоритмов, все знания с 1с перетекли сюда, просто синтаксис другой.
1с после плюсов кажется деревянной игрушкой, прибитой к полу. Вот бы было заебись, например, если бы там можно было создавать свои классы и дополнять новыми методами стандартные. Кстати сразу видны параллели с 1с и понятно почему некоторые вещи там работают именно так - саму 1ску то на плюсах писали.
Даже если не стану профессиональными погромистом на плюсах, хотя бы повышу свою компетентность в программировании в целом.
>Так и прошло 7 лет пока не понял что уже потолок по зп и нового изучать особо нечего
Минутку? У 1С разве не больше по зп чем у среднего плюсплюсника? А как же девочки?
Выучи сначала Си, прежде чем плюсы брать.

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

щас все само ожило, так что ня ^__^
>>46160
>на кошерной винде
которую я специально недавно поставил в дуалбут -- все тоже самое, только еще хуже блядь, без кастомайза, зато с бабл феечкой в пуске, ну норм чо
через лончер тянется ТАКЖЕ блядь долго, у меня 100 мегов, и как бы я реально охуел, я уже и забыл, но инсталл 4.19 у меня занял те же пол дня
не говоря про то что дело было на харде, и это сущий ад, паскуда мразь вечно чето тащит, айо хдд по пизде, а ты и сидишь как говна в рот набрал, капчуешь с тормозами, норм чо
>переоцениваешь свои возможности
тебе уже пора на дно лягушон
>возможностей на кривых линупсах
куда больше это самые кривости починить и сделать под сибя, на вендах ты ешь что дают
а я модно молодежно охуенно без сраных рамочек меняю размер окошка через альт+пкм мммм кайф
>Потому что на кошерной винде не сидишь
Под линкусом с конпеляцией все в разы удобнее. Под винду все кросскомпилирую мингом, потому что все пакеты для всего есть. Иногда бывает максимум пердольства, но под виндой все хуже, особенно без msys2.
Есть куча причин пользоваться маллоком. Например, если тебе не нужна зависимость от libstdc++.
>Ебанутый
Расскажи это Уолтеру Райту, который прибил стандартную либу к языку гвоздями, а потом 10 лет ее мучительно пытался оторвать. В расте такой ошибки уже не стали делать, они обучаемые.

https://github.com/pdlogingithub/UE4-Node-Graph-Assistant
уже принципиально хочу скомплёхать это говно сука
тем более ща куплю, а потом еще хуй знает как оно под линами будет работать
а оно вон чо
покурил форума и кароче я бля не догоняю каким раком кутикриатор или кдевелоп будут бильдят лучше сосноли с кланком\гсс !?
Плюсовый рантайм. Функции стандартной библиотеки.
Та-ак, верно. И при чем тут Леонид Якубович?
Алсо хули UE не хотят поменять свой велосипед на Bazel, как все нормальные ребята?
и уже по традиции в таких свободных вещах лежат дико охуенные и простые о которых ты даже не задумывался
поиск сразу в гугле, блять ну гениально же сука! пойду запилю тоже само во вскоде, что бы еще и сразу в стаке искал

ну дык я жыэ какир)))
>>46344
не говоря про то что тут >>46299 написано
>>46327
нашел где спросить лолка, они на офф форуме гасяться и хуй кладут когда их прямо спрашивают хуле у вас тут насрано?
кароче из под этого говна все так же как из сосноли запускается, просто команда с ключами висит на кнопошке или хоткее, и то ее хуй настроишь под уеч заебанный блядь, а значит вижстудные дауны с форумов пожрали говна, со своими ололо сборщиками И ДЖЕ ЭЕА
Ты тот питух, который засрал питон-тред вс-кодом? Тебе делать нехуй редакторы менять каждые два месяца?

даже и не знаю что выбрать, олинуан солюшн один хуй божественных кутей полна машина, не хватает только криатора или плейн симл, ээейх, пожалуй рискану
Чрезвычайно удобная штука, сколько стоит незнаю ;)
Юзаю, Охуенен, Да (но мне контора платит)
Да

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

Охуительные истории. Как там, уже пофиксили зависание панели задач в плазме? https://www.reddit.com/r/kde/comments/7w4u4j/kde_plasma_freezing_ocationally/
Или может KDE на hidpi хорошо начал работать? Я порой такое говнобаги ловлю, что начинаю сомневаться, что KDE вообще компилится.
А дрова nvidia, который хуй знает как работают?
Ой, а может новые дрова AMD нормально ставятся на не убунту? на деле даже на убунту не с первого раза поставил
Ой, а как там wayland с nvidia поживает?
VNC/RDP давно настраивал? Может скажешь мне навскидку клиент rdp, который умеет в два монитора?
Вот и весь попенсорс, который не двигается корпорациями.
Из всего этого чуда на линупсе у меня нормально работают только продукты от Jetbrains, Chromium и Telegram.
Окей, посмотрю. А вообще это нормальная тема - делать графы на qt, или есть более удобный инструмент?

Призываются адекватные аноны, что бы нахуй этого шизика забанить
https://2ch.pm/d/res/451903.html#547428 (


Чувак, никому не интересна твоя ёбля с UE. Тут видишь ли, более концептуальные вопросы обсуждают. Сходил бы ты к шизикам в гейм дев что-ли.
я задаю вопросы общего характера, по настройке окружения но никто не знает ололо
указывай мамке на кухне сколько капусты в борщ класть, а мне нехуя, в любом сообществе ирл тебя бы уже опездюлили, безмозглое избалованное животное.
Настройка окружения = ёбля. Этой хероты на работе у каждого хватает, сюда люди не за этим приходят, а чтобы обсудить работу с памятью, контейнеры, поумничать, обкашлять вопросики. Хотя перед кем я распинаюсь. Хотя шизик неплох неплох. Такие уже в красной книге двача обитают. Пускай может у нас переночует?
создал обычный блюпринтовый проект, а в нем уже крестовый класс и как только создал он сразу начал сам комплёхать сучара блядь и открыл вскод который я указал в настройках в самом движке и тут же проект становится крестовым, появляется кнопка компила в тулбаре
ЕБАННОЕ ЭЛЕМЕНТАРНОЕ ГОВНО СУКА ДЖВА, НЕТ ТРДЖИ ДНЯ РЕИНСТАЛОВ И ЕБЛИ И ХОТЬ ОДНО БЫ МУЛЬТИМИЛИАРДЕРСКОЕ ГОВНО НАПИСАЛО В ВИКИ ПРО ЭТО
сука блядь как же горит, а вы еще чето жалуетесь, чето там не можите понять хуйнять, когда У ВАС СУКА ВСЕ ТУПО В КНИЖКЕ НАПИСАНО С ПРИМЕРАМИ тут же лазаешь как мудак по протухшим форумам, качаешь всякое говно, пытаясь по пути понять суть
уууух блядь ненавсить
ну да ладно, теперь то наконец попробую подтыкнуть спизженный китайский плагун ^_^

а есть либа что б как у белых людей було?

вот только нахуя нужна эта аглобельная иджэ, если все итак есть в блокноте, или там какие то неибацо киллер фичи у вц?
Не совсем, он должен представлять комплексное решение задачи. Архитектура\бест практис\неочевидные особенности языка и все такое подкрепленное опытом
Как нагуглить актуальные бест практис по С++? Это вообще что, блог типа GoW или книги или что?
>Как нагуглить актуальные бест практис по С++
Это хороший вопрос. Плюсы строятся на бестпрактисах. Собственно даже отдельные языки из плюсовских бестпрактисов отпочковались.
Книжка Effective Modern C++ сойдет?
так и думал, хорошую вещь к движку на вендах не захордкодят

помогите мне пожалуйста, разбираюсь с библиотекой OpenCV на плюсах, использую структуру Mat, считываю в неё картинку, применяю встроенную функцию cv::transpose для транспонирования, и после этого пытаюсь использовать также встроенную функцию cv::multiply. И она почему-то не работает. Подскажите почему пожалуйста.
>фанатичному
но ведь он не топил ни за что
и ты это, поясни за вц, а жидкости свои при себе оставь

Там же все написано.
Не совпадают размеры переданных массивов.
Хочешь разобраться, почему ошибка - почитай про перемножение матриц, если нет - проверь, чтобы у тебя совпадали размеры всех трех матриц.
>Де-факто стандарт индустрии
как и шмакс и шмая, но они от этого не перестают быть убогим говном, которым пичкают рабов в студиях, за которые начальство получают откаты
у тебя сознание пораженца, ты уже сам себе разработал сракотан и приоткрыл ротик, уверен у тебя все получится ;)
У меня уже все получилось

Не силен в guard page'ах. Чем отладочные регистры не угодили?
На пике Test 1 в цикле печатает адрес и значение volatile uint64_t x = 0xDEADBEEF.
Debugger находит поток Test 1, ставит себя отладчиком, заливает потоку в контекст DR0 с адресом x и соответствующими флагами в DR7 (бряк на чтение/запись 8 байт по адресу в DR0), в цикле ловит EXCEPTION_SINGLE_STEP и подменяет значение в R8 на 0xFEEDB00B.
так аппаратных бряков всего 4 на поток.
Да и до них я пока не дошёл, остановился на guard page(нормально так остановился)
Смотрел исходники x64dbg, пытался делать ,как там, но чет увы...
Ну как?

> так аппаратных бряков всего 4 на поток.
А тебе больше нужно? Ты полноценный дебаггер пишешь или лабу?
> Да и до них я пока не дошёл
Через отладочные регистры даже проще ибо в работе guard page'й насколько я знаю есть кое-какие нюансы.
> Смотрел исходники x64dbg, пытался делать ,как там, но чет увы
Пикрелейтед: сделал как у тебя, ставлю PAGE_GUARD странице памяти с переменной, ловлю EXCEPTION_GUARD_PAGE, в ExceptionInformation (Param[1] на скрине) прилетает адрес в памяти, после этого устанавливаю флаг трассировки и ловлю EXCEPTION_SINGLE_STEP.
Тащемта у тебя код почти все то же самое делает вникать в него и искать где ты ошибся я конечно не буду :3 Если ты понимаешь как он работает, то я не понимаю какие у тебя проблемы.
Есть приложение А
Есть DLL Б
Можно ли заинжектить DLL Б, представленную в виде массива байт, заинжектить в процесс А не используя Manual Mapping?
Если да, то дайте ссылку, где есть пример такой реализации, или может сами чего подскажите, пожалуйста :)
Мб я не до конца понимаю.
Нужно словить EXCEPTION_GUARD_PAGE, установить флаг трассировки и ловить EXCEPTION_SINGLE_STEP и когда словил проверять адрес debug.u.Exception.ExceptionRecord.ExceptionInformation[1]? И если адрес верный, то выходить из отладочного цикла? Иначе восстановить PAGE_GUARD ?
Нет. EXCEPTION_GUARD_PAGE вылетает в момент обращения к памяти с PAGE_GUARD, место возникновения (адрес обратившейся к памяти инструкции) будет в ExceptionRecord.ExceptionAddress. Если это все что тебе нужно, то флаг трассировки вообще не надо ставить, он нужен для пошагового выполнения программы (процессор с этим флагом сам генерирует прерывание после каждой инструкции), я его ставлю и выполняю еще одну инструкцию просто чтобы 0xDEADBEEF в регистре увидеть. Мало того, отлаживаемая программа с этим флагом тут же упадет если не будет отладчика который будет обрабатывать эти прерывания.
Адрес в ExceptionInformation[1] нужно проверять при обработке EXCEPTION_GUARD_PAGE, туда должен приходить точный адрес в памяти куда инструкция обратилась, в EXCEPTION_SINGLE_STEP там вообще ничего не должно быть. Ну и да, проверяешь его и снова ставишь PAGE_GUARD если программа обратилась не туда куда тебе нужно или выходишь из цикла, не забудь ContinueDebugEvent.
Учти еще что WaitForDebugEvent(&debug, INFINITE); не вернет управление пока не поймает событие.
Ну, мне нужны ещё значения регистров и адрес инструкции, которая обратилась к памяти(и флаг, с которым обратилась (запись/чтение))
Вот есть задача собрать код под линуксом и походить с отладчиком, хау ду ай ду зыс?
Могу ли я на виртуалку поставить линукс, выкачать туда код, собрать и приконектиться этой штукой туда по ssh?
Есть ли нормальная поддержка cmake? Хорошо ли работает студия с gdb?
Короче, насколько вещь хороша, пользовать можно?
Да
А v какой тип? Вектор?
#include <vector>
int main()
{
std::vector<int> v{0, 1, 2, 3};
auto beg = v.begin();
return 0;
}
У меня с gcc собирается эта фигня.
> адрес инструкции
> место возникновения (адрес обратившейся к памяти инструкции) будет в ExceptionRecord.ExceptionAddress
> значения регистров
Из контекста (GetThreadContext).
> и флаг, с которым обратилась (запись/чтение)
В ExceptionInformation[0], (0 - чтение, 1 - запись)
и case EXCEPTION_SINGLE_STEP не надо? вообще?
Около того
Да, вектор, у меня оказывается стандарт не 11 был
и в single step не переводить? Где вообще написано, как писать memory breakpoint?(
клуб любителей Го пару блоков ниже
Я пересел на хаскелль и всем советую.
Ты в наш клуб копрофилов пришел только это сказать?
Те не похуй какой язык копипастить со стековерфлоу и получать каждый месяц 250к?
Крч у постфиксной и префиксной максимальный приоритет. Префиксная увеличивает значение и возвращает объект. Постфиксная увеличивает значение, но возвращает объект до увеличения значения. Напиши чет тип i=2; a=++i; b=i++; Поймешь суть. Постфиксная именно по назначению оч редко юзают
> и в single step не переводить?
Я же написал для чего нужен флаг трассировки. Если тебе только адрес нужен можешь не переводить.
> Где вообще написано, как писать memory breakpoint?
Я тебе уже два метода продемонстрировал. А вообще там же где и все остальное - в гугле, от себя могу порекомендовать пару ссылок:
https://habr.com/post/178159/
https://docs.microsoft.com/en-us/windows/desktop/debugging-and-error-handling
Напишешь производительный код, который на 5-10-15-20% быстрее читаемого кода, а потом через три месяца будешь сам от него плеваться, когда надо будет внести изменения или дебажить. Ну или другой челик после тебя придёт и будет тебя проклинать.
В общем, мне кажется, что организация работы через базу данных это костыль. Какие существуют методики интеграции нескольких приложений написанных на разных языках, но на одной платформе в одну единную систему с учетом того, что части системы связаны между собой по подобию сигнал-действие?
Спасибо за ответ. RabbitMQ - это слишком круто для меня, всё же все приложения находятся на одной локальной машине.
>всё же все приложения находятся на одной локальной машине.
Это никак не препятствует использованию кролика.
Можешь еще https://redis.io/topics/pubsub глянуть
Пайпы, очереди сообщений или сокет, очевидно жи.
Еще shared memory, но не уверен что из джавы можно.
Шмем плох тем, что его без дополнительных приблуд вроде оповещений по другим каналам связи трудно использовать для динамического контента. Туда сложно запихнуть какие-то сложные объекты вроде очередей, чтобы ничего не руинилось в многопоточной среде.
Ещё DBus есть и In-Memory Data Grid, но я их не пробовал.
Яхз что за DBus и In-Memory Data Grid.
Это из буста что то?
Я про базовый линуксовый ipc рассказал этому анону.
Shared memory можно просто как разделяемые данные с семофором юзать и все.
Ну, кое-какие продвижения есть. Я не там восстанавливал PAGE_GUARD -_-
Хочу как бы заново вкатиться в кодинг, попутно структурируя и вспоминая все то, что забылось уже давно.
Есть ли какой-то смысл начинать с голого Си или же можно сразу окунаться в Си++?
ООП не трогал никогда

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

>всратые
они в голове в первую очередь, функция мобильного инкубатора предопредляет сознание и развитие индивида в целом, они всегда будут лишь серыми посредственностями, усидчиво копируя то что превозмогая биопроблемные лишения создали мужчины
ну а красота это в первую очередь харизма и внутренняя уверенность, что напрямую связано с успехами в проффесиональной деятельности, сракой за дорого торговать тащемта тоже надо уметь
и да человек в принципе мммаксимум энергоэффективное животное, а мозг дохуя ресурсный, поэтому если фартануло с дойками и жеппой, можно даже со стремным ебалом и колхозным мейком найти себе татарина с нефтянки
>>50175
>с парнями иначе
Я о другом. Есть ли какой-то смысл заморачиваться между выбором си/крестов, или сейм щит?
Ну нет же. На си ты хуй напишешь большие приложухи (или очень долго). На крестах больше инструментов чтоб большие приложухи писать. Си это ардуино и прочая х%уйня, кресты это браузеры, базы данных, медиа проигрыватели и тд.
Я беру кресты/си, чтобы знания воедино собрать и перекатится куда-то уже с каким-то базисом на строго типизированном языке.
хуйня собачья, уровня 13-летних индиго ебать их в рот анонов олимпиадников
дропнешь унылую БЕСПОЛЕЗНУЮ хуйню через неделю
делай то что нужно в данный конкретный момент времени и изучай походу полезные мелочи, ебаться с говном по настоящему для этого не нужно
https://ideone.com/1MGqg9
Я не умею указывать явные спецификации, и не понимаю, в чем проблема.
Решил проблему.
Как стать успешным кодером:
>Без базовых знаний си и крестов попытаться выучить шарп.
>Поняв что все хуйня и пора начинать по новой попытаться вкатиться в кресты.
>Озалупиться от непривычного синтаксиса и винить в своей тупости язык.
>Жидко покакать об этом в тред.
Только хардкор, только 6мс на каждую итерацию главного лупа на Pentium 4 с таким-то графоном и задержкой между графоном, звуком и инпутом, которой позавидует Beatmania:
STL (чуть-чуть, только для строк и векторов)
Графон: OpenGL
Музон: XAudio2/ALSA
Окна: WinAPI/Xlib
Я тут охуел с шаблонов, точнее с variadic template. Ебать это инструмент богов похоже ептубля. /r годную литературу по метапрограммированию. Алсо /r годную литературу по современному(с 11 по 17) цэпэпэ.
Дошел до 14 главы - "Множественное наследование" .
И есть один код: https://ideone.com/5A6dST
Почему-то, когда я добавляю в базовый класс функцию virtual void ShowData();, то компилятор начинает ругаться на:
--------------------Configuration: 14.5 - Win32 Debug--------------------
Compiling...
14.5.cpp
error C2250: 'highfink' : ambiguous inheritance of 'manager::ShowData'
emp.h(32) : see declaration of 'manager'
error C2250: 'highfink' : ambiguous inheritance of 'fink::ShowData'
emp.h(50) : see declaration of 'fink'
emp.cpp
error C2250: 'highfink' : ambiguous inheritance of 'manager::ShowData'
emp.h(32) : see declaration of 'manager'
error C2250: 'highfink' : ambiguous inheritance of 'fink::ShowData'
emp.h(50) : see declaration of 'fink'
Error executing cl.exe.
14.5.exe - 4 error(s), 0 warning(s)
Че за нахуй?
Я в этом не силен(у меня пока плюсы - это си + std), но при первом взгляде на код и ошибку предполагаю: ругается на то, что не может определить, от чего наследовать, а ты написал ошибку "множественное наследование".
И задался вопросом: а нахуй тебе добавлять virtual void ShowData() в protected, когда он уже есть в private? Определись и оставь что-то одно
>а нахуй тебе добавлять virtual void ShowData() в protected, когда он уже есть в private? Определись и оставь что-то одно
Опечатка. Даже если я убираю ShowData() из protected, то ошибка компиляции все равно остается.
А, смотри.
У тебя же highfink наследует сразу от двух классов, вот и не может определиться, какой showData ему брать.
Я точно не уверен, но, кажется, в том классе, от которого не надо брать этот метод, нужно его определить как final

Это я уже понял, что нужно вызывать с явным указанием класса. Но тут ситуация немножко иная. У меня в конечном производном классе вообще нету переопределения этого метода. И получается, что компилятор не знает от какого предка наследовать этот метод.
Перефразирую свой вопрос. Получается, что строя иерархию классов как на пикрелейтед, я всегда буду получать "непоределенное наследование" в конечном производном классе?
>У меня в конечном производном классе вообще нету переопределения этого метода.
Особо разницы нет. Так как ты публично наследуешь эти два класса, то ты в принципе сможешь вызвать у объекта класса employee функцию ShowData(). Например, так:
void foo(const employee& e)
{
e.showData();
}
Если ты передашь в foo экземпляр класса highfink, что программе вызвать?. Компилятору нужно заранее знать, что именно будет вызываться у этих highfink-ов (если хочешь углубиться, можешь почитать про vtable). Но он не может этого сделать, Поэтому ошибка. Единственный выход: всё-таки сделать конечный оверрайд. Если ты уж совсем не хочешь его "показывать наружу", то можно сделать его приватным:
https://ideone.com/knUeZt
БАМП
Всё, что на мидла. Тадам, добро пожаловать в крестомир
https://ideone.com/ZtKovP
Определись какая будет игра и ответим по делу.
Что у тебя на странице с кодом? Идёт два нопа, потом нули (если верить https://c9x.me/x86/html/file_module_x86_id_5.html, то это ADD r/m8, r8, то есть получается посто целая страница add al, al). Потом страница заканчивается и начинается уже защищённая, на которой у тебя и падает.
Чтобы убедиться, посмотри на адрес VirtualAlloc, и затем на адрес исключения. В моём случае память была выделена в 0x00DD0000, а исключение случилось в 0x00DD1000. Размер - ровно страница. Совпадение? Не думаю.
Решение: добавь RET (0xc3) после нопов, выйдет из функции нормально.
Можешь делать всё, что захочешь, код ведь твой. Только тебе придётся страдать с опкодами x86.
Обычно в одной папке с приложением под виндой дистрибьютят. Не знаю, есть ли смысл заморачиваться и куда-то ещё кидать.
int main()
{
struct S { int i; ~S() {} } s; // создаём объект
int& ri = s.i; // байндим ссылку на его мембер, т.к. скоро мы не сможем пользоваться s
s.~S(); // заканчиваем лайфтайм s
ri = 0; // но при этом лайфтайм его мембера не заканчивается, ссылка валидна!
::new (&s) S; // пересоздадим объект, т.к. иначе будет UB из-за вызова деструктора при завершении main
}
вот за это я и люблю C++
Sdl 2
1. Нажимаешь Build.
2. Ждёшь.
3. Cannot build because hurrdurr.o not found: Go fuck yorself.
Вот за это мы не любим ц++

Скриншот доказывающий что не пиздабол.
Нет ты.
Качаешь либо CLION (студии под убунту нет) либо VSCODE, SUBLIME TEXT и компилишь через строку командную.
>Появилось свободное время, наконец-то настроил драйвера на убунте под радеон р9 390 и смог запустить тестовую прогу-куб от vulkan-api. А как дальше разрабатывать? Как это выглядит? Где писать исходники под вулкан? Иде какое-то есть?
Забей на вулкан, тебе очень не понравится, он матерым-то байтоблядям-плюсоблядям рвет пукан, а для тебя это вообще будет как если тебе в пердак влетит дилда размером с пассажирский поезд со сверхзвуковой скоростью - ты не то что подгорание - ты даже понять ничего не успеешь, сразу на кузки после первой же строчки разорвет.
Короче, концепция такова, что ты вместе с игрой пишешь еще и половину драйвера видеокарты.
float cos_t = cos (t);
float sin_t = sin (t);
float x = 2 pow (cos_t, 3);
или
float cos_t = cos(t);
float sin_t = sin(t);
float x = 2 pow(cos_t, 3);
(пробелы после скобок в функции нужны ,)
похуй, но не забывай, что кос и син могут быть константами
Ну что же вы, бэтманы? Неужели никто не интересуется таким или я в шары долблюсь и ответ где-то в шапке или что-то вроде того? Так я смотрел, не нашёл.
Читай референсы, смотри cppcon и смотри реальный код библиотек. Хотя бы тот же std::variant. Но я умоляю тебя. НЕ ПЕРЕБОРЩИ, СУКА. Я только неделю назад словил пятикилометровую ошибку компиляции, потому что какой-то умник решил запихнуть функции (тип которых определяется темплейтом) в массив и вызвать энную, исходя из определённого компайл-тайм условия (которое определяется через хренову тучу sfinae-структур).
Используй только там, где действительно нужно обобщённое программирование. В 99% случаев оно усложнит код, сделает компиляцию медленной, и вообще, не надо.
>Но я умоляю тебя. НЕ ПЕРЕБОРЩИ, СУКА.
Торжественно обещаю не борщить, сенсей. Спасибо за наводки.
>>поставь винду
Я под линуксами более менее выучил кресты. В линуксах кресты легко установить, есть дохуя иде. Под виндой чёто не взлетело, а в визуал студио вообще свой язык.
Зависит от того, на чем ты окна делаешь.
На винапи - при регистрации класса окна, вроде, указываешь путь к иконке. Есть где-то гайды от мелкософта по этому поводу, главное - поищи нужную процедуру, это будут относящиеся к созданию окна.
Если что-то вроде SDL - то обычно с библиотеками и SDK поставляются запускаемые примеры и проекты/код, можешь там поискать, как это делать.
>в визуал студио вообще свой язык.
Там обычные кресты, ты чего. Если ты про C++/CLI, то мы стараемся его не вспоминать.
Добавляешь иконку в ресурсы, при инициализации окна получаешь по идентификатору хендл на неё и ставишь с SetIcon
Ты не смог осилить "клик чекбокс" -> далее?

Стивен Прата. Язык программирования c++
Сейчас в пример дам простейший код, через отладчика тоже в деструктор не залетает. Это я рукожоп что-то упустил или компилятор сломался?
#include <iostream>
#include <cstdlib>
using namespace std;
class MyCopy
{
public:
MyCopy()
{
cout << "Вызвался конструктор" << this << endl;
};
~MyCopy()
{
cout << "Вызвался деструктор" << this << endl;
};
};
int main()
{
setlocale(0, "");
MyCopy a;
system("pause");
return 0;
}
>int main(){setlocale(0, "");{MyCopy a;}system("pause");return 0;
так работает, а в чем собственно причина, подскажешь? Спасибо:)

Охуеть, анон, да это же ёбаный хаскель! Только обфусцированный до невозможности, но это похуй! Ебучий хаскель внутри ебучих крестов! Охуеть! Охуеть! Хуй стоит! Кресты язык богов.
ушёл писать монаду
Магия, чувак :)
int main(){
MyCopy *a = new MyCopy;
delete a;
system("pause");
return 0;
}
Деструктор вызывается при уничтожении объекта.
Деструкторы вызываются после того, как начинается выхож из блока - анон выше сделал отдельный блок, в котором вызвал конструктор; по его завершении автоматически вызывается деструктор и все окей.
А в твоём случае вызов деструктора будет только после return 0, когда уже программа заканчивает работу - потому ты и не видишь вызов деструктора.
Хотя cppquiz считает, что и твой код должен инициировать вывод в консоль, но я проверял их примеры в студии - и как у тебя, нихуя нет.
Это какая-то особенность компилятора студии. gcc 5.3.0 всё честно выводит.
Только ссут на ебло.
class Bar
{
public:
void foo() { std::cout << "foo()" << std::endl; }
};
int main() {
Bar* pt = nullptr;
pt->foo();
return 0;
}
выведет foo()
Какого хуя?
Неопределенное поведение, брат. Еще легко отделался, мог бы пять хуев у себя в жопе обнаружить.
std::function<void(int)> wrapper(std::function<void(int)> f){
return [f](int arg){
f(arg);
};
}
Как сделать так, чтобы лямбда в данном примере принимала любое количество аргументов?
Как сделать так, чтобы лямбда в данном примере принимала любое количество аргументов?
https://ideone.com/Rqmx7g
Ок, моя ошибка. Как сделать так, чтобы при всём этом, лямбда принимала любую функцию?
Сейчас я могу сделать вот так:
https://ideone.com/FgBU3F
Лол.
https://ideone.com/WNdrrB
Вот общая идея, тебе остается только написать код для вытаскивания шаблонных аргументов RET и ARGS из VAL через специализацию, чтобы их не указывать. (RET можно достать через std::result_of, как аргументы хз, возможно придется писать вручную специализацию для std::function.) И возможно спрятать все это в шаблонную функцию. Мне лень это доделывать.
(Невиртуальные) функции класса - обычные функции, которые принимают скрытый указатель this. Ты им не воспользовался - прога не сдохла. Вот если сделать функцию виртуальной (и компилятор её не девиртуализирует), то обращение к ней будет через vtable. А указатель на объект нулевой, значит vtable тоже в нуле и указатель на функцию тоже нулевой - прога тогда сдохнет.
Спасибо, я понял.
Понятно, спасибо.
Есть крестовый код написаны в си стиле. Нужно создать класс/шаблон/макрос или какую-нибудь другую хуёню-обёртку чтобы было легко вызывать одну функцию перед вызовом каждой уже существующие функции и эта одна должна бросить эксепшен если что-то не так, а если всё ок, то просто прекращается и вызывается правильная функция. Чтобы можно было писать что-то типа Funcs::FuncName(Arg1, Arg2); и перед тем как вызовется функция FuncName это штука должна вызвать другую функцию, но её имя не надо каждый раз писать при вызове FuncName. Ну надеюсь вы поняли. Как это сделать красиво?
Ах да забыл добавить, что код уже написанных функций менять нельзя. Нужно создать новый файл для этой хуйни и там инициализировать её всеми уже рабочими функциями
Есть a = 4 , b = 3; Нужно чтобы c = 43. В интернете находил решение в 5-6 строк, думаю можно как-то легче это выполнить.
Не обоссывайте, я недавно начал изучать язык.
Я задание выполняю, так что числа(двухзначные) могут быть разные
вот тебе в одну строчку:
int a = 4, b = 3;
int ab = std::stoi(std::to_string(a) + std::to_string(b));
Когда сам решаешь, лучше усваивается информация.
Ну вот вообще не понятно, что ты написал? Хочешь обёртку? Вызывай нужные функции в нужном порядке там. Хочешь что-то типа Aspect-oriented programming?
T& operator[](int i) {...}
const T& operator[](int i) const {...}
Вот посмотрим на второй оператор. Тут первый const вроде указывает на то, что мы можем его использовать только как rvalue, второй const - что его код не должен менять состояние объекта.
Тогда:
1) Почему в первом операторе не используется второй const, если в нем мы тоже не должны менять состояние объекта?
2) Зачем нужен вообще второй оператор, код которого ничем не должен отличаться от первого, но на который наложены ограничения?
>Начал я тут читать Страуструпа
А надо было С.Пратта
>1) Почему в первом операторе не используется второй const, если в нем мы тоже не должны менять состояние объекта?
Первая функция - для изменения элементов массива. Вторая - только для чтения.
>2) Зачем нужен вообще второй оператор, код которого ничем не должен отличаться от первого, но на который наложены ограничения?
Как писал Пратта - ошибки проще отлавливать на этапе компиляции. Если у тебя в программе по задумке идет считывание данных массива, а ты по-запарке пытаешься их изменить (ну например, проебался с == и = ), то компилятор тебе сразу укажет на проеб.
Пратта почитаю потом тоже, и Липмана почитаю, главное с чего-то начать
Но за этот запрет изменения элементов массива отвечает первый конст, который перед возвращаемым значенем, а второй - за то, что в фигурных скобках, разве нет? в коде в фигурных скобках ничего не меняется, он просто по идее должен сформировать и вернуть значение по ссылке, ну а дальше пофиг что с этим значением происходит. Или нет?
А во втором вопросе я имел в виду - зачем вообще в рамках одного класса два почти одинаковых оператора использовать. Хотя сейчас понимаю, что он наверное просто для примера привел, что типа можно и такой и другой, а меня это сбило.
>Хотя сейчас понимаю, что он наверное просто для примера привел, что типа можно и такой и другой, а меня это сбило.
Нет. Нужны ОБА метода.
>зачем вообще в рамках одного класса два почти одинаковых оператора использовать.
Ну я же тебе говорю. Ты своим функциям должен оставлять самый минимум пространства для маневра, чтобы потом не проебаться. Вот зачем использовать спецификатор const, если можно и без него хуячить? А затем, чтобы если по логике у тебя переменная - константа, то при попытке ее изменить компилятор теья сразу нахуй посылал прям текстом. Иначе бы пришлось тебе из-за маленького и незаметного проеба (ну например, ты хотел написать в коде if(a==5,) но проебался и написал if(a=5) ) сидеть и ломать голову - а хуле моя прога работает не так как я задумал?
А теперь расширь всё что написано выше на свой пример.
Пишешь ты класс, который что-то делает как массив. Ты хуяришь код:
>T& operator[](int i) {...}
Всё норм. Потом ты такой сидишь и думаешь - а если мне нужно только лишь, например, вывести элемент массива в консоль, где гарантия, что я не попорчу свой массив? Нет гарантий, ведь твой метод может и перезаписывать данные. Тогда ты создаешь точно такой же, второй метод. Но только связываешь его по рукам и ногам спецификатором const:
>const T& operator[](int i) const {...}
...справа - гарантия, что метод не изменит данные
...слева - гарантия, что возвращаемый объект не даст в себя ничего записать.
Как пример второго метода:
допустим, твой класс содержит массив строк.
T MyClass
>и тут ты проебался по-пьяни, и вместо вывода на консоль набыдлокодил ввод.
cin >>MyClass[0];
Благодоря второму методу с const компилятор сразу отругает тебя в стиле: "Хуль вы, сударь, пытаетесь хуячить в переменную, которая только для чтения?"
А если бы этого метода у тебя не было, а был бы только первый вариант, то программа собралась и заработала. Только вместо положенного она тебе выдавала бы хуйню. А ты бы сидел и думал - схуяли баня загорелась?
Как-то так...
Ну вот как раз по примеру, который ты приводишь: компилятор видит, что я делаю ввод и следовательно из этих двух операторов выбирает тот, который без констов, и все норм компилится.
Зачем тогда оба метода спрашивается? тем более и код у них скорее всего будет идентичный.
Ты заебал, за тремя соснами леса не видишь. Хочешь чтобы я тебе в 3 ночи примеры без ошибок приводил? Я тебе описал общий смысл для чего это делается. За всем остальным - С. Прата 4ое издание (более понятный язык) стр. 562-563. Либо 6ое издание - стр. 612-613.
Если твой класс ведет себя как массив, то скорее всего в нём есть указатель на данные. Обычно когда у тебя есть const объект, то ты предполагаешь, что константны не только его члены но и данные за которые он отвечает.
const как спецификатор метода говорит, что вызов метода не изменит значения этого указателя, но сами данные менять то можно. Поэтому:
- метод T& operator[](int i) {...} нужен для не константых объектов. Он позволяет менять данные возвращая их по обычной ссылке. Он не объявлен как const позволяя вызвать себя только на не конст. объектах.
- метод const T& operator[](int i) const {...} может быть вызван как конст. так не конст. объектом. Второй конст говорит, что при вызове не изменятся члены класса конечно если они не mutable, а первый - что ты не можешь менять получаемые данные.
Так достигается логическая константность объекта.
>>56386
ну вроде понятно, но не уверен. то есть это только вот для таких случаев нужно, как в этом примере?:
template <class T>
class 2chvector{
std::vector<T> vec;
public:
2chvector(const std::initializer_list<T>& list){...}
T& operator[](int i) { return vec; } // #1
const T& operator[](int i) const { return vec; } // #2
};
int main(){
2chvector<int> a {1,2,3,4,5};
const 2chvector<int> b {6,7,8,9,0};
std::cin >> a[1]; // #1
std::cin >> b[1]; // ошибка компиляции, потому что в #1 нет спецификатора const и он не может работать с const объектами, а #2 может, но запрещает запись
}
https://ideone.com/aEdpLb
❓
лул, двачь поддерживает емоджи
я не знаю крестов с их ООП и что такое Aspect-oriented programming. У меня есть куча процедур в файле utils.cpp. в мэине они вызываются как a, b, c. мне теперь нужно создать файл detect.cpp и в нём что-то прописать. Не знаю что. У вас спрашиваю. Чтобы потом отредактировать в мэйне вызовы функция a, b, c совсем чуть-чуть и в результате перед вызовом самих этих функций каждый раз вызывалась ещё одна функция f. она уже написана и работает. Осталось только как-то сделать ту штуку, которая обёртка для вызова f перед каждой функцией a,b,c. просто меняешь в инклюдах utils на detect и немного меняешь вызов самих функций например не a(), а func::a() и всё работает. В коде функция f даже не упоминается, но перед каждым вызовом a она вызывается. Никакой инициализации этого врапера. Всё делается в момент компиляции. Как такое сделать?
Ебать, анон ты меня огорчаешь. Неужели это так сложно?
В файле detect.h объявляешь свои новые ф-и a1, b1, c1
В файле detect.cpp инклюдишь utils.cpp, если ф-я f больше нигде не нужна определяешь ее тут же даже static дописать можно. Ну и сами обертки имплементишь:
тип_возврата a1(...) {
f(...);
a(...);
}
и так с остальными.
В том что у нас тут с++ тред, а ты какое-то говно из 90х советуешь. Без обид.

Вы не поверите, но это обычный сеньор Пайтона
Хочу вкатиться в олимпиадное программирование на С++ с нуля. Только проблема, что курсы моего уровня нашёл только с питоном. Можете что подсказать?
startButton = new QPushButton(tr("&Start"));
смущает амперсант, зачем он?
Значит, что S будет выполнять роль горячей клавиши и дублировать нажатие этой кнопки.
Учи питон. Нахуй тебе там плюсы не нужны
Смотрите, авто-вектризация: https://www.gnu.org/software/gcc/projects/tree-ssa/vectorization.html
По новейшим исследованиям 2011 года
Лучше уж самим интринсики в узких местах писать, чем уповать на компилятор.
Тут пишут https://habr.com/post/150274/ что наследоваться нельзя/ненадо. Но в куче других источников используется исключительно наследование. Как правильно?
When to subclass and when not to?
If you do not really need an event loop in the thread, you should subclass.
If you need an event loop and handle signals and slots within the thread, you may not need to subclass.
Если ты любитель сигналов/слотов - наследоваться нельзя.
Если ты любитель пердолиться с синхронизациями потоков - можно.
1 пик - Копирую текст в буфер и пытаюсь сразу его вывести в qDebug
2 пик - То же самое, но с секундной задержкой
Как получить информацию о том, что запись в буфер прекращена и что его можно дальше забирать и использовать?
cpp.sh/3akpk
Лол блять, я так понимаю цикл будет идти пока условие выполняется, в этом смысл упражнения? А то слабовато понял. Можно его прочитать как: пока идёт ввод - записуем - суммируем ?
Спасибо, думаю как больше разберусь допишу его до нормального вида. Неожиданно адекватные аноны вечером
Чем отличается сеньор от мидла в топовой компании?
Сколько платят синьорам нынче?
Как ты видишь развитие пограмирования на период ближайшей декады ?
Пиздуй читать С. Прату, ленивое хуйло.

Код упражнения cpp.sh/4cpux
Код подключаемого класса cpp.sh/5e4nd
>private:
>std::string isbn;
>@
>item1.isbn
Ахуел напрямую лезть в закрытый раздел? Он для того и закрытый, что доступ можно получить только через открытые методы.
P.S.: Книжка - дрянь. Читай С. Прату.
>при компиляции даёт ошибку, что такой функции в етном файле нету и пошёл я нахуй.
Ты еще и в английский не умеешь. Он тебе пишет, что у тебя НЕТ ДОСТУПА к этому элементу.
1258922-кун
Английский б1 вроде, в чтение литературы могу, скорее описал проблему не так. Один хер не решил бы ее без помощи
Только трусы делают члены приватными. Настоящий мужчина всем показывает свои члены.
Так и сделал, обьясните как получить доступ к этому файлу. Я язык начал изучать позавчера, в книге просто описывается пример и никаких заморочек
Ну сравнение isbn там вроде производится через bool same_isbn(const Sales_item &rhs) const
{ return isbn == rhs.isbn; }
Попробуй какую-нибудь книгу полегче. Шилдта например.
Там выше анон Прата порекомендовал, она 2005 года. Ничего страшного не будет, если я по ней буду изучать? Читал где-то что каждые 3 года стандарты языка меняются, и книги становятся не актуальны.
>обьясните как получить доступ к этому файлу.
Это, блядь, нихуя не файл. А элемент данных, находящийся в закрытом разделе класса. В этом то вся и фишка классов, что ты пихаешь данные в закрытый раздел. Дальше хуяришь функции, которые манипулировать этими данными, в окрытый раздел. И напрямую ты никак не должен получить доступ к закрытому разделу.
Если тебе нужно сравнивать isbn двух объектов твоего класса, то один из вариантов это реализовать в открытом разделе функцию, которая будет возвращать isbn.
Например:
>public:
>std::string GetIsbn()
>{
>return isbn;
>}
А дальше сравнивать так:
>if( item1.GetIsbn() == item2.GetIsbn() )
>Прата
Хз, не читал.
>Читал где-то что каждые 3 года стандарты языка меняются, и книги становятся не актуальны.
Так то да, стандарт меняется, но большого греха в изучении старых стандартов нет, потом/в процессе изучения будешь просто подтягивать новые знания.
Я вообще изучал по изданию 2004 года (издание 4, Platinum Edition), хотя есть 6ое. И все норм.
1258970
1258938
1258928
1258922
кун
>Сап двач каку книгу для ньюфага лучше начать изучать. В шапке их 3 но какая из них лучше?
С. Прата, издания до 4го включительно. В более поздних переебали перевод не в лучшую сторону. Хотя если до этого ничего не читал, то может и зайти.
>каку книгу для ньюфага лучше начать изучать.
>@
>Шаблоны C++: Справочник разработчика
>@
>для ньюфага
Ты серьезно, блядь?
Думаю что да. С++ Настолько объёмен как некий кракен, и что изучая его весь очень нескоро доедешь до шаблонов. А они сами по себе не столько фича языка сколько некий философский паттерн мысли к которому пришло современное программирование, и который в принципе применим ко всему программированию нежели только к C++. Почему бы сразу не начать понемногу понимать его, тем более что в книге есть и подводящие к нему главы описывающие основную систему языка.
Ты ебобо? 2011 года есть. 6 издание
Питон учи, там всё можно сказать шаблоны. А в плюсах долго копаться
Переменные-члены класса обычно делаются private и у ним нет доступа. Для доступа дела.тся специальные public функции . и там она есть
std::string isbn() const { return bookNo; }
Соответственно в коде вызывать надо
if(item.ismn() == item2.isbn())
{}
Цель, такова: я сохраняю в массив обезличенный указатель на дочерний объект, потом когда надо я делаю reinterpret_cast. Но можно ли как-то сохранять в массив не обезличенный указатель, а указатель типа родительского класса на объект (как-то так)?
Объясняю на квадратиках и кружочках:
https://pastebin.com/Viq1sx8Y

>int figures[10];
Ничего не понимаю. И это программисты? Тебе дали полиморфизм. Используй, используй полиморфизм. Нет, не хочу, хочу кастовать к инту. Это программисты? Мудачьё. Классов понаписали, к интам кастуют...
nameof оператор для с++, может вернуть название переменой, енума и класса
https://github.com/Neargye/nameof
Память не обязана заполняться нулями, просто говорится системе что это свободная память, теперь там "мусор", и позже может записаться в этот участок другие данные
Спасибо
Говно без задач. Особенно если, б-же упаси, память для этой еблины выделяется динамически в рантайме. Тогда проще уж сразу на пхп костылировать.
Юзается в той же серелизации и логирование
Память статически выделяется ток, никакого хипа офк
Урок первый, можешь писать на плюсах, не пиши, оно того не стоит, я просто уже байтослесарь, мне терять нечего.
Я учусь на нём
Мне кажется для основ самое то
Что посоветуешь? Думаю, что Джава для переката подойдёт
Основы конечно с плюсами неплохо, но потом беги.
Ява норм если в адроид, тыпрайз на ней все таки весь в давнокоде, но это имхо.
я в ебаной провинции. До мкада больше 1,5к км
>Но пока все обсуждают как заработать денег, ты крутишь гайки в солидоле и тебе это даже интересно.
Вот я могу сейчас ошибиться, но где-то было, что если ты хочешь удалить данные полностью - то смарт поинтеры тебе в помощь
А так, получения, это undefined behaviour, просто тебе повезло, что под этому адресу осталось то же самое.
Но я эту тему не полностью(лол) понял, так что это догадки.
2.#include <conio.h>
3.const int n=20
4. void main()
5.{
6. float mas[n];
7.for(int i=0; i<n; i++)
8. cin >> mas;
9.for(int i=0; i<n; i++)
10. count<<" "<<mas<<" ";
11. getch (999999);
12.}
Какого хуя ошибка в 4 строке?
Я только начинаю не ругайте
Сапсибо, все остольное исправил
cout.self(ios_base::fixed, ios_base::floatfield)
Я так понял он указывает тип данных как числа с плавающей точкой. В примерах эта строка идёт первой в основной функции, то есть всё введенные в функции значения будут с плавающей точкой, или как?
>cout.setf(ios_base::fixed, iso_base::floatfield)
Ошибся
Есть код:
QVariant ApplicantTableModel::data(const QModelIndex &idx, int role) const
{
if (!idx.isValid()) return QVariant();
if (idx.column() == 10 && role == Qt::DisplayRole)
if(idx.data() == "0")
return "-";
else return "+";
else return QSqlTableModel::data(idx,role);
}
На idx.data() программа падает из-за переполнения стека. Объяснение этому следующее:
>If idx is an index of the same ApplicantTableModel instance (which it should be, otherwise the usage is incorrect) idx.data() will call idx.model()->data(), i.e. the very same ApplicantTableModel::data() function we’re looking at => infinite recursion, which leads to stack overflow/crash.
>А тут разве переполнения стека не будет?
>Вызов idx.data() должен приводить к вызову ApplicantTableModel::data и т.д.
Вопрос - какого хуя, вызывая idx.data(), вызывается idx.model()->data()?
Байтоёбы обычно очень прижимистые, поэтому тебе кажется что "платят нормально". Сам посуди, если человек на работе экономит каждый байтик и инструкцию, то и в быту он будет экономным скупердяем.
Ты бы ещё оланг вытащил.
Реально ненужное днище.
Хотя, если вас шизиков вместе собрать — может чего и выйдет.
https://bitbucket.org/ArmanHayots/olang/src/5500902be1990eb3fc232961d48eae6cd4877565/chalkboard/?at=default
>Вопрос - какого хуя, вызывая idx.data(), вызывается idx.model()->data()?
потому что он именно это и должен сделать? дай определения всего этого и реализации
>стали кардинально другим языком
Поорал. Спасибо большое, ты сделал мой день.
Кардинально::Блядь<другим>(это)->нахуй(языком) они стали? Ты че ебонутый?
Я это говно возненавидел когда мне было 14 лет, сейчас мне 23, и я не могу ни к одной строчке кода, которая написана на этой вонючей ссанине дауна Страуструпа, руки подпустить.
Куча дебилов пишут на этом говне. И что? Это показатель чего? Того что софт коммерческий пишется по принципу "написали и выкинули нахуй" ? Супер, продолжайте задвигать про аджайль девелопмент и прочие словечки, которыми сейчас так любят бросаться недоучки, которые не смогли образование получить нормальное. Удачи.
>дай определения всего этого и реализации
Если бы это было так просто...
Если коротко, то вот:
http://www.cyberforum.ru/qt/thread1576423.html
Если полностью рассказывать, то я ковыряю стандартный пример EditableTreeModel из поставки Qt.
В самом низу страницы есть ссылки на файлы с исходным кодом:
http://doc.qt.io/Qt-5/qtwidgets-itemviews-editabletreemodel-example.html
В файле treemodel.cpp у меня есть следующее:
QVariant TreeModel::data(const QModelIndex &index, int role) const
{
if (!index.isValid())
return QVariant();
if (role == Qt::BackgroundColorRole)
{
if (index.data().toString() == "Layouts") <=== Вот тут вылетает из-за переполнения стека.
// return QVariant(QBrush(Qt::red));
}
Нашел причину, почему так происходит:
http://www.cyberforum.ru/qt/thread1576423.html
https://stackoverflow.com/questions/34104837/dataqmodelindex-crash
Но не пойму, какого хуя, вызывая index.data() (как я считаю, это же QModelIndex::data() ), фактически же вызывается (как я понял) TreeModel::data(). И я попадаю в рекурсию с распидарашиванием стека...
>дай определения всего этого и реализации
Если бы это было так просто...
Если коротко, то вот:
http://www.cyberforum.ru/qt/thread1576423.html
Если полностью рассказывать, то я ковыряю стандартный пример EditableTreeModel из поставки Qt.
В самом низу страницы есть ссылки на файлы с исходным кодом:
http://doc.qt.io/Qt-5/qtwidgets-itemviews-editabletreemodel-example.html
В файле treemodel.cpp у меня есть следующее:
QVariant TreeModel::data(const QModelIndex &index, int role) const
{
if (!index.isValid())
return QVariant();
if (role == Qt::BackgroundColorRole)
{
if (index.data().toString() == "Layouts") <=== Вот тут вылетает из-за переполнения стека.
// return QVariant(QBrush(Qt::red));
}
Нашел причину, почему так происходит:
http://www.cyberforum.ru/qt/thread1576423.html
https://stackoverflow.com/questions/34104837/dataqmodelindex-crash
Но не пойму, какого хуя, вызывая index.data() (как я считаю, это же QModelIndex::data() ), фактически же вызывается (как я понял) TreeModel::data(). И я попадаю в рекурсию с распидарашиванием стека...
#include <iostream>
#include <conio.h>
#include <cstdlib>
using namespace std;
int main(int argc, char *argv[])
{
int a = 100;
a = a++;
cout << a << endl;
a = ++a;
cout << a << endl;
getch ();
}
В компиляторе выводит как :
101
102
А в компиляторе onlinegdb как :
100
101
ЧЁ ЗА ХУЙНЯ ?
https://godbolt.org/z/ubVTkc
На шланге, причем, все норм векторизуется:
https://godbolt.org/z/U5qCKI
>a = a++;
Эта строка нарушает стандарт C++ и кидает ворнинг. По хорошему компилятор должен бы ошибкой считать.
Поэтому всегда работай с 4ыми варнингами и с воспринятием варнингов как ошибок. В крайнем случае отдельные варнинги в отдельных местах можно задизейблить.
У майкрософт как всегда самая годная справка. Никаких книжек читать не нужно.

Похоже GCC с векторами из двух флоатов только на 3dnow работает. С SSE векторизуется только полный вектор из четырех флоатов.
Я теперь понял еще меньше.
Уже не помню суть первоначального вопроса, но Якубович с надписью-то чем должен был помочь?
Это утверждение
1) Зачем нужен cin.get если есть функция cin.getline которая удобнее. Читает всю строку, с пробелами, удаляет символ новой строки и вообще заебись.
2) Используют ли еще символьные массивы для хранения строк, или string теперь более популярный? В книге второй описывают как более новый и удобный способ, единственное что побуквенно нельзя читать/записывать. То есть я могу использовать string если мне нужна именно целая строка, а про char в таком случае забыть?
Классовая борьба, скорее всего.
Можешь привести пример где .get или .getline будет незаменим? Просто хочу нормально понять, а опыта не хватает.
И ещё, как делать портфолио, что туда класть?
Геев у нас своих хватает
Ебаться с байтами, уметь написать что-то простое под систему без фреймворков, адекватно квасить классы и зорко следить за памятью.
И конкретно по цапле нужно знать шаблоны.
Глава про последовательные контейнеры, упр 9.22:
С учетом того, что iv является вектором целых чисел, что не так со следующей программой? Как её можно исправить?
vector<int>::iterator iter = iv.begin(), mid = iv.begin() + iv.size() / 2;
while(iter != mid)
{
if(iter == some_value)
iv.insert(iter, some_value 2);
}
Полагаю, тут задумка в том, чтобы вставлять в начало вектора числа, пока начальный элемент исходного вектора не сдвинется до середины.
Косяк в том, что в векторе при вставке итераторы становятся невалидными.
Решение вижу только методом вычисления количества вставок:
https://ideone.com/9y1HXw
Как то можно сделать это через итераторы, как это у них задумано?
Уже год как работаю на одну замечательную ноунейм контору. Зарплата так себе и опыта особого не получаю. Думаю съёбывать.
Но хочу перед этим набить себе хороший аккаунт на гитхабе, для чего хочу покотрибутить в какой-нибудь open-source.
Я знаю, что никто в здравом уме мои поделия смотреть не будет, однако если я скажу фразу "я контрибутил в X" - может сойдёт за плюсик на собесе.
Так вот, какой опенсоус посоветуете? Требования:
1) Чтобы пул реквесты не болтались по 10 дней
2) Лучше чтобы это был продукт, а не либа
3) Modern C++, в идеале сборка с 17 стандартом.
Еще вопрос по использованию итераторов контейнеров. Есть ли разница между
auto iter = ivec.begin();
while (iter != ivec.end()) {}
и
auto iter = ivec.begin();
while (iter != ivec.сend()) {}
Допустим, я точно что хочу неконстантный итератор iter, есть ли разница будет ли константным конец вектора?
Bitcoin core
Почему программа всегда выводит: Такого треугольника не существует.
#include <iostream>
#include <locale>
#include <cmath>
using namespace std;
void main(void)
{
setlocale(LC_ALL, ".1251");
int L1, L2, L3, P;
float S;
cin >> L1;
cin >> L2;
cin >> L3;
if (((L1 + L2) < L3) || ((L1 + L3) < L2) || ((L2 + L3) < L1)) {
P = (L1 + L2 + L3) / 2;
S = sqrt(P(P - L1)(P - L2)*(P - L3));
cout << "P= " << P << "\n";
cout << "S= " << S << "\n";
}
else {
cout << "Такой треугольник не существует." << "\n";
}
system("pause");
}
Потому, что ты проебался с IF
Вроде бы и понятно, что языки позволяет писать что угодно, но если так посмотреть, самые бросающиеся векторы в ойти это:
1. Веб
2. Мобильные/десктоп приложения
3. Геймдев
Вроде как из вышеперечисленного кресты актуальны по большей степени только в геймдеве и немного в десктопе(qt), типа если рассматривать какой-то конечный продукт/ПО/приложения на плюсах, то это опять тот же кроссплатформеная шляпа на кьюте или игры. Но ведь этого ничтожно мало, и при этом кресты все-таки дохуя популярны и сейчас, да и я постоянно слышу, что на них реально ебашат поистине интересные штуки, а не говно уровня круд и прочее околоайтишное дерьмецо. Вопрос - где же еще юзается C/C++? Что на них пишут? Приходят в голову всякие штуки по типу компьютерного зрения и разный софт для микроконтроллеров, то есть вещи, более близкие к железу. Еще интересно как в unix-системах байтоебля происходит. Что там делают? Пишут свои модули к линукс-ядрам? Просто я рил не понимаю.
В общем, сумбурно получилось, поправьте/подскажите/поясните есичо, возможно в чем-то из вышесказанного заблуждаюсь.
Да заебали Вы со своей байтоеблей! Какие нахуй байты? Кто их ебет в линуксе? Никто там не долбет себе мозги в погоне за каждым байтиком сто лет как.
Ну бля, я просто так назвал разработку на крестах под линух. Так можешь что-то подсказать, шо там вообще и как?
Нет там ебли с байтами. И больше нихуя нет для тебя. Закрой Visual Studio/VSCode/блокнот/Sublime, и иди пей пивас. Желательно с вонючей вяленой рыбой, которая воняет сложно женская пизда (которую не мыли неделю). Весь твой удел - простая жизнь, простое стояние в очередью за непонятно чем. А когда очередь закончится, ты скажешь что все виноваты кроме тебя, что ты проебал все свое время.
Все твоя участь - в разработках - это быть
создателем Hello World для очередной мега популярной мобильной платформы в очередном супермодном фреймворке.
Единственное твое дитя, которое ты сможешь породить - личинус какой-нибудь жирной овушялке, которую ты обрюхатишь в пьяном состоянии. Так съеби же нахуй с /pr, займись более важными для твоего существование делами.
По существу есть что сказать, или это типичный представитель крестотреда и адекватных здесь нет?
> где же еще юзается C/C++
Весь embedded. От роботов пылесосов и умных домов до самолетов. На микроконтроллерах обычно очень мало памяти, меньше сотни кб, вот например использующиеся для управления рулем многих немецких машин https://www.renesas.com/eu/en/products/microcontrollers-microprocessors/v850/v850e2px/v850e2px4.html
А если это критический узел, то там даже использовать динамическое выделение памяти нельзя, поэтому приходится скатываться в статический си. Но хотя бы ПО поддержки разработки всего этого на крестах.
Тебе что, сука, ногу прострелить, а?
Я НИОСИЛИЛ ЗНАЧИТ АНО НИНУЖНО((((((( МАМ НУ СКАЖИ ИМ.
Ну, вообще я рад, что ты не осилил, меньше даунов в отрасли.
Мимо-сениор-C++-девелопер-из-топ-конторы
Очень рад что ты нихуя интересного не создашь даже в перспективе. Сениоер блядь. Ты хоть в B+ дерево научился: поиску, добавлению, балансировке? Твоя отрасль - у вонючей параши говнопроектов уровня "банкомат".
Епам?
>Renesas
Контора которая проебала все кучу своих активов: целую архитектру SuperH. И знаете, почему этот анон этих петуханов сюда принес?
>Мимо-сениор-C++-девелопер-из-топ-конторы
GlobalLogic
Охуенная блядь контора. Петушня полная. Лучше просто не куда. Был блядь на одном их открытом дне - параша полная. Хуже дерьма в своей короткой жизни не видел. А Renesas слезно просят на остатки их денег сделать демо-хуйню на их чипах. Вот только никому оно нахуй не надо кроме поехавших долбоебов из Renesas. И двух даунов-тимлидов из GlobalLogic.
Скажите руководству, что нужно перестать заниматься этой хуйней откровенной. Renesas жить осталось не долго при все раскладах: ну год, ну может четыре. Займитесь уже нормальным делом, не надо пытаться угодить автобыдлу и всей этой параше. У вас есть нормальные проекты. Кончайте всю это хуйню на С++' и сранных микроконтроллерах, которые завтра они выкинут из-за ненадобности.
кернел драйвера пишу для виртуализации, мартышка с деревьями. Иди побалансируй на ветке.
Ядро на С написано. Виртуализация требует знаний архитектуры исполнения, что-то я намека у С++-даунов на такое не заметил. Убейся, долбоеб. Или же описываешь кратко работу интеловской виртуализации (какие регистры, как страничная память работает в виртуальных машинах) или идешь нахуй.
А что по направлениям для вката посоветуешь для джуна? Просто судя по hh даже в ДС кроме полутора десятка вакансий на qt ничего больше нет
Удвою вопрос.
>А что по направлениям для вката посоветуешь для джуна? Просто судя по hh даже в ДС кроме полутора десятка вакансий на qt ничего больше нет
>
Начни с qt, потом перекатишься внутри конторы или за её пределы на нормальное занятие. Так то с крестового джуна выхлопа чуть более чем нихуя, так что их берут очень неохотно на всякий кал типа инсталяторов, гуёв, тесты писать и прочее.
Судя по строке с инсертом, задумка вставлять не в начало, а после пройденного. Только он не инкрементируется нигде, так что с какого перепугу вайл завершится, неясно. Ну и с инвалидизацией ты уже сам заметил. Кажется, тут требовался не массив, а что-то вроде кучи с логарифмической вставкой. Но без формулировки задания это клуб телепатов. Задание в студию.

>https://docs.microsoft.com/en-gb/cpp/cpp/cpp-language-reference?view=vs-2017
Мда.
> Никаких книжек читать не нужно.
Литературу на лето тебе всё же придётся прочитать.
Принципиальных отличий два:
ссылка, в отличии от указателя, не может быть неинициализированной;
ссылка не может быть изменена после инициализации.
Отсюда и получаем плюсы и минусы использования того и другого:
ссылки лучше использовать когда нежелательно или не планируется изменение связи ссылка → объект;
указатель лучше использовать, когда возможны следующие моменты в течении жизни ссылки:
ссылка не указывает ни на какой объект;
ссылка указаывает на разные объекты в течении своего времени жизни.
я же написал текст задания. всё что есть
*динамический массив
Используй std::array<MyClass>
И? Там отличия в нескольких зарезервированных словах и дополнениях к стандартной библиотеке.
Как это мешает учить С++?
Макака полыхает, и требует, чтобы ей кто-то что доказывал, ололо. Кроме струи в лицо ты ничего не получишь.
И да, С++17 в винкернеле отлично работает, включая вырвиглазное метапрограммирование.
Средипрограммистов на C++ такое с C++98 есть?
Не знаю про сишников, вроде там с С99 какие-то танцы есть, но все знакомые сиплюсплюсеры сидят минимум на 11 уже давно. У нас вся контора сидит на 2017.8 студии, активно юзаем 17 кресты.
С++98 это хороший знак, показывающий 2 вещи.
1. БЕГN оттуда
2. Начальство полные дебилы
В этом нет логики. По сути сишники сейчас это именно олдфаги, застрявшие на старой версии. Иначе бы они просто перешли на кресты. Си приходится больше страдать, но бенефитов ноль.
А C++ пацаны ждут новый стандарт и перекатываются как можно быстрее.
>Нет, С++ до 2011 был ужасен
Да норм он был. Из реально нужного только rvalue. Остальное - параша для хипстеров и темплейтных пердоликов.
Странный ты. C++11 это дополнение поверх с++98/03. И если в бочку говна добавить ложку мёду, то всё равно говно получится (хотя тебе видимо понравилось и хочется добавки).
>Добавили слой меда, который можно есть, не докапываясь к говну снизу
В том то и дело, что черпать говно тебе придется все равно, а сахар только делает говно более липким.
>Правда что плюсы искусственно переусложнены
Нет, они сложные абсолютно естественно. Если проследить историю появления всех фич, то видно, что это нормальный эволюционный процесс.
https://vk.com/id421275318
>Средипрограммистов на C++ такое с C++98 есть?
Нет. Некросишку поддерживают потому, что под некоторые платформы есть только сишный компилятор старого стандарта. В те года для небольшой команды написать компилятор сишки было вполне посильной задачей, поэтому и велосипедили. Для крестов это в принципе нереально, поэтому с самописным компилятором не ебутся, а пишут бекэнд для gcc/clang, и получают последний стандарт крестов автоматически.
Ты несёшь полный бред. Есть такое понятие, как сырой язык. Хорошая идея, но не доработано. Вот, доработали. И дорабатывают дальше.
Нет. У компиляторов свое внутреннее представление, которое транслируется в машинный код.
сколько в час платишь?
А чего, когда появился clang, заливали, какой озуенно он крутой, потому что сначала код на ЯПВУ транслировался в язык LLVM, если gcc делает то же самое?
>если gcc делает то же самое?
С GCC гораздо сложнее работать. Столлман специально все усложнил, чтобы копирасты не спиздили, в итоге сам себе хуже сделал.
То есть ты за неделю не смог заменить int на Figure* и проверить, будет ли это работать?
>Есть такое понятие, как сырой язык.
Язык 40 лет сырой, и все не высохнет никак. Это о многом говорит.
>Напишите программу, проверяющую корректность предложений в сооветствии с правилами "английской грамматики" из раздела 6.4.1 (пик 1). Будем считать, что каждое предложение заканчивается точкой, окружённой пробельными символами. Например, фраза birds fly but the fish swim . является предложением, а фразы без точек или без пробела перед точкой — нет. Для каждого введённого предложения программа должна просто отвечать "Да" или "Нет". Указание: не возитесь с лексемами, просто считывайте данные в объект string с помощью оператора >>.
Для начала я решил написать проверку простого предложения, состоящего из артикля+существительного+глагола ИЛИ из существительного+глагола. Если бы предложения состояли только из артикля+существительного+глагола, а ввод без артикля считался ошибкой, то это было бы довольно просто.
Поэтому я поступил так:
1. Проверяю, является ли первое слово артиклем "the".
2. Если является, то всё хорошо и можно идти проверять дальше.
3. Но если не является, то стоит задуматься: а что если это не артикль? А если это существительное, после которого идёт глагол? Тогда надо проверить второе слово. И если это глагол, то это полноценное предложение, с которым можно работать дальше.
Написал https://pastebin.com/5CGxZvtF
И здесь всё хорошо. Если ввести существительное и глагол, то программа ответит, что это нормальное предложение. Однако что-то идёт не так, и программа бесконечное количество раз повторяет какую-то функцию, вылетая через несколько секунд (пик 2). Что она такого делает?
Начал вводить слова по одному и обнаружил, что программа проверяет слова срзау, не дожидаясь точки (пик 3).
Просто непонятно, почему сложность заданий так резко возросла. Раньше всё понимал и мог сделать всё, немного подумов. И вдруг >пук, и я ничего не понимаю без чужих решений, ничего не могу сделать. Это сильно бьёт по самооценке.
>Ты несёшь полный бред. Есть такое понятие, как сырой язык. Хорошая идея, но не доработано. Вот, доработали. И дорабатывают дальше.
>
Да языку уже давно чистка и рефакторинг нужен. Вместо этого "дорабатывальщики" лепят к нему каждые 3 года новый фасад показывая при этом чудеса анальной эквилибристики.
Во-первых, читать слова и в цикле, и в функции проверки это плохая идея.
Во-вторых, какого хуя у тебя заголовки окон такого же цвета, как у меня? Ты следишь за мной, сука?
В-третьих, нахер вообще вызывать sentence() в цикле? В сочетании с первым пунктом это скорее всего и приводит к проёбу.
Рекомендую прочитать первое слово и сразу вызывать sentence(). А цикл выкинуть впизду.
У вас там контекстно-свободные грамматики не проходили ещё? Для этого случая есть алгоритм рекурсивного спуска. Чтобы его написать тебе даже не нужен мозг, тебе нужен только палец чтобы набирать текст.
https://ideone.com/X26IdT
>У вас там контекстно-свободные грамматики не проходили ещё?
Я впервые слышу такое словосочетание, так что видимо неть...
>В-третьих, нахер вообще вызывать sentence() в цикле?
Так сделано у Страуструпа в этой же главе http://rgho.st/84XbBkTV6 И в циклах он тоже тоже что-то считывает, но у него всё это реально работает.
>Винкернеле
Пускай струи поноса дальше. Это говно годится разве что для запуска игорь написанных макаками под ДиректХуикс.
>А чего, когда появился clang, заливали, какой озуенно он крутой, потому что сначала код на ЯПВУ транслировался в язык LLVM
Трансляцию ЯВУ в промежуточную форму делает фронтенд, и под LLVM его писать действительно удобнее. Бэкенд транслирует из внутреннего языка компилятора в бинарник. Их сложно писать для любого компилятора.
>У вас там контекстно-свободные грамматики не проходили ещё?
У вас там С++-дегенератов генераторы GLR-анализаторов не проходили? Или под виндой не модно так делать?
>GLR-анализаторов
>для LL(1) грамматики
Раз хочешь выебнуться, написал бы про парсер-комбинаторы хотя бы
А я так и знал, что найдется мудак, который предложит использовать генератор парсеров для решения этой laba4.cpp
Еще и дохуя сложный, и не совсем подходящий для твоей грамматики. Корми говном с молоду - моя политика.
Дебил на ОС без реальных (во всех, к слову, смыслах: Linux RT мягкий умеет с патчем) задач триггернулся.
Человек изучает плюсы по книге господина трупа. Там задача, которая легко решается рекурсивным спуском. Он узнает, что это такое, подумает, как реализовать, сделает это и пойдёт дальше xglrvalue ботать. А ты предлагаешь ему зачем-то окунуться в мир парсеров. Причём генерировать даже не LL-генератором, а сразу, мать его, GLR. Что?!
Давай по чистому. У тебя в прошлом семестре был курс компиляторов и ты решил показать всем, какой ты умный?
Дауну без опыта реальной работы (что очевидно по постам) доказывать что-либо бессмысленно. Иди в консольке пердолься на своей некропеке.
Я так увлекся, что скопипастить себе решил в архив это.
Буду честен с тобой: ты - мудак, и пруфов здесь не будет. Благо, весь этот хуяч позволяет мне оставаться достаточно анонимным, в прочем мне настолько на тебя похуй что даже могу реальное имя свое сказать. Но не скажу, ты его позже немного узнаешь. Можешь приехать ко мне: я тебе в лицо лично скажу все что я написал, и мне плевать какого ты возраста.
С++ - ужасный язык от которой меня тошнит, и я пришел в этот тред чтобы от души высраться хорошим жидким поносом. Поносом с весьма зловонным запахом, подобным запаху изо рта старого маразматика Страуструпа.
Все книги и великие "авторы" литературы С++ чем-то похожи на тебя и на LL(1)-парсеры. Они пишут свои высеры со стратегией сверху-вниз: пытаются человеку который еще не понимает базовых концепций втереть кусок непонятного кода в качестве решения. Они также полагаются на одно единственное предположение когда начинают строчить свои охуенной ценности высеры. Почти все такие "охуенные" авторы никогда в своей жизни не написали ничего большего чем строго описанная задача уровня "говно переложить". Они ничего нового не придумали в целом. Переходя к следующей редукции эти придурки не удосуживаются объяснить по каким критериям было принято их решение, и этим, к слову, грешили много авторов в советской научной литературе. Но это еще и не самое страшное.
А страшное самое то что большая часть софта на С++ написана именно под винду. Систему программисты в которой изначально имеют травмированное восприятие реальности: склонны усложнять задачу. Склонны превращать простую программу в ебаный комбайн из кучи непонятного мусора. Вспомните Nero - он же написан на чудесном С++ был, вспомните его 10 версию на закате эры оптических дисков! Вспомните мрази! А теперь мрази вспомните k3b - программу которая в принципе нихуя не делал: она тупо собирала файлы и передавала список на growisofs, wodim и прочие утилиты, которые делали ОДНУ СУКА ПРЯМУЮ ЗАДАЧУ. И были написаны они и на С++, и на С. Но вот проблема количество абстракции в С++ коде близилось к нулю в этих утилитах.
Признаюсь, в этом случае я также погрешил предложив ему GLR и разобраться в парсерах самостоятельно пощупав как они себя будут вести, но сделал я это не просто так: объясню позже.
Так вот да, подобные люди переписывают нахуй не нужный никому код, потому что не могут разобраться в более высоких концепциях: перейти от более низкого к высокому, к высокой теории, которая да проигрывает, но наталкивает на верный путь. Во все то говно, против которого и боролись ООП-борцуны в конце 80-х, так и прямо наступают С++ программисты: KISS и DRY, суки, KISS и DRY.
Так вот да, почти все С++ проекты размером больше чем то что я привел, выбрасываются на помойку после нескольких лет разработки, и переписываются с нуля. Из-за того что когда количество говна в системе классов становится запредельным - проще начать все с нуля. Ничего не напоминает? Именно потому я не люблю С++ и все то дерьмо, которое рождают люди вроде тебя. И пусть мои слова лягут на твою душу бальзамом. Проблема твоя в том что ты настолько глуп и уперт, что не можешь освоить что-то новое. И дело здесь не только в хуевизне С++, но и в целом в плохой применимости ООП к проектам отличным от академического говна. У меня был пример на С# и Microsoft.NET, моим наставником тогда был охрененный специалист, и со временем - мы всеравно погрузли в говне как и все до нас. Вот оно как. Ну и да, то что С++ ужасен когда дело касается больших проектов, только подливает масло в огонь. Не верите - взгляните на Monotone, на Google Chromium и его время компиляции, пожирание памяти и тормоза. Все эти проекты написаны на крутейшем языке С++. На то как Mozilla заебались с С++ и начали перепиливать Firefox на язык который они сами сделали, чтобы не видеть весь этот ужас.
И последнее - компиляторы я никогда не писал, хотя может быть и что-то напишу. У меня другие задачи, эквивалентны по интересности, и тебе постигнуть их не дано в силу приобретенной глупости: ты слишком много кушал мэйнстрима, детка. Честно сказать, и не было у меня информатики в университете, прости такие люди как ты заняли все бюджетные места, и я решил что мне места там нет, если туда такое рвение у всех каловых масс. Учить принудительно x86 реального режима в 2013-м году я также не хотел особо. С тех пор меня бесят почти все программисты уровнем ниже тех, кто сидит в LKML или пилит GCC. Не может быть хорошим то, куда идут массы. И я в этом убедился. прямо здесь, читая говно которое изливаешь ты в нерабочее время на говнофоруме.
Учитесь и развивайтесь, учитесь приводить правильные доводы во внутреннем монологе с собой. И тогда вы быстро начнете понимать что говно в обертке, а что настоящий инструмент. Удачи!
Я так увлекся, что скопипастить себе решил в архив это.
Буду честен с тобой: ты - мудак, и пруфов здесь не будет. Благо, весь этот хуяч позволяет мне оставаться достаточно анонимным, в прочем мне настолько на тебя похуй что даже могу реальное имя свое сказать. Но не скажу, ты его позже немного узнаешь. Можешь приехать ко мне: я тебе в лицо лично скажу все что я написал, и мне плевать какого ты возраста.
С++ - ужасный язык от которой меня тошнит, и я пришел в этот тред чтобы от души высраться хорошим жидким поносом. Поносом с весьма зловонным запахом, подобным запаху изо рта старого маразматика Страуструпа.
Все книги и великие "авторы" литературы С++ чем-то похожи на тебя и на LL(1)-парсеры. Они пишут свои высеры со стратегией сверху-вниз: пытаются человеку который еще не понимает базовых концепций втереть кусок непонятного кода в качестве решения. Они также полагаются на одно единственное предположение когда начинают строчить свои охуенной ценности высеры. Почти все такие "охуенные" авторы никогда в своей жизни не написали ничего большего чем строго описанная задача уровня "говно переложить". Они ничего нового не придумали в целом. Переходя к следующей редукции эти придурки не удосуживаются объяснить по каким критериям было принято их решение, и этим, к слову, грешили много авторов в советской научной литературе. Но это еще и не самое страшное.
А страшное самое то что большая часть софта на С++ написана именно под винду. Систему программисты в которой изначально имеют травмированное восприятие реальности: склонны усложнять задачу. Склонны превращать простую программу в ебаный комбайн из кучи непонятного мусора. Вспомните Nero - он же написан на чудесном С++ был, вспомните его 10 версию на закате эры оптических дисков! Вспомните мрази! А теперь мрази вспомните k3b - программу которая в принципе нихуя не делал: она тупо собирала файлы и передавала список на growisofs, wodim и прочие утилиты, которые делали ОДНУ СУКА ПРЯМУЮ ЗАДАЧУ. И были написаны они и на С++, и на С. Но вот проблема количество абстракции в С++ коде близилось к нулю в этих утилитах.
Признаюсь, в этом случае я также погрешил предложив ему GLR и разобраться в парсерах самостоятельно пощупав как они себя будут вести, но сделал я это не просто так: объясню позже.
Так вот да, подобные люди переписывают нахуй не нужный никому код, потому что не могут разобраться в более высоких концепциях: перейти от более низкого к высокому, к высокой теории, которая да проигрывает, но наталкивает на верный путь. Во все то говно, против которого и боролись ООП-борцуны в конце 80-х, так и прямо наступают С++ программисты: KISS и DRY, суки, KISS и DRY.
Так вот да, почти все С++ проекты размером больше чем то что я привел, выбрасываются на помойку после нескольких лет разработки, и переписываются с нуля. Из-за того что когда количество говна в системе классов становится запредельным - проще начать все с нуля. Ничего не напоминает? Именно потому я не люблю С++ и все то дерьмо, которое рождают люди вроде тебя. И пусть мои слова лягут на твою душу бальзамом. Проблема твоя в том что ты настолько глуп и уперт, что не можешь освоить что-то новое. И дело здесь не только в хуевизне С++, но и в целом в плохой применимости ООП к проектам отличным от академического говна. У меня был пример на С# и Microsoft.NET, моим наставником тогда был охрененный специалист, и со временем - мы всеравно погрузли в говне как и все до нас. Вот оно как. Ну и да, то что С++ ужасен когда дело касается больших проектов, только подливает масло в огонь. Не верите - взгляните на Monotone, на Google Chromium и его время компиляции, пожирание памяти и тормоза. Все эти проекты написаны на крутейшем языке С++. На то как Mozilla заебались с С++ и начали перепиливать Firefox на язык который они сами сделали, чтобы не видеть весь этот ужас.
И последнее - компиляторы я никогда не писал, хотя может быть и что-то напишу. У меня другие задачи, эквивалентны по интересности, и тебе постигнуть их не дано в силу приобретенной глупости: ты слишком много кушал мэйнстрима, детка. Честно сказать, и не было у меня информатики в университете, прости такие люди как ты заняли все бюджетные места, и я решил что мне места там нет, если туда такое рвение у всех каловых масс. Учить принудительно x86 реального режима в 2013-м году я также не хотел особо. С тех пор меня бесят почти все программисты уровнем ниже тех, кто сидит в LKML или пилит GCC. Не может быть хорошим то, куда идут массы. И я в этом убедился. прямо здесь, читая говно которое изливаешь ты в нерабочее время на говнофоруме.
Учитесь и развивайтесь, учитесь приводить правильные доводы во внутреннем монологе с собой. И тогда вы быстро начнете понимать что говно в обертке, а что настоящий инструмент. Удачи!
- AutoCAD. Правильный Microsoft.NET, отличный ООП. Лучшие в мире пожирания памяти, крутейшие вылеты с ошибками при работе над большим проектом.
- Matlab. 10 гб со всеми его "тулбоксами". Комментарии здесь излишни. Начали "за здравие", закончили "за упокой".
- Adobe After Effects и почти весь дизайнерский кал от Adobe - вылетает направо и налево при нажатии не той кнопки или малейших ошибок со стороны ОС. Разработчики не поняли что исключения в ВЫСОКИХ языках МОЖНО обрабатывать (НИХУЯ СЕБЕ ПОДРОБНОСТЬ). Размеры этого кала также радуют.
- Adobe Flash - этот ужас, слава Господу, уже почти эрадицировали с просторов всемирной паутины. Куча конфузий типов в С++ (да-да, дорогие мои) - в этом треде вы такое даже не обсуждали, и много других штучек, которые позволяли долгое время нагибать целые компании при помощи страничек с веселой анимацией в правильном браузере Internet Explorer.
И это я только вешки затронул. Мне продолжать?
Пусть дадут альтернативу. Нормальную, а не Rust. А то там в rust треде срач через срач.
Но меня же от него отказывают.
Честно, я вручную управляю памятью только когда использую сишные библиотеки (которые свои аллокаторы предоставляют). В 90% своего же кода мне вполне хватает unique_ptr.
RAII везде

Это работает, но я уверен, что оно не должно так работать.
1 - пишет "true" только если находит слово "the", даже если оно идёт после точки.
2 - несколько "the" подряд по идее должны вызывать "false".
3 - пишет "true" только если вбить несколько предложений. На одно предложение почему-то не реагирует.
Привет аноны. На связи кун 19 лет. Учу c# из-за unity и для запасного плана, если придется вкатываться во что-то серьезное учу c++. Первое время охреневал от синтаксиса c++ и как он разница с с#, но со временем свыкся ибо похожи, как по мне.
Скоро окончу шарагу и пойду учится на информационную инженерию из-за того что нравятся реализовать идеи или мысли в "реальные" объекты, сущности, почти чувствовать себя богом. Из-за этого начал изучать unity, а потом и c++.
Хотел спросить:
Стоит ли выкатываться из уютного c# в жестокий с++.
Даст ли мне высшее образование то что я не смогу получить, выучить?
И стоит с моими фантазиями выбрать именно этот факультет.
Ещё хотел спросить зачем писать
std::cout если можно объявить namespace std? Это просто как один из примеров.
И хотел спросить где я обосрался и как скоро мои фантазии о программировании превратятся в крах. И какое будущее ждет с++ и может с#
Хотелось бы ещё получить пару советов для начинающего.
Заранее спасибо.
>Стоит ли выкатываться из уютного c# в жестокий с++.
Нет
>Даст ли мне высшее образование то что я не смогу получить, выучить?
Если пойдешь да компьютерную специальность - нет, не даст.
>И стоит с моими фантазиями выбрать именно этот факультет.
Да.
>зачем писать std::cout если можно объявить namespace std?
Затем, что в C++ не поощряется подключать то, что тебе не нужно. Если ты используешь cin, cout, да endl, то подключать всё пространство std - моветон (хотя для новичка допустимо).
>И какое будущее ждет с++ и может с#
C# - не такой высокий порог вхождения, большая конкуренция, галеры, требуется владеть довольно большим стеком технологий
С++ - довольно высокий порог вхождения, часто требуется соответствующая математическая база, туева хуча возможностей выстрелить себе в ногу, мало вакансий, зарплата выше.
>создал динамический массив, и при заполнение arr.name звезду уже писать не нужно
Хуйню какую-то написал. Код в студию...
Сейчас уже голова не работает что-то в пример привести, студию закрыл. А там понял что хуйню написал, забыл сказать что я структуру использовал. Вопрос был в том, почему при записи в отдельный элемент динамического структурного массива не нужно писать звёздочку перед элементом.
Можно для мимонуба на пальцах, что это значит?
Шкурный вопрос. Вакансии по крестам обычно на мидлов и сеньйоров, джуна вообще не видел. Есть ли июню смысл переобучится побыряку на какую-то пыху или чистое си или яваскрипты, чтобы наработать опыт, а потом переобучиться обратно на кресты?
Сколько раз ты из трех накладных ногтей наберешь пять, чтобы сделать клиентке руку, а сколько останется лишних накладных ногтей?
Дай тебе бог здоровья и крепкого разума. Спасибо
Что скажете?
Распидор не палится.

У меня охерительно важный реквест по std::move в лямбдах для асинков. Доставьте ту самую пикчу с фурриёбами.


>Так она же блять одна.
В пространстве имен std уже есть функция swap.
>Как пофиксить проблему?
Переименую свою функцию, например в myswap.
>AutoCAD. Правильный Microsoft.NET, отличный ООП. Лучшие в мире пожирания памяти
Он и до перехода на дотнет такой был, это норма. Тем более сейчас, когда по 9000 слоёв абстракции везде.
>Adobe After Effects
>питушок пытается запускать в вайне
>страдания
Ну ок.
>Adobe Flash - этот ужас, слава Господу, уже почти эрадицировали с просторов всемирной паутины.
Не самый плохой ужас, на фоне современных браузеров — и это при том, что писался непрофессионалами. У хрома любой модуль дырявее всего флэша целиком.
Так про что твои вскукареки?
Подскажите почему не работает. Должен ведь по диагонали обменять значения. Если убрать присваивание ar[rows][cells] = temp то значения меняет. Оно по идее свапает всё обратно, но я не пойму почему.
Всё, уже не надо. Оказывается нужно, чтобы строки шли на 1 шаг быстрее чем столбцы, а иначе цикл повторяется и обратном порядке
Аттрибуты - это то, что раньше делалось прагмами. В идеале, оно тебе не должно быть нужно вообще, но когда ты начнёшь хуячить в продакшн, то какую-нибудь проблему ты сможешь решить с помощью аттрибутов.
https://en.cppreference.com/w/cpp/language/attributes
Это копия, сохраненная 20 октября 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.