М.Двач / Программирование

Двач.hk прислал битые данные.
Вы видите копию треда, сохраненную 26 апреля 2018 года.
Можете попробовать обновить страницу, чтобы увидеть актуальную версию.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

C++ №67 # OP 27 фев, 18:18 1147021 В конец треда | Веб

22 Кб, 956x72440 Кб, 1620x774

Вместо шапки — https://github.com/sosachbot/cppthreadhat/wiki
Ответы на все вопросы:
- http://en.cppreference.com/w/
- http://www.cplusplus.com/reference/
Прошлый отказывается умирать в >>1129255 (OP) (OP)

Ответы471475154954469

27 фев, 19:21 2 1147068

Хочу стать программистом.

Ответы47074

27 фев, 19:25 3 1147074

>>1147068
Ну, начинать надо не с плюсов

Ответы4707650569

27 фев, 19:26 4 1147076

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

Ответы47080470824761949646

27 фев, 19:27 5 1147079

Хотел задать вопрос про обращение из static функции к нестатическим членам класса, но вовремя понял что всё - тлен.
Значит ли это что я стал хорошим программистом?

27 фев, 19:28 6 1147080

>>1147076
Конечно можно. Но ты же бездельник.

Ответы47083

27 фев, 19:29 7 1147082

>>1147076
За месяц? Даже если бы ты сказал за год, я бы рассмеялся.

27 фев, 19:29 8 1147083

>>1147080
А с чего начать? Я начну... Только не знаю с чего, а родители на работу гонят. Вот я бы за месяц подучился и связался с ними, воот. Только помоги.

Ответы4709747621

27 фев, 19:53 9 1147097

>>1147083
Шилдт Г. С++ Базовый курс

Ответы47100

27 фев, 19:55 10 1147100

>>1147097
А он не устаревший? Я просто посмотрел, в шапке в основном 15+ года, а Шилдт 2010.

Ответы47106

27 фев, 20:00 11 1147106

>>1147100
Завали ебало и делай что сказал он.

Ответы47111

27 фев, 20:03 12 1147111

>>1147106
Хорошо, уже качаю.

Ответы47114

27 фев, 20:09 13 1147114

>>1147111
На самом деле не особо дрочи на определенную лит-ру, которую советуют. Попробуй все и реши сам что лучше. Часто тут советуют хуйню с кучей воды.страуструп

27 фев, 20:44 14 1147147

>>1147021 (OP)
Вопрос по указателям. Точнее их применению.
Положим, есть функция MessageCheck(), обрабатывающая по несколько сообщений за раз.
Есть сообщения.
[code]
std::string Message1 = "Msg1";
std::string Message2 = "Msg2";
std::thread(MessageCheck, Message1, Message2).detach();
[/code]
Если происходит изменение значения переменной Message1, которая была передана в качестве параметра
[code]
Message1 = "Msg3";
[/code]
то, в случае, если работа потока ещё не была завершена к моменту присвоения нового значения и значение Message1 всё ещё использовалось в обработке данных, результат функции MessageCheck() может оказаться неправильным. Если я не буду использовать указателя, то такой проблемы не возникнет. Я правильно рассуждаю?
Это что касается обработки данных.
Есть вопрос в части быстродействия.
Происходит ли работа с указателями быстрее, чем с просто переданными в качестве параметров переменными? По сути, в последнем случае получается же, что для переданного значения вновь выделяется какой-то адрес памяти и туда данные заносятся снова. Это же вызывает некоторые затраты в ресурсах и времени?
Ну и третий. Pointer-to-pointer, то бишь что-то типа
[code]
int *UserArgument = 6;
[/code]
как это вообще понимать? Зачем нужен указатель на указатель?
Какая в этом вообще логика?

Ответы4715247155

27 фев, 20:48 15 1147152

>>1147147
Проебался с разметкой. Щас пофикшу.

27 фев, 20:55 16 1147155

>>1147147
https://pastebin.com/MEZ66amH
Три блока для каждого из случаев.

27 фев, 22:25 17 1147217

86 Кб, 1128x142017 Кб, 509x533

Анон, а как ловить свои сообщения? Я попробовал пикрилейтед, что-то не получается.

Ответы4722347278

27 фев, 22:35 18 1147223

>>1147217
Вопрос снят чтением мануалов.

28 фев, 00:07 19 1147278

133 Кб, 1062x234446 Кб, 1022x4707 Кб, 558x188

>>1147217
Вопрос в изменённой форме остаётся.
Как ловить свои сообщения, если винапишный message loop крутится в отдельном qt-треде?
Или какой вообще способ просто остановить этот луп из основного треда?

Ответы4768547981

28 фев, 00:57 20 1147294

Стоит ли учить? Допустим, что у меня дохуя свободного времени и я ищу себе хуйню в которой смогу реализоваться. Будет ли это актуально через 10, 15, 20 лет? Впрочем, я, наверное, за такое количество лет уже и перекатиться смогу. В любом случае, главный вопрос такой - стоит ли тратить сейчас примерно год-полтора на хорошее изучение плюсов?

Ответы4745247624

33 Кб, 1200x400
28 фев, 03:53 21 1147320

Ответы4907349074

28 фев, 13:28 22 1147445

Сап, плюсач. Пишу проектик на Qt. Проблема такова: когда запускаю процесс (QProccess), то через время главное окно перестает отвечать. Появилась идея запустить функцию с данным процессом асинхронно. Кто-нибудь может кратко объяснить как вызвать функцию асинхронно (которая меняет форму в основном потоке. или так нельзя?) и не вешает основное окно? Спасибо.

28 фев, 13:38 23 1147452

>>1147294
C++ будет актуален вечно

Ответы4745447624

28 фев, 13:40 24 1147454

>>1147452
Почему?
А питон, яваскрипт и пхп?

Ответы474964754447582

28 фев, 15:15 25 1147496

>>1147454
И Питон, и Яваскрипт и ПХП. Просто потому что на них уже написана тонна кода, который никто не будет переделывать.

Ответы47506

28 фев, 15:27 26 1147506

>>1147496
Про кобол тоже так думали.

28 фев, 16:10 27 1147544

>>1147454
Потому что единственный годный язык, работающий везде, и к тому же очень быстрый

28 фев, 17:26 28 1147582

>>1147454

> C++, php, Java, C#, JS, python
Эти можно учить не боясь ни за что.

28 фев, 18:47 29 1147619

>>1147076
>за месяц подучиться
отпишись через месяц, плиз, в тред
как у тя там успехи
серьезно

28 фев, 18:49 30 1147621

>>1147083
>а родители на работу гонят
ну епт
иди работай грузчиком, в магазы может возьмут товар выставлять, дворником, или еще куда
кресты ты НИКАК не освоишь за короткое время
НИКАК

28 фев, 18:52 31 1147624

>>1147452
боже, да зачем вы вкатывальщиком кресты советуете, они только теряют свое время и все
>>1147294
за год-полтора ты сможешь стать нормальным веб-кодером если будешь въябывать
пиздуй в пхп тред, там сумашедший альтруист оп уже который год натаскивает таких как ты

Ответы4762747668

28 фев, 18:59 32 1147627

>>1147624
Ну а если я не хочу веб? Тошнит от индустрии сайтов и пр.

Ответы47629

28 фев, 19:03 33 1147629

>>1147627
>я не хочу веб
1С тогда

Ответы47668

28 фев, 20:46 34 1147668

>>1147624

> боже, да зачем вы вкатывальщиком кресты советуете, они только теряют свое время и все
Соси длинный и толстый хуец. Я вкатился в C++ и не жалею.

> там сумашедший альтруист оп уже который год натаскивает таких как ты.
Хуйня это. Самому легче научиться.

>>1147629
>1С тогда
Ты на порог вхождения ориентируешься?
Я не люблю 1С. И для меня в 10 классе скачать репозиторий blender'а и набрать около сотни мерджов за 2 года было легче, чем было бы выседить оффлайн курсы по этой хуёне.

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

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

Ну или стадишь C++ и участвуешь в годных проектах.

Ответы47671

28 фев, 20:54 35 1147671

>>1147668
>Ну или стадишь C++ и участвуешь в годных проектах.
Ну а ты в каких участвуешь? Древнее легаси или йоба-софт?

Ответы47730

28 фев, 21:28 36 1147685

Тактический бамп >>1147278

Пока сделал костыль через наследование от QAbstractNativeEventFilter и ловли им юзердефайнд сообщения, которое при его ловле заставляет сделать UnhookWindowsHookEx() и ловля сообщений прекращается. Но тред не удаляется, видимо winapiшный луп остаётся жив и препятствует его удалению.

Ответы47981

28 фев, 22:37 37 1147730

>>1147671
Ну там, даже не знаю.

ГИС Панорама, Компас, ABBYY, 1С(как разработчик платформы), Мой Офис, и многое другое. Куда лучше чем "сайт визитка".

Ответы4773147733

28 фев, 22:38 38 1147731

>>1147730
PS: то, где реально мои знакомые работали
PSS: своё место не скажу

28 фев, 22:43 39 1147733

>>1147730
Например, в моем регионе нет офисов этих компаний, мне теперь в дс ехать за работой?

Ответы47734

28 фев, 22:45 40 1147734

>>1147733
Ты живёшь в Сибирском лесу?

Я в захваченном санкционном Крыму без IT. И есть.

Ответы48974

49 Кб, 512x512
1 мар, 00:17 41 1147772

Хелп, с++
Помогите пжлст с прогой.
Мне дано целое положительное число. Требуется вывести на экран кратность наименьшего среди всех его простых делителей.
Ну там, допустим число 83006= 2 7 7 7 11 * 11
Наименьшее это 2-ка, и его кратность на экран...

С меня нз.. Донат на пиво там, хех
Если что вот телега @komanni
В будущем может прост тоже потребоваться помощь.. я буду так же спонсировать
ВЫРУЧИ АНОНИМ МОЛЮ!

Ответы47790478004792748261

1 мар, 01:05 42 1147790

>>1147772
А что мешает тупо забрутфорсить? Первое число на которое делится без остатка - твое.

https://scastie.scala-lang.org/IKRj3LkgSVaIKMVkz7JMuA

Ответы47864

1 мар, 02:17 43 1147800

>>1147772
перебор и сравнение остатка от деления с нулём. Скинуть счет?

1 мар, 09:52 44 1147864

>>1147790
Мешало моё слабоумие
Спасибо большое, падаю в ноги

75 Кб, 600x400
1 мар, 11:24 45 1147891

Ничего не выходит, ((9((
Если получится самому, скину в трехд

1 мар, 12:39 46 1147927

>>1147772
Ну, а в чём проблема, анон?
int YourFunc(int Num)
{
int i = 2;
while (Num%i!=0)
i++;
int co = 1;
while(Num%i == 0)
{
Num/=i;
co++;
}
return co;
}

Ответы4792947939

1 мар, 12:40 47 1147929

>>1147927
Быстрофикс
void YourFunc(int Num)
{
int i = 2;
while (Num%i!=0)
i++;
int co = 1;
while(Num%i == 0)
{
Num/=i;
co++;
}
std::cout<<co;
}

Ответы47939

550 Кб, 720x1280
1 мар, 12:52 48 1147937

Хмм, у меня вышла такая ебола
Теперь осталось чтоб он мне выводил кратность наименьшего

Ответы479624803749236

1 мар, 12:53 49 1147939

>>1147929
>>1147927
Это слишком высший язык для 60 летнего преподавателя

Ответы47961

1 мар, 13:26 50 1147961

>>1147939
чё?
Обычная тупая функция

1 мар, 13:27 51 1147962

>>1147937
Это жесть какая-то, для задачи всё сильно переосложнено. Тебе же не надо все делители хранить.

Ответы47973

1 мар, 14:08 52 1147973

>>1147962
Хмммм

13 Кб, 1100x254
1 мар, 14:41 53 1147981

>>1147685
>>1147278

Если кому интересно, я обосрался. Но в процессе я ушёл от winapiшного лупа и теперь весь захват и механизм его остановки укладывается в 4 недострочки

1 мар, 16:46 54 1148037

>>1147937
>пик идентификатор массива
ТРЕБУЮТ НАШИ СЕРДЦАА!!!

Ответы50726

1 мар, 23:17 55 1148261

>>1147772
https://ideone.com/rHCVpt
Если я правильно понял слово кратность.

2 мар, 00:36 56 1148316

Откуда люди берут знания о всяких способах сборки, делают руками мейкфайлы и сотню каких-то технологий? Смотрю гитхаб и охуеваю. Где все это узнать?

Ответы48786

2 мар, 02:39 57 1148341

Сап плюсаны.
Вопрос по stl-контейнеру std::deque.
Если из одного потока делать только push_back, а из другого только pop_front (с предварительной проверкой, что оно не пустое), нужно ли заморачиваться синхронизацией?

Ответы483424864650576

2 мар, 02:41 58 1148342

>>1148341
Хотя, наверное, если это непрерывный в памяти контейнер (как вектор), то синхронизация-таки нужна, чтобы контейнер ВНЕЗАПНО не начал переезжать на новое место после очередного push_back, а в это время ты пытаешься выбросить первый элемент вызовом pop_front.

2 мар, 02:43 59 1148344

За год обучения c++ можно уже будет понимать и писать большую часть программ?

Ответы48345

2 мар, 02:53 60 1148345

>>1148344
>За год обучения c++ можно уже будет понимать
Смотря какое обучение.
Я вот работаю Qt-формошлепом уже полтора года и многие примеры кода, которые вываливают на форумах, не понимаю (точнее, не хочу тратить больше условного времени N, чтобы вникнуть). Особенно шаблонно-замороченные.
>и писать большую часть программ?
Ну, по поводу написания софта некоторая уверенность появилась, но сильно не хватает навыков проектирования. Вот щас ради развлечения пишу одну софтину для управления железом через ком-порт, уже в третий раз логику переделываю.

Ответы4878549070

2 мар, 20:17 61 1148646

>>1148341
http://eel.is/c++draft/res.on.objects

2 мар, 23:32 62 1148785

>>1148345
где работаешь? Оборонка?

Ответы48932

2 мар, 23:42 63 1148786

>>1148316
В мейкфайлах сложного ничего нет

3 мар, 00:56 64 1148814

Сап, анончики. Двойная диспетчеризация через класс Visitor для шаблонного класса. Как это сделать блятб?!

Ответы4894449096

3 мар, 13:39 65 1148932

>>1148785
>где работаешь? Оборонка?
Госконтора, но ни с чем серьезным не связанная.

sage 3 мар, 14:39 66 1148944

>>1148814
Через анафорические лямбды.

3 мар, 15:30 67 1148974

>>1147734
>Ты живёшь в Сибирском лесу?
Ростовская область. Есть только 1C.

3 мар, 18:13 68 1149057

Антоны, привет. Как сделать массив функций?

Ответы49060

3 мар, 18:17 69 1149060

>>1149057
auto x = / то, как ты создаёшь нужный тебе массив /;

А так почитай про указатели на функции

Ответы49063

3 мар, 18:19 70 1149063

>>1149060
Типо массив указателей на функции?

3 мар, 18:43 71 1149070

>>1148345
С пониманием шаблонного поноса та же хуйня
Мимо 5 лет

Ответы49076

3 мар, 18:48 72 1149073

>>1147320
Объясните квадратные скобки, впервые вижу. У лямбд список захвата перед круглыми скобками, точно не он.

Ответы49093

3 мар, 18:54 73 1149074

>>1147320
Да там и внутри круглых хуй пойми чт.о

Ответы49093

41 Кб, 442x355
3 мар, 19:01 74 1149076

>>1149070
>С пониманием шаблонного поноса та же хуйня
Я вообще психологическую травму получил с этого дерьма.

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

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

Давай смотреть, откуда это. Оказалось, есть такой утырок по фамилии Александреску -- и точно! -- нашел на полке в конторе его книгу. Сперва обрадовался. Пробежался. Некоторые идеи уловил, но код от этого читать легче не стало. Причем, тот проект был прикладной приложухой, в котором полиморфизм, обеспечиваемый шаблонами, нахуй не нужен был.

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

Ответы490834910549239

3 мар, 19:08 75 1149083

>>1149076
http://lurkmore.to/_/118731#mws_GDP3wId
Хотя мне больше понравилась эта. http://lurkmore.to/_/118731#mws_i5CVAqm

Ответы49099

3 мар, 19:33 76 1149093

>>1149074
>Да там и внутри круглых хуй пойми чт.о
Тем не менее, это валидный синтаксис.
>>1149073
>Объясните квадратные скобки
https://cdecl.org/?q=char+(&F())[1]
(const — это метод константный)

3 мар, 19:37 77 1149096

>>1148814
соответствующую статью в gof читани, если нулевой
далее тебе надо будет динамический полиморфизм классической реализации заменить на статический, вот статейка кратенько:
habrahabr.ru/post/208718/
уточни у препода чё он конкретно хочет, тк есть разные варианты реализации под разные применения

3 мар, 19:46 78 1149099

>>1149083
Спасибо, поржал.
Вот это вообще жиза, ведь у этого сатанинского трактата и вправду нет переизданий:
>Сразу после того, как он дописал последнюю главу, ему сделали последнюю лоботомию и писать книги ему больше не хотелось.

3 мар, 20:18 79 1149105

>>1149076
Полистал книжку, не, ну его на хуй, от этого бежать надо. Этот тот самый монстр со второго оппика, который умоляет о смерти.

Ответы49130

3 мар, 21:24 80 1149130

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

3 мар, 23:25 81 1149209

Ананасы, объясните зачем нужны не member функции (например std begin и end)? Какая разница между vector.begin() и std::begin(vector)?

Ответы49216492194924349246

3 мар, 23:40 82 1149213

Не ведитесь на шапку, новички. Лучше этот пост прочитайте.
https://pro-prof.com/books/cpp

Ответы4921849245

3 мар, 23:51 83 1149216

>>1149209
первое: они более универсальны
второе: запись получается еще более лаконична
вообще, рекомендую

3 мар, 23:52 84 1149218

>>1149213
ну да, шапочка так себе
если бы мне не были безразличны новичесы, можно было бы ее и попричесать

3 мар, 23:54 85 1149219

>>1149209
ООП подход и неООП подход.

4 мар, 00:44 86 1149236

>>1147937

<iostream.h> - это что? VC++5?

4 мар, 00:46 87 1149239

>>1149076

такое лечится только переходом на жабаскрипт

4 мар, 00:52 88 1149241

Ананасы, как придумать себе программы для портфорлио?

Ответы49264

4 мар, 00:54 89 1149243

>>1149209

std::begin/end работают для встроееных массивов так же как и для классов коллекций.

или, допустим, есть какая-то левая коллекция, написанная долбоёбом, который не определил для нее методы begin/end. Ты можешь написать для этой коллекции std::begin/end и она будет работать прямо как стандартная коллекция:

namespace std {
auto begin(долбанная_коллекция const & к) { твоя реализация }
auto end(долбанная_коллекция const & к) { твоя реализация }
}

Ответы4924749248

4 мар, 00:56 90 1149245

>>1149213

Это уже старьё. Теперь такое не в моде.

4 мар, 01:01 91 1149246

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

Для классов без .begin() и .end() правда придется написать соответствующие функции, зато в код самих классов лезть не придется.
Т.е., допустим, есть у тебя какая-то библиотека, в которой какие-то свои контейнеры со своей структурой и нету у них .begin(). В таком случае можно, не модифицируя этот класс, дописать где-нибудь сбоку реализацию begin(SomeWeirdContainer&) и end(SomeWeirdContainer&) и пихать дальше этот класс куда угодно. В бусте, например, есть boost::range, в которую можно передавать не пару итераторов, а тупо контейнер (на самом деле не только контейнеры, но не суть), и работать она будет именно через begin/end.

4 мар, 01:06 92 1149247

>>1149243
>namespace std {
>auto begin(долбанная_коллекция const & к) { твоя реализация }
>auto end(долбанная_коллекция const & к) { твоя реализация }
>}
range-based for loop не найдёт этих специализаций.

Ответы4924949536

4 мар, 01:06 93 1149248

>>1149243

Похоже, я здесь пропёрся. Функции begin/end, наверное, надо определять в том же namespace, что и долбанная_коллекция. Потомушта ADL, мать его за ногу.

4 мар, 01:08 94 1149249

>>1149247

Найдёт, если begin/end находятся через ADL.

Ответы492504925149252

4 мар, 01:09 95 1149250

>>1149249
Для этого твоя коллекция должна каким-то образом оказаться в namespace std.

4 мар, 01:14 96 1149251

>>1149249
>Найдёт, если begin/end находятся через ADL.
Вроде range-based for не использует уже ADL
http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#1442

Ответы492524925649258

4 мар, 01:14 97 1149252

>>1149249
>>1149251
Вдогонку к defect report-у http://eel.is/c++draft/stmt.ranged#1.3.3

4 мар, 01:21 98 1149256

>>1149251
там зачеркнуто adl и прям сразу после написано про associated namespaces, которые по сути и есть adl. Хрень какая-то если честно. В любом случае std:: не относится к associated namespaces, так что не найдет

Ответы4926049536

4 мар, 01:24 99 1149258

>>1149251

Это просто уточнённая формулировка для ADL.

Ответы49259

4 мар, 01:25 100 1149259

>>1149258
Ок

4 мар, 01:26 101 1149260

>>1149256

Я так понимаю, это значит, что если твоя коллекция будет параметризованна типами из других namespace-ов, то lookup будет производиться в этих namespace-ах.

4 мар, 01:32 102 1149264

>>1149241
нахера?
учись переворачивать список, ходи по собеседованиям

Ответы4926549702

4 мар, 01:33 103 1149265

>>1149264
> ходи по собеседованиям
Чтоб пригласили надо хотя бы что-то показать.
Рассказываю я всё равно хуёво, а тут хотя бы будет на что взглянуть.

Ответы49454

4 мар, 02:20 104 1149287

Ковыряю GUI в WinAPI, хочу менять прозрачность окна по mouse enter/mouse leave ручной анимацией (не AnimateWindow). И тут внезапно для меня я понял, что такие вещи по добру бы делать асинхронно. Вот только если я запущу тред из WndProc, то мне надо либо тут же его join'ить, чтобы по выходу из скоупа поток не распидорасило. Так вот, как асинхронно выполнять манипуляции с окнами в WinAPI в общем случае?

3 Кб, 317x63
4 мар, 10:55 105 1149376

Поясните мне про то, что написано в сиаут.

Ответы49387

4 мар, 11:22 106 1149387

>>1149376
7 чисел.

Ответы49393

4 мар, 11:26 107 1149393

>>1149387
Это я и сам понял.
Я не понимаю вот это !!
И зачем вообще нужны битовые сдвиги.
Под а подразумевается символ 'C', который я перевожу в двоичную систему.

И вот это говно тоже не понимаю: '& 0x80'

Ответы49397494114972149952

4 мар, 11:33 108 1149397

>>1149393
А откуда код?
Может по этому огрызку нельзя понять зачем это всё.

Ответы49400

13 Кб, 474x259
4 мар, 11:35 109 1149400

>>1149397
Ну это, тащемта, всё

Ответы50582

4 мар, 12:19 110 1149411

>>1149393
>Я не понимаю вот это !!
>
первое ! - implicit-приведение к bool - если 0, то true, если не 0, то false. Второе ! - инверсия, т.е. из true в false и наоборот. Т.к. это вывод в cout без std::bool_alpha, то будет выведено 0 или 1.

4 мар, 14:03 111 1149454

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

4 мар, 14:48 112 1149486

Почему не сделают список инициализации для не-конструкторов?

4 мар, 16:30 113 1149536

>>1149256
>В любом случае std:: не относится к associated namespaces, так что не найдет
Я про это и написал >>1149247

4 мар, 21:33 114 1149646

>>1147076 я тут без лишнего пиздежа взялся за изучение крестов по мануалу из шакпи, и мой дорогой, я внимательно вчитываюсь и старательно конспектирую всю хуйню, и уже как долбаный месяц по 2-3 часа в день. И я только только закончи изучать типы переменных, с их особенностями, массивы указатели и ссылки. Сейчас изучаю функции.
По видимому начать писать простые примеры я начну в два два с половиной месяца изучения крестов. А после основ нужно же изучить ещё стандартные библиотеки, чтобы не изобретать велосипед.

Ответы4966054672

4 мар, 21:53 115 1149652

Есть в стандартной библиотеке регулярки?

Ответы49662

4 мар, 22:11 116 1149660

>>1149646
А мог бы за это время выучить верстку или вкатываться в пеашпи. Но ты захотел жрать плюсоговно.

Ответы4970050082

4 мар, 22:11 117 1149662

>>1149652
Да.

4 мар, 23:08 118 1149700

>>1149660
двачую

Ответы50082

4 мар, 23:17 119 1149702

>>1149264
Под выражением переворачивать список, ты имеешь в виду отвечать на вопросы?

Ответы49720

5 мар, 00:01 120 1149720

>>1149702
писать его на бумажке

5 мар, 00:04 121 1149721

42 Кб, 682x53743 Кб, 682x53771 Кб, 1310x309

>>1149393
>И зачем вообще нужны битовые сдвиги.
Пикрелейтед (1 и 2), результат операции (0x01 << 4). Чтобы понять сдвиги, используй двоичное представление числа.

Зачем нужны? Ну, конкретно я обычно использую их, когда надо разбирать всякие бинарные протоколы. Например 3-й пикрелейтед.
Еще можно использовать их для арифметических операций. Сдвиг влево, это условно умножение на 2.

Ты бы хоть статью какую сперва прочитал по теме.

5 мар, 13:12 122 1149950

switch_map[0x00] = &Decoder::op0x00;
switch_map[0x01] = &Decoder::op0x01;
switch_map[0x02] = &Decoder::op0x02;
switch_map[0x03] = &Decoder::op0x03;
switch_map[0x04] = &Decoder::op0x04;
switch_map[0x05] = &Decoder::op0x05;
switch_map[0x06] = &Decoder::op0x06;
switch_map[0x07] = &Decoder::op0x07;

Можно как-то автоматизированно адреса функций в map загнать?

А то я начал делать, а потом понял, что у меня этих функций будет около 300.
Это 300 строк кода просто под присвоение адресов.

Или надо было оставить жирнейший свитч?

Ответы5018250194

5 мар, 13:13 123 1149952

>>1149393
>И зачем вообще нужны битовые сдвиги.
Более быстрые арифметические операции, возможность деления / умножения через магические числа, приведение адресов и ещё много-много интересного и полезного.

5 мар, 13:55 124 1149972

Мне требуется массив с переменным кол-вом элементом, который будет расщиряться в зависимости от польовательского ввода. Эффективно будет использовать динамический массив? Или лучше List?

Ответы49974

5 мар, 14:02 125 1149974

>>1149972
vector юзай и не парься

Ответы49975

5 мар, 14:04 126 1149975

>>1149974
А если у меня задача требует пиздец какой производительности? Все равно ВЭкToR?

Ответы49981

5 мар, 14:23 127 1149981

>>1149975
> какой производительности
Какой?

Ответы49986

5 мар, 14:30 128 1149986

>>1149981
Максимальной. Интерпретатор пишу.

Ответы49990

5 мар, 14:33 129 1149990

>>1149986
Интерпретатор чего?

Ответы49996

5 мар, 14:40 130 1149996

>>1149990
Своего языка...

Ответы50062

5 мар, 16:13 131 1150062

>>1149996
Соснешь ведь с плюсами. Такие вещи лучше писать на лиспах и эмэлях.

Ответы50577

5 мар, 16:25 132 1150082

>>1149660
>>1149700
нет уж, меня ждёт увлекательный мир микроконтроллеров и шаговых двигателей.

Ответы50113

5 мар, 16:49 133 1150113

>>1150082
мамка с борщем есть?
а бабка что хату оставит?
так как тебе понадобятся ресурсы

5 мар, 18:51 134 1150182

>>1149950
Программно генерируй .cpp или какой-нибудь конфигурационный файл.

Ответы50186

5 мар, 18:54 135 1150186

>>1150182
Ещё получил совет сделать либу, а из неё построить map с указателями, так как там обращение будет идти по названию и можно будет добавлять индекс к названию. Что скажешь?

Ответы50193

5 мар, 19:01 136 1150193

>>1150186
Нормальный вариант, по сути та же штука. Но только скажи прощай LTO, так как либу придётся подключать динамически. Но не думаю, что это сколько-либо скажется на твоей производительности.

Ответы50566

5 мар, 19:01 137 1150194

>>1149950
boost_pp_repeat

2 Кб, 603x139
5 мар, 19:46 138 1150209

Сап.
Нашел функцию преобразования из 10-й СС в 2-ю.
while (c > 0)
{
std::cout << bool(x&c);
c >>= 1;
}
Допустим, возьмем x = 5, c = 4(как я понял нужно брать такое число, которое в двоичной даст столько же битов сколько в x).
Теперь перейду к bool(x&c)(пик)
Как после этих операция получилась эта заветная пятерка.

Ответы5021050371

5 мар, 19:46 139 1150210

>>1150209
Сорян за табуляцию, копировал из vs

28 Кб, 623x350
5 мар, 19:53 140 1150214

Аноны, помогите, нашёл на форуме код для проверки ввода. У меня он сейчас выглядит вот так, всё хорош работает, но я не понимаю, как оно работает. Код используется при вводе дабла и инта, чтобы в дабл пользователь не смог ввести символ, а в инт символ/дабл. Спрашивал в треде для нуфагов, но там мне никто не ответил.

5 мар, 20:02 141 1150218

cin.get() вроде получает символ из потока и возвращает код символа.
cin.clear() восстанавливает поток, если ввел букву, или неожиданный символ.
Мимо другой нуфаг

Ответы5022450234

5 мар, 20:12 142 1150224

>>1150218
Собственно больше интересует работа условия цикла.
Т.к. насколько я понял про .get() и .clear(), если я например введу 35rt, то я зайду в цикл, .clear() вернёт rt в поток ввода, откуда .get() будет забирать их к себе и сравнивать с символом переноса строки, т.к. символ не будет равен символу переноса строки он выдаст исключение.

Ответы5022850234

5 мар, 20:18 143 1150228

>>1150224
Поправка, .clear() забирает обратно в поток все символы/ неподходящие типы, а .get() очищает поток ввода, чтобы не оставить за собой косяков,после этого выбрасывается исключение.
С этим более менее разобрался.
Я не понимаю как работает условие, то есть почему при вводе просто Int, например. я вообще не пройду условие цикла и выйду из функции, а если введу символ, то попаду в цикл => получу исключение.

Ответы50234

5 мар, 20:37 144 1150234

>>1150224
>>1150228
>>1150218
В общем, я сам не шарю, но вот.
Если убрать (std::cin.peek() != '/n') и ввести что-то типа char, то exception не вызывается, и int остается прежним.
!(std::cin >> a) возвращает false(и ожиает ввод)
(std::cin.peek() != '/n') возвращает true пока не завершил строку
!(std::cin >> a) || (std::cin.peek() != '/n') возвращает True.
В итоге цикл выполняется, и ожидает ввод.
>я вообще не пройду условие цикла и выйду из функции
А вот это не совсем понял, условие вроде как проходится.
Но в любом случае стоит подождать более знающих анонов.

Ответы50241

5 мар, 20:46 145 1150241

>>1150234
Если убрать .peek(), то cin просто обрубается на моменте, когда хочешь ввести ему не число, естьесли ввест 123qwe, то он запишет в a 123 и выйдет из функции. Если же ввести просто символ. то исключение вызывается. т.к. сразу выполняется условие у !cin, значит peek() нужен, чтобы не пропускать данные первая часть которых может подойти, как, например 123qwe. То есть если первым будет символ, а не число сразу сработает условие !cin и нам дадут исключение.
Всё ещё не очень понятно, как они работают вместе.

Ответы50250

5 мар, 21:20 146 1150250

>>1150241
Сейчас попробовал поиграть с if(cin) в тестовой программе.
В общем если в cin >> a подать 123qwe, то он запишет 123, выдаст TRUE, а qwe оставит в потоке, то есть скорее всего cin считывает 123qwe, проверяет 1, отправляет его в переменную, аналогично делает с 2 и 3, потом получает q, видит что типы не совпадают, оставляет её в потоке, возвращает значение TRUE, т.к. запись в a была произведена, но в потоке осталось qwe, и именно поэтому нужен .peek(), т.к. если мы ввели 123qwe !cin записал в а 123, оставил в потоке qwe и вернул FALSE, т.к. запись была произведена и стоит отрицание, теперь в дело вступает .peek(), который смотрит первый элемент в потоке, это оказывается не \n,он возвращает TRUE, FALSE || TRUE = TRUE, мы идём в цикл и вызываем исключение.
Знающие аноны, поправьте, если где-то не прав, но то что я написал полостью соответствует тому, как это работает у меня.

5 мар, 23:50 147 1150371

>>1150209
Есть мнение, что рациональней сперва освоить русский язык, а потом уже приступать к ЯП.

Ответы50386

5 мар, 23:59 148 1150386

>>1150371
Ты про ебанутую структуру вопроса, а точнее её отсутствие? Ну уж извини. В любом случае я уже разобрался :3

6 мар, 11:45 149 1150566

>>1150193
Окей, попробую так, мпасибо.

6 мар, 12:02 150 1150569

>>1147074
Почему нельзя использовать плюсы для обучения, используя только сишные фичи?

Ответы54030

6 мар, 12:15 151 1150576

>>1148341
Псс, парень, не хочешь немного "ускориться"?
http://www.boost.org/doc/libs/1_66_0/doc/html/lockfree.html

6 мар, 12:17 152 1150577

>>1150062
А что не так? И что за эмэль?

Ответы50583

6 мар, 12:49 153 1150582

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

6 мар, 12:59 154 1150583

>>1150577
>А что не так?
Десятое правило Гринспена. Чтобы написать свой интерпретатор, или компилятор, тебе надо нахуячить половину лиспа, или эмэля. А зачем, когда они уже написаны?

>И что за эмэль?
https://en.wikipedia.org/wiki/ML_(programming_language)

Ответы5058450660

6 мар, 13:04 155 1150584

>>1150583
А что делать если я натурал?

6 мар, 13:31 156 1150600

Не могу разобраться в typedef.

Вот есть такая хуйня:
typedef int (*get)(int value);

И использую указатель на функцию, принимающую один int и возвращающую тоже int.
А как это записать без typedef?

Ответы506085069250729

6 мар, 13:46 157 1150608

>>1150600
using zalupa = int(*)(int); ?

zalupa z = [] (int) { return 3; };

Ответы5060950616

6 мар, 13:47 158 1150609

>>1150608
Что в объявлении означают скобки []?

Ответы50611

6 мар, 13:49 159 1150611

>>1150609
Область захвата лямбды. Прочитай про лямбды.

Ответы50646

6 мар, 14:03 160 1150616

>>1150608
>using
Зачем? Мне максимально просто и для понимания, так-то через typedef удобно, но как это записывалось бы без него?

Ответы5062250667

6 мар, 14:22 161 1150622

>>1150616
>Зачем
Человек просто пидор и все

6 мар, 14:49 162 1150646

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

Ответы50648

6 мар, 14:51 163 1150648

>>1150646
Алсо если сама область видимости захвата определяется блоком в котором мы лямбда-функцию объявляем?
Например мы хотим, чтобы она захватила все переменные по ссылке, пишем [&], она захватит все переменные что были объявлены до неё в этом блоке?

Ответы50649

6 мар, 14:53 164 1150649

>>1150648
Хотя какой смысл, он наверное захватывает только те переменные, которые встречаются в теле само лямбда-функции? А то как-то тупо получается. И мы указываем либо режим захвата, либо конкретные переменные которые нам нужны. Так?

Ответы50897

6 мар, 15:22 165 1150660

>>1150583
>Десятое правило Гринспена. Чтобы написать свой интерпретатор, или компилятор, тебе надо нахуячить половину лиспа, или эмэля. А зачем, когда они уже написаны?
>

6 мар, 15:42 166 1150667

>>1150616
Если делать просто псевдонимы типов, то разницы никакой.
Using там будет полезен для шаблонной магии.
Ну и плюс моё личное то, что с using несколько нагляднее т.к. там есть знак присваивания, а с typedef иногда забываю что должно идти первым: псевдоним или исходный тип.

Ответы5068650692

6 мар, 16:02 167 1150686

>>1150667
дурак ты

6 мар, 16:07 168 1150692

>>1150667
На мой вопрос так никто и не ответил.
>>1150600

6 мар, 16:27 169 1150726

>>1148037
проорал

6 мар, 16:28 170 1150729

>>1150600
http://citforum.ru/programming/cpp_march/cpp_063.shtml

Ответы54391

6 мар, 16:32 171 1150733

Аноны, если я сделаю так:
if (chto_to > 10)
{
int huita = new int[huj];
}
То если условие не выполнится то память на массив не потратится?

Ответы5075050756

6 мар, 16:33 172 1150735

Структуры - синтаксический сахар?

Ответы50836

6 мар, 17:02 173 1150750

>>1150733
Не потратится.

6 мар, 17:03 174 1150752

Попытаю удачу.
Ищу хороших С++ разрабов (2 вакансии).

Работа в ДС, релокация из запердяевска - вполне возможно.

Требования:
3 года+ крестов.
Уметь в модерновый С++, всякие мув-семантики и прочий SFINAE вы понимаете.
Хоть немного уметь в Winapi и не боятся вещей, типа LPCTSTR.
Свободный разговорный английский. Нет, никак иначе нельзя.
Умеете пользоваться любой виртуализацией.
Вообще знаете винду хорошо.

Плюсы:
Уметь в qt.
Уметь в python или LUA.

Условия:
Офис в ДС, охуительный соцпакет, охуенная компания со штаб-квартирой в США, известная на рынке, проект внутренний (никакая не галера), очень крутые коллеги, зарплата по договоренности, я думаю в районе ~200к чистыми договорится можно. Разработка под Windows8+ в Visual Studio 2015.

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

Ответы5078850838508485085051275

6 мар, 17:14 175 1150756

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

Ответы50759

6 мар, 17:17 176 1150759

>>1150756
>массив автоматически удаляется.
Нет, только указателя на него проебешь (но в примере его нет).

Ответы50765

6 мар, 17:20 177 1150765

>>1150759
Ну так обратиться он к нему всё равно не сможет уже, не?

Ответы50768

6 мар, 17:22 178 1150768

>>1150765
это просто не скомпилируется. Если написать правильно, то сможет с помощью сдвига указателя, но это хак и так никто не делает

Ответы5079250815

6 мар, 17:43 179 1150788

>>1150752
В чем заключается соцпакет? Обеды, страховка, скидки и красивый офис не в счет.

Ответы50795

6 мар, 17:46 180 1150792

>>1150768
Как ты узнаешь, где он?

Ответы50813

6 мар, 17:47 181 1150795

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

Ответы51245

23 Кб, 494x336
6 мар, 18:09 182 1150813

>>1150792
Примерно вот так?

Ответы50814

6 мар, 18:13 183 1150814

>>1150813
Ну так ты адрес сохранил, чтоб потом кастовать и сдвигать. А если переменную с адресом проебал (вышел из области видимости), а массив остался (как у чувака в примере), то как ты его найдешь в памяти (чтоб удалить, например)?

Ответы50815

6 мар, 18:15 184 1150815

>>1150814
Думаю, что никак.
Не знаю, о чём писал >>1150768

6 мар, 19:22 185 1150836

>>1150735
ни в коем случае
полезнейшая конструкция, обладающая собственным семантическим смыслом, добавленная в процессе эволюции си

6 мар, 19:27 186 1150838

>>1150752
ну напиши минусы то
все ж свои

дедлайны? 100 часовая рабочая неделя? много легаси?

Ответы50846

6 мар, 19:49 187 1150846

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

6 мар, 19:56 188 1150848

>>1150752
>Умеете пользоваться любой виртуализацией
Здесь что имеется в виду?

Ответы50872

6 мар, 20:02 189 1150850

>>1150752
Удалёнка есть?

Ответы50872

6 мар, 20:02 190 1150851

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

Ответы5085350854

6 мар, 20:05 191 1150853

>>1150851
Сразу задам ещё один вопрос.
У меня ноут на 4-х поточном селероне и он откровенно подлагивает в студии, думал насчёт отдельно редактора, отдельно компилятора, но не знаю, что можно поставить или может есть какие-то облегчённые IDE?мне с этим в IDE тред бежать?

Ответы5085850878

6 мар, 20:07 192 1150854

>>1150851
Поясни вопрос, не понял

Ответы50859

6 мар, 20:09 193 1150858

>>1150853
VS code не катит?

Ответы5086050875

6 мар, 20:09 194 1150859

>>1150854
Где подать анкету/искать работу.
Даже оплата не важнано если бы хватало на еду хотя бы, было бы круто, нужен только опыт.

Ответы5086150863

6 мар, 20:10 195 1150860

>>1150858
Думаю покатит, но, насколько я понял это только редактор, хоть и "умный"?

6 мар, 20:11 196 1150861

>>1150859
Да луркай компании и пиши напрямую, так и так, возьмите в подмастерья вот мой гитхаб

Контрибьюшны есть в опенсорс какой-нибудь?

Ответы5086350865

6 мар, 20:12 197 1150863

>>1150859
>>1150861
Ну и карер ру же появился для такого дела вроде
хз чо там с ним

6 мар, 20:13 198 1150865

>>1150861
В гит заливал только лабы универские. Ничего серьёзного нет.

6 мар, 20:23 199 1150872

>>1150850
Изредка можно, фуллтайм - нет

>>1150848
Ты знаешь, что это такое, без проблем можешь работать с ВМками и прочим при помощи Vmware или Vbox'a не смотря на забавное требование - многие вообще не умеют.

6 мар, 20:32 200 1150875

>>1150858
Скачал, сразу гит привязал, какая же удобная штука. спасибо анон!

Ответы50903

6 мар, 20:39 201 1150878

>>1150853
Попробуй Qt creator

6 мар, 21:05 202 1150897

>>1150649
Короче, ты можешь вроде захватить все, что есть в скоупе, где объявлена лямбда. Взять какой-то внешний объект, или несколько, или все, или ни один, как хочешь.

6 мар, 21:11 203 1150903

>>1150875
Где-нибудь есть гайд по настройке? А то у меня почему-то при отладке не отображаются переменные. Хотя сама программа, которую я писал на студии работает правильно, нужно было только путь к бинарнику прописать.

44 Кб, 462x599
7 мар, 03:13 204 1150986

Дополз до указателей на функции, функция как параметр для функции, функция возвращающая функцию.
Это слегка сломало шаблон. Дальше будет веселее да?

Ответы5099651151

7 мар, 03:47 205 1150996

>>1150986
Ты пидор

Ответы5115151167

7 мар, 15:23 206 1151145

Антоны, какая есть THE FASTEST BLJAT структура данных, которая будет расширяться в зависимости от пользовательского ввода?

Ответы5115051332

sage 7 мар, 15:33 207 1151150

>>1151145
Твой anus.

Ответы51153

7 мар, 15:33 208 1151151

>>1150986
Двачую этого >>1150996

Ответы51167

7 мар, 15:35 209 1151153

>>1151150
Т.е. вектор?

7 мар, 15:40 210 1151154

Требуется ли при vector::push_back делать vector::resize? Или первый метод сам за меня все сделает?

Ответы51155

7 мар, 15:42 211 1151155

>>1151154
поди да почитай
https://llvm.org/svn/llvm-project/libcxx/trunk/include/vector

Ответы51165

7 мар, 15:57 212 1151165

>>1151155
Я уже познал суть сего эмпирическим методом.

7 мар, 16:02 213 1151167

>>1150996
>>1151151
А чо не так то а?

Ответы51179

7 мар, 16:32 214 1151179

>>1151167
В том что ты пидор.

7 мар, 16:51 215 1151193

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

Ответы5475355018

7 мар, 17:32 216 1151226

Пасаны, смотрите, только начал кладбище изучать, хотел посмотреть как работают функции с потоками, и получилась ошибка вида "use of deleted function (summa)", вот код: https://pastebin.com/9Mac3thK.
Цикл, из "\" делающий "/" потому, что пользователь не вдупляет, зачем два слеша указывать в пути.

Ответы51238

7 мар, 17:59 217 1151238

>>1151226
ifstream не копируемый. Передавай по ссылке.

Ответы51244

7 мар, 18:11 218 1151244

>>1151238
Мдэ. Надо мне, наверное, читать что-то кроме гугла и ошибок компилятора.

Ответы51297

7 мар, 18:18 219 1151245

>>1150795
Ну так везде сейчас. Нет смысла перекатываться к вам.

Ответы51251

7 мар, 18:33 220 1151251

>>1151245
если у тебя 200+к зарплата - то может быть.

7 мар, 19:25 221 1151275

>>1150752
winapi, ёлы... Напомнило, как на нашей местной галере esignal блычат долбаный mfc проект которое десятилетие.
Звучит интересно... хотя кому я вру. Сейчас, пока не закончил вуз, хватает и 120 в донской столице. А когда закончу, 200 на фуллтайм как-то выглядят совсем маловато.

Ответы51306513605231952747

7 мар, 20:19 222 1151290

Затратно ли делать using namespace std?

Ответы5129251299

7 мар, 20:24 223 1151292

>>1151290
>using namespace std
Конечно затратно, это буферизует все вызовы функций из std через отдельный тред.

Ответы51305

7 мар, 20:35 224 1151295

Затратно ли снимать свитер?

7 мар, 20:45 225 1151297

>>1151244
На самом деле это всё и логически понять можно.ну не всё, но много чего
И для коленочных программ достаточно и гугла с компилятором.

Ответы51304

7 мар, 20:46 226 1151299

>>1151290
Юзай std::, будет тебе счастье.

7 мар, 21:04 227 1151304

>>1151297
На самом деле это вообще узкая ебанина, которая к логике отношения не имеет, её надо просто запомнить, один раз встретив.

Ответы51312

7 мар, 21:09 228 1151305

>>1151292
Штоблядь?

7 мар, 21:13 229 1151306

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

Ответы51320

7 мар, 21:32 230 1151312

>>1151304
Почему не имеет отношения к логике? Логика там есть, и заключается она в том, почему сделали именно так.

7 мар, 21:53 231 1151320

>>1151306
Да разве это зп - 200? На еду разве, да на машину в кредит. На жильё и семью этих копеек уже не хватит. Несерьёзно.

Даже если ты лодырь, живущий у мамки, мамка быстро тебе скажет, что этого мало.

Ответы51324

7 мар, 22:07 232 1151324

>>1151320
я живу на 40 в дс
мама говорит, что я молодец

Ответы51360

7 мар, 22:20 233 1151332

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

7 мар, 23:32 234 1151360

правильный крестобоярин >>1151324
а вот этот неправильный >>1151275

Ответы5136151784

7 мар, 23:38 235 1151361

>>1151360
На самом деле на 50. Это как с членом. Говоришь девушке, что у тебя 11, а потом наслаждаешься её удивлением твоему 12см крепышу.

8 мар, 09:17 236 1151413

Имеется код:
while (true)
{
Sleep(100);
for (int i = 0; i < 255; i++)
{
int state = GetAsyncKeyState(i);
if (state == -32767)
{
cout << i;
}
}
Как при помощи какой-то функции перевести код клавиши в ее название? Или придется самому все пилить?

Ответы51422

8 мар, 10:25 237 1151422

>>1151413
Используй ассоциативный массив: ключ - клавиша, значение - строка.

Ответы51459

8 мар, 12:41 238 1151459

>>1151422
нахуй стариков

8 мар, 12:48 239 1151467

Блять, почему текстовые файлы размером в 5 гигабайт так плохо обрабатываются.

Ответы51474

8 мар, 12:56 240 1151474

>>1151467
А ты попробуй убрать .txt из названия.

8 мар, 13:45 241 1151492

Антонуаны, есть ли в windows.h функция возвращающая текущую раскладку?

Ответы51534

8 мар, 13:56 242 1151501

Как реализовать подобное: при определенном условии в программе на сях будет запущен определенный exeшник(скрипт на питоне).

Ответы51514

8 мар, 14:14 243 1151514

>>1151501
А, наверно просто system("/путь к exe/");

Ответы51517

8 мар, 14:20 244 1151517

>>1151514
Линуксоиды отпиздят за такой способ

8 мар, 14:40 245 1151525

Почему alt, shift и т.п. имеют код из двух чисел?

8 мар, 15:04 246 1151534

>>1151492
есть

Ответы51558

511 Кб, 500x690
8 мар, 15:32 247 1151549

>>1147021 (OP)
strstr - норм функция или так, хуйня?

Ответы5155651580

8 мар, 15:55 248 1151556

>>1151549
какае то сишная поеболина

8 мар, 16:01 249 1151558

>>1151534
Can you сказать which?

Ответы51559

8 мар, 16:02 250 1151559

>>1151558
ты шутишь
это ищется в msdn за минуту

Ответы51561

8 мар, 16:03 251 1151561

>>1151559
Thank for your ответ.

Ответы51565

8 мар, 16:10 252 1151565

>>1151561
угу
давай, работай

8 мар, 16:53 253 1151580

>>1151549
Тебе дали string в с++, используй их,зачем тебе сишные char * строки, извращенец.

Ответы54392

8 мар, 17:29 254 1151624

Какой инструментарий вы юзаете?
Не могу определиться с выбором.
Студия слишком жирная.
VS Code неплох, но были проблемы с ним, да и gnw довольно медленный компилятор.
Qt отвратительно выглядит. Работать с ним не нравится.
Есть ли альтернативы? Или может к VSC можно другой компилятор прикрутить?

Ответы51626

8 мар, 17:31 255 1151626

>>1151624
Clion. Ничего лучше пока не видел.

Ответы51627

8 мар, 17:32 256 1151627

>>1151626
Это полноценная IDE?
Или аля VSC - редактор с возможностью работы с компилятором?

Ответы5162951631

8 мар, 17:33 257 1151629

>>1151627
Уже нагуглил, только она бесплатная лишь первые 30 дней.

8 мар, 17:34 258 1151631

>>1151627
IDE в которой есть всё, даже то, что никогда тебе не будет нужно. А вообще, что вообще такое полноценная иде в твоем понимании? Ну, 30 дней триала, бесплатная полностью, если ты студент, тем паче, никто не запрещал своровать.

Ответы51634

8 мар, 17:36 259 1151634

>>1151631
Просто фраза "30 дней триала" ассоциируется с winrar, который надоедает напоминаниями о том, что его уже пора купить при каждом действии.

Ответы51638

8 мар, 17:43 260 1151638

>>1151634
Скачал, устанавливаю, посмотрим, что это такое.
Алсо есть какие-нибудь советы по настройке?

Ответы52749

376 Кб, 1920x1080
8 мар, 18:08 261 1151659

Что это такое?

Ответы51662

8 мар, 18:10 262 1151662

>>1151659
Исключение, ты как-то повредил память рядом с переменной "а". Попробуй перезапусти студию просто.

Ответы51664

8 мар, 18:10 263 1151663

Блять, придумайте мне задачу на крестах или питоне, делать нехуй.

Ответы51686

8 мар, 18:11 264 1151664

>>1151662
Лол, я делал просто программу для решения кубических уравнений, что за хуйня.

Ответы5172551734

8 мар, 18:29 265 1151686

>>1151663
https://2ch.hk/pr/res/1134574.html (М)

8 мар, 18:56 266 1151724

Аноны, можно как-нибудь настроить чтобы переменные в дебаге VSC отображались всегда, а не только когда ты ходишь пошагово с точкой остановки етц?

8 мар, 18:57 267 1151725

>>1151664
Возможно написал какую-то хуйню, мало ли, всякое случается. Но нельзя исключать просто случайную ошибку.

8 мар, 19:09 268 1151734

>>1151664
Ну, у меня например получается наглухо повесить винду (7, только корсор двигается) парой тредов.
Это же кресты, расслабься и запасись бинтами чтобы простреленные ноги заматывать.

8 мар, 19:11 269 1151736

106 Кб, 1086x579122 Кб, 1044x837

В универе задали лабу. Но суть не конкретно в ней. Объясните что ему не нравится? Он пишет, что первый аргумент оператора new должен быть size_t, но он, блять, и есть size_t.

Ответы517375174753342

8 мар, 19:12 270 1151737

>>1151736
То что ты в обрубке IDE работаешь.

Ответы51738

8 мар, 19:14 271 1151738

>>1151737
Нет выбора, студия много жрёт, ноут быстро разряжается, а я им каждый день пользуюсь и с собой таскаю везде.
CLion и Qt не особо понравились.

Ответы51741

8 мар, 19:20 272 1151741

>>1151738
Sublime/Vim/Emacs + GCC?

Ответы5174251745

8 мар, 19:21 273 1151742

>>1151741
Заебусь настраивать?

Ответы5174451745

8 мар, 19:21 274 1151743

Насколько сложно написать свой движок брузера?

Ответы51751

8 мар, 19:22 275 1151744

>>1151742
В sublime даже проще чем с VS code. Просто качаешь linter-gcc, качаешь сам gcc и все.

Ответы51746

8 мар, 19:23 276 1151745

>>1151742
>>1151741
И что сам посоветуешь? По внешнему виду все примерно одинаковые.

8 мар, 19:23 277 1151746

>>1151744
Тогда можно чуть поподробнее? Или лучше ссыль.

Ответы51752

8 мар, 19:23 278 1151747

>>1151736
Попробуй не size_t, а std::size_t.

Ответы5174851754

8 мар, 19:24 279 1151748

>>1151747
Кажется помогло. Не знал, что он живёт в std. Спасибо.

Ответы51794

8 мар, 19:27 280 1151751

>>1151743
От "хуйня за 5 минут, чтобы сделать запрос к url, и вывести ответ в консольку", до "ёбаный в рот, мне нужна команда как у мазилы или гугла", в зависимости от реализуемых фич, и строгости следования стандартам веба.

Ответы5175751762

8 мар, 19:27 281 1151752

>>1151746
Cублайм - https://www.sublimetext.com/3
GCC -https://sourceforge.net/projects/tdm-gcc/
Пропиши в path путь к компилятору и все. В самом сублайме установи linter-gcc.

Ответы5175551761

8 мар, 19:28 282 1151754

>>1151747
Я тоже не знал, лол.
Но в примере тут http://en.cppreference.com/w/cpp/memory/new/operator_new оно было с неймспейсом, а в студии я пишу без него.

8 мар, 19:28 283 1151755

>>1151752
Спасибо.
Через н-ное время отпишусь.

8 мар, 19:29 284 1151757

>>1151751
Ну допустим, где-то по середине.

8 мар, 19:30 285 1151761

>>1151752
Так у меня уже установлен MinGW, я через него в VSC компилил или это разные вещи?

Ответы51763

8 мар, 19:33 286 1151762

>>1151751
Ты же понимаешь, что это "где-то посередине" размером с ведро твоей мамаши?
От парсинга html, работы с протоколами, и рекурсивной обработки ссылок на другие ресурсы, и до собственного графического движка, и своей реализации жаваскрипт машины?

Ответы51764

8 мар, 19:34 287 1151763

>>1151761
Нет.

Ответы51765

8 мар, 19:35 288 1151764

>>1151762
Блять, я эти мелочи за ночь запилю.

Ответы51766

8 мар, 19:35 289 1151765

>>1151763
Ну похрену, всё равно уже установил.

Ответы51767

8 мар, 19:37 290 1151766

>>1151764
Ну и че ты тогда у меня спрашиваешь? Просто сделай.
Или хотя бы какие-то конкретный вопросы задавай, покукаретизируем.

Ответы51768

8 мар, 19:37 291 1151767

>>1151765
Просто sublime чуть меньше жрет чем VS code, если прям с зарядком пиздец. А еще меньше жрет блокнот.

Ответы51770

8 мар, 19:39 292 1151768

>>1151766
Нет, я понятно что шутил что запилю это за ночь. Я просто ахуел и прикрыл свою реакцию маской уверенности.

8 мар, 19:43 293 1151770

>>1151767
А где там устанавливать linter-gcc?
Полазил по вкладам не нашёл что-то.
Пойду погуглю.

Ответы51772

8 мар, 19:48 294 1151772

>>1151770
Отбой, я разобрался сам.

Ответы51799

109 Кб, 1280x720
8 мар, 20:23 295 1151784

>>1151360
Почему 50 в дефолт-сити правильно, а 120 в ростовчике неправильно?
Крестофилы низший сорт программистов чтоль?

Ответы51851

8 мар, 20:44 296 1151794

>>1151748
<cstdlib> (или <new>, откуда ты там берёшь size_t) это заголовочный файл стандартной библиотеки C++, а там всё живёт в std.
На то, что сишные символы где-то находятся без std даже при подключении C++-библиотек, полагаться не стоит, это не переносимо.

8 мар, 20:51 297 1151799

>>1151772
Как сделать, чтобы он при билде не один .cpp файл билдил?

Ответы51854

8 мар, 22:12 298 1151851

>>1151784
ну там какой-то интересный человечек:
студентик в ростове-на-дону, подрабатывающий на крестах получая 120к и ноющий что ему как бы мало, а вот 200к уже нормально
я хз, может пока мы спали столица дона стала ай-ти меккой

Ответы518625186552747

8 мар, 22:13 299 1151854

>>1151799
ппц
а вот в visual studio уже бы все компилил вовсю
а так да, настраивай

Ответы51856

8 мар, 22:15 300 1151856

>>1151854
Не знаешь, что в билдере прописать для компиляции нескольких .cpp файлов?
По имени не вариант, т.к. билдер один для всего.
*.cpp тоже почему-то не прокатывает, пишет g++ invalid argument.
Хотя если писать самому через консоль то всё запускается, странно.

8 мар, 22:25 301 1151862

>>1151851
Да это наверное влажные фантазии какого-то июня, получающего максимум восемьдесят.

Ответы51865

8 мар, 22:35 302 1151865

>>1151862
>>1151851
А какие вообще у сипипишников зарплаты? Что я потерял, выбрав пару лет назад джаву?

Ответы51879518815274753127

8 мар, 23:04 303 1151879

>>1151865
Зависит. В тредах разные люди пробегали. И зарабатывающие 4-5к баксов, и 2к баксов.

Ответы51895

8 мар, 23:05 304 1151881

>>1151865
дс - джун 60-80, мид 80-100, сеньор 120
болотный - джун 40-60, мид 60-80, сеньор 100
мухосрани - джун 20, мид 30-50, сеньор 50-60
работа в нии - можно делить на 2
работа в игроделе - можно убирать 20%
работа с микроконтроллерами - можно убирать 30%
если математик-программист, то можно на десяточку меньше платить, им норм
не троллинг

Ответы518995190751919520135261353127

8 мар, 23:19 305 1151888

Как понимать эту строчку?
Пока вводится число, или как?

Ответы51889

8 мар, 23:20 306 1151889

while(cin >> value)

>>1151888

Ответы5189251913

8 мар, 23:26 307 1151892

>>1151889
Пока вводится значение, которое может записаться в value если на пальцах, в общем, если value int, то если ты введёшь символ или число с плавающей точкой, то ты не войдёшь в цикл.

Ответы51897

8 мар, 23:30 308 1151895

>>1151879
Ну это дистанционщики на штаты в основном.

Ответы52091

8 мар, 23:32 309 1151897

>>1151892
Большое спасибо, все понятно объяснил

Ответы51902

8 мар, 23:33 310 1151899

>>1151881
Судя по всему, крестяшники действительно низший сорт в сравнении с джавистами и шарпниками. Джуны получают как крестомиддлы, миддлы как крестосеньоры.

>работа с микроконтроллерами - можно убирать 30%
Это разве не на С без плюсов в основном?
И почему в геймдеве меньше?

Ответы51917

8 мар, 23:37 311 1151902

>>1151897
только сделай очищение входного потока, а то будут ошибки и ты долго будешь их искать.
Дело в том, что если value int,а ты, например, ввёл 'a', то он не запишет 'a' в value, но 'a' останется висеть в потоке, и когда ты в след. раз вызовешь cin, то у тебя 'а' сразу запишется куда-то.
Поэтому обязательно очищай входной поток.

8 мар, 23:44 312 1151907

>>1151881
>болотный - джун 40-60, мид 60-80, сеньор 100
Эх. Вкатился в ДС2 из мухосранска в похроммисты, получаю 65. Поначалу казалось, что на эту зарплату можно жить.
А сейчас присматриваю жилье и понимаю, что могу себе позволить только однуху в 42 квадрата в 700 метрах от метро. Пиздец.
Не смотря на то, что по жизни доходы растут, на каждом этапе внезапно приходит осознание, что ты по-прежнему нищий.

Ответы5192251926

8 мар, 23:51 313 1151913

>>1151889
тип объекта cin - istream
перегруженый оператор >> для istream возвращает ссылку на istream
если ввод закончился, то оператор >> устанавливает setstate(failbit)
istream отнаследован от класса basi_ios, у которого в свою очередь оператор приведения к bool, который возвращает false если установлен флаг failbit
тк условие цикла требует bool, то в istream который вернет оператор >>, сработает оператор приведения к bool, пока не закончен поток ввода, от будет возвращать true, но когда читать больше будет нечего он вернет false и цикл завершится
это если упрощенно писать

8 мар, 23:54 314 1151917

>>1151899
почему "низший сорт"? просто получают меньше чем люди, занимающися явой или веб-программированием

ну то есть не микроконтроллеры, а вообще промышленная автоматизация, асу и прочее, тк реальная промышленность в жопе то и обслуживающая их часть ай-ти тоже копеечки получает

в геймдеве меньше потому что всегда есть фанатики работающие за идею

8 мар, 23:55 315 1151919

>>1151881
>если математик-программист, то можно на десяточку меньше платить, им норм
Вот сейчас обидно было

Ответы51930

8 мар, 23:57 316 1151921

А почему так сложилось, что цппшники такие бичи? Вы же элита блядь.

8 мар, 23:59 317 1151922

>>1151907
ты с семьей что ли?
нафиг те такая большая однуха, у меня тоже новострой 40кв она же огромная, лол
живешь один - живи по хардкору - снимай хрущобу/брежневку самого маленького метража - очень удобно, вся инфраструктура есть, деревья во дворах есть, до метро почти всегда можно пешком добратся
ты все равно туда только спать будешь приходить, живешь в большом городе - делай активности, качалочка, фитнес, клубец в пятницу ну или музей в субботу от уровня твоего зависит

Ответы5192451941

9 мар, 00:00 318 1151924

>>1151922
Да и ночевать на работе можно.

Ответы51928

9 мар, 00:01 319 1151926

>>1151907
и, блин, вот вы реально странные
реально ты можешь снимать жилье аж километрах в 2-2.5 от метро, это расстояние проходится бодрячком за двадцать минут
человеку как животному все равно в день надо километров 9 наматывать чтобы себя не чувствовать полутрупом

Ответы51941

9 мар, 00:03 320 1151928

>>1151924
не надо передергивать
но идеально вообще тупо выбрать жилье в пешей доступности от своей работы, километрах в трех
и ходить пешком туда
у меня двое знакомых так и сделали - тупо выбирали жилье у работы и все, когда переезжали на работу в дс и болотный

9 мар, 00:06 321 1151930

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

Ответы51933

29 Кб, 418x473
9 мар, 00:12 322 1151933

>>1151930
Окончил парень университет, пошел работать инженером, женился,
ребенок у него родился - а на инженерскую зарплату не проживешь.
Пошел он лучшую работу искать. Куда ни сунется, его спрашивают
про образование, предлагают быть инженером, а на инженерскую
зарплату как проживешь? Спасибо, друзья научили:
- Ты говори, что 7 классов школы кончил.
Ну, он так и сказал, взяли его в цех помощником токаря, платят - две
инженерские зарплаты, все хорошо. Через полгода подходит к нему профорг:
- Ты у нас один из лучших рабочих. Мы посоветовались, решили, что ты
должен школу закончить. Пойдешь в 8-й класс вечерней школы.
Ну, куда денешься? Пошел.
Сидит он на уроках по вечерам, спит от усталости, учителя не
слушает. Вдруг вызывают его к доске, спрашивает его учитель найти
объем цилиндра. А он школьной формулы, хоть убей, не помнит. Заслоняя
доску собой, взял он простенький двойной интеграл, перешел к полярным
координатам и получил ответ. Только объем у него почему-то вышел
отрицательным. Стер он интеграл, написал новый, все перерешал -
опять объем отрицательный! Вдруг слышит, двоечник и худший ученик
класса шепчет ему с парты:
- Ты пределы интегрирования перепутал! Переставь их, все
получится!

9 мар, 00:34 323 1151941

>>1151926
Я ленивый, мне и полутрупом норм.
Сейчас снимаю студию в 300 метрах от метро.
>реально ты можешь снимать жилье аж километрах в 2-2.5 от метро, это расстояние проходится бодрячком за двадцать минут
Мне от метро до работы 15 минут пиздовать.
>>1151922
>ты с семьей что ли?
Один.
>нафиг те такая большая однуха, у меня тоже новострой 40кв она же огромная, лол
Хочется купить сразу и надолго.
К тому же размер -- понятие субъективное. Бываю в гостях у другана, 43 квадрата однуха, ничего огромного там нет. Правда, он с бабой живет.
>ты все равно туда только спать будешь приходить, живешь в большом городе - делай активности, качалочка, фитнес, клубец в пятницу ну или музей в субботу от уровня твоего зависит
С каких это пор задроты-байтоебы занимаются подобной хуетой?

Ответы51950

9 мар, 00:56 324 1151950

>>1151941
>С каких это пор задроты-байтоебы занимаются подобной хуетой?
всегда занимались, выгораешь же

9 мар, 02:43 325 1151985

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

Ответы5199251996

9 мар, 03:11 326 1151992

>>1151985
>норм
#define

9 мар, 04:06 327 1151996

>>1151985
k&r

12 Кб, 300x218
9 мар, 04:27 328 1151999

пиздос. завтра надо сдать программу.
С++ длинная арифметика сложение цифр.
вводим 2 числа a и b. выводит их сумму.
Может кто писал такую и у кого-то код есть?

Ответы52004520215211852191

9 мар, 05:52 329 1152004

>>1151999
>пиздос. завтра надо сдать программу.
>вводим 2 числа a и b. выводит их сумму.
Молодой человек вы разве не знали, что в ВУЗ поступают изначально умные люди для того, чтобы стать еще умнее? Идиотам там делать нечего, только время терять. Послушайте моего совета и забирайте документы оттуда пока не поздно.

Ответы5216952254

32 Кб, 1719x177
9 мар, 06:14 330 1152006

Господа такой вопрос, программирую на крестах второй год в своем НИИ. В принципе разбираюсь на уровне джуна. Проведя анализ биржи фриланса: https://www.freelancer.com/jobs/
пришел к выводу, что для удаленной работы, по сравнению с web-программированием, кресты находятся в невыгодной позиции. Табличка с данными на пикче.
Часто слышал, что web проще чем desktop разработка и в частности web языки легче изучаются, чем кресты - этим и объясняется низкий порог вхождения в данную область.
Крч. Здесь есть люди, которые сменили лыжи с десктоп разработки на крестах на веб-разработку? Расскажите про свой опыт, пожалуйста. Сам интересуюсь потому что из НИИ буду уходить ибо там мрак и хочется пойти туда где деньги можно получать меньше напрягаясь.

Ответы5221953340

9 мар, 06:59 331 1152013

>>1151881
Жесть какая

46 Кб, 640x471
9 мар, 08:19 332 1152021

>>1151999
double a;
double b;
std::cin >> a >> b;
std::cout << a + b;

Ответы52254

9 мар, 11:35 333 1152062

Как преобразовать HKL в string?

9 мар, 11:45 334 1152069

Что за хуйня LPSTR?

Ответы52073

9 мар, 11:59 335 1152073

>>1152069

Индусы-дегенераты когда писали Windows API, делали typedef-ы на фундаментальные типы С и указатели на эти типы.

LPSTR это

typedef CHAR *LPSTR

а CHAR это

typedef char CHAR

Привыкай.

Ответы5207652307

9 мар, 12:01 336 1152076

>>1152073
...
Они что ли специально читаемость кода снижали?

Ответы52081

9 мар, 12:10 337 1152081

>>1152076

Это типа на будущее задел и wrapper-ы. Будешь использовать обертки и если что-то поменяется внутри то не придется переписывать ничего.

Короче хотели как лучше а получилось как всегда.

9 мар, 12:22 338 1152091

>>1151895
2к для московского крестуха это дно.
Чел который 4-5к зашибал кстати тоже в Рашке в офисе работал.

Ответы5222152303

9 мар, 12:47 339 1152118

>>1151999
несложно же, напиши сам

Ответы52254

59 Кб, 1024x874
9 мар, 14:06 340 1152169

>>1152004
Мб ему в жс перекатиться и попробовать JQuery basic math plugin?

Ответы52254

9 мар, 14:12 341 1152174

[code]int a,b;
double d;

d = a / b; //d будет без дробной части, т.к. a/b - целочисленное деление
d = const_cast<int>(a) / b; // будет норм.
[/code]
Есть ещё какие способы по плавающему поделить целые числа, чтобы без уродливой конструкции const_cast?

Ответы52185521885220552207

9 мар, 14:23 342 1152185

>>1152174
static_cast

9 мар, 14:29 343 1152188

>>1152174
Сишный каст?
d = (double)a/b

9 мар, 14:31 344 1152191

>>1151999
в строки эти числа сконверти и хуярь поразрядно еще в строку

9 мар, 14:49 345 1152205

>>1152174
d = 1. * a/b;

Ответы52395

9 мар, 14:50 346 1152207

>>1152174
>Уродливой конструкции

Питон иди учи, статическая типизация не для тебя.

9 мар, 15:18 347 1152219

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

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

9 мар, 15:24 348 1152221

>>1152091
Это не дно, это основная масса, уважаемых профи притом. Больше 2 возможно, и больше 10 возможно, и миллионером стать возможно - только в рашке это достижения, а не мэйнстрим.

Сам получаю 3к, 26лвл. Закончу аспирантуру - уеду, конечно же.

Ответы52296

106 Кб, 400x341
9 мар, 16:15 349 1152254

>>1152004
>>1152169
>>1152021
>>1152118
>длинная арифметика

Ответы52278

9 мар, 16:37 350 1152278

>>1152254
https://docs.microsoft.com/ru-ru/cpp/c-language/cpp-integer-limits
числовые типы данных ограничены не только по значению, но и по количеству разрядов. Поэтому пишутся дополнительные типы данных поддерживающие длинную арифметику для OCHE длинных чисел.

9 мар, 16:55 351 1152296

>>1152221
>аспирантуру - уеду, конечно же
главное не возвращайся
освободи нишу, так сказать, хе хе

Ответы52299

9 мар, 16:57 352 1152299

>>1152296
В СНГ зарплаты всё равно растут медленнее. Чему радоваться-то.

9 мар, 16:59 353 1152303

>>1152091
>2к для московского крестуха это дно.
это зп серьора с 8+ годами опыта и вышкой по специальности
многие работают за меньшие деньги - 70-80 в дс, с 10+ годами опыта

Ответы523195239252747

9 мар, 17:01 354 1152307

>>1152073
>Индусы-дегенераты когда писали Windows API, делали typedef-ы на фундаментальные типы С и указатели на эти типы.
наверное, все же не стоит так категорично судить о вещах, в которых ты, похоже, не очень хорошо разбираешься

9 мар, 17:12 355 1152319

>>1152303
Как раз столько получаю (в недефолтном городе). Без вышки, 7 лет стажа.
>>1151275
Что я не так делаю, Мастер?

Ответы5232752392

9 мар, 17:18 356 1152327

>>1152319
Таки заверши образование, позор же.
И сходи к раввину наконец, исповедуйся.

9 мар, 18:32 357 1152388

cout << GetKeyboardLayout(0);
system("pause");
cout << GetKeyboardLayout(0);
При смене раскладки все равно выдает разное значение. В чем дело, посонлар?

Ответы52406

9 мар, 18:34 358 1152392

>>1152303
>>1152319
1500 баксов для провинции наверное норм.
Для ДС столько — надеюсь вы так троллите, оберегая сферу от залётных.

Ответы5251352747

9 мар, 18:34 359 1152395

>>1152205
Два чая этому знатоку.

9 мар, 18:40 360 1152406

>>1152388
одинаковое значение*

9 мар, 21:01 361 1152513

>>1152392
для провинции норм тыщ 40
тя еще обоссут на собесе если ты какую-нибудь хуйню в крестах не сможешь объяснить, про которую уже и сам страуструп забыл, нахуй она нужны
те нада сильно шарить на такие деньги

Ответы54398

9 мар, 22:35 362 1152613

>>1151881
жирновато

Ответы52747

10 мар, 03:18 363 1152747

57 Кб, 442x80843 Кб, 410x58542 Кб, 446x550

>>1152613
>>1152392
>>1152303
>>1151865
>>1151851
>>1151275
Зачем спорить и гадать на кофейной гуще? Заходите на любую биржу труда программистов и смотрите какая обстановка на сегодняшний день. Особенно понравилась Ростовская область, за которую один человек топил выше.

Ответы527485275252796528005312753198

10 мар, 03:22 364 1152748

70 Кб, 491x82647 Кб, 451x57830 Кб, 391x476

>>1152747
В догонку сравнение с Java разработчиками.

Ответы52752

10 мар, 03:47 365 1152749

>>1151638
Да. Работай под линуксом, с виндой ты заебешься настраивать свой анус Clion.

25 Кб, 646x509
10 мар, 04:46 366 1152752

>>1152747
>>1152748
АААААААААА БЛЯЯЯДЬ!!!!!

Ответы5279152792

10 мар, 09:37 367 1152791

>>1152752
кстати норм зп для поселка со сменным графиком и такими требованиями

10 мар, 09:42 368 1152792

>>1152752
> работа в теплом помещении
> за персональным компьютером
> не менее 20000

Шел 2018 год, загнивал запад..

10 мар, 10:01 369 1152796

>>1152747
Что за биржа?

Ответы5280952811

10 мар, 10:15 370 1152800

>>1152747
В общем не хуже джава-приматов. Тогда всё ОК.

10 мар, 10:54 371 1152809

>>1152796
Похоже на авито.

10 мар, 10:56 372 1152811

>>1152796
Забыл написать. hh.ru

10 мар, 18:32 373 1153070

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

Ответы5307154399

10 мар, 18:33 374 1153071

>>1153070
https://ru.wikipedia.org/wiki/Метод_утёнка

10 мар, 19:42 375 1153096

прорекламирую свой текстовый редактор на c++11 и ncurses
https://gitlab.anrchst.ru/anrchst/iv
крэшится на некоторых корнер-кейсах, но я им уже редактирую

Ответы531165313153586

10 мар, 20:18 376 1153116

>>1153096
По markdown могу дать совет.
>`make iv.opt`
>`sudo cp iv.opt /usr/local/bin/iv`
У тебя в ридми эти команды отображаются в одну строку, потому что между ними нет пустой новой строки. Это первое. Второе, код оборачивают в ```. То есть
>```
>make iv.opt
>sudo cp iv.opt /usr/local/bin/iv
>```
Там тогда можно не вставлять пустую строку между строками, и вообще будет выглядеть как единый блок. Одиночные ` обычно используют для названий переменных в тексте или типа того.

Ответы53117

10 мар, 20:22 377 1153117

>>1153116
спасибо, наконец запомню ```. но в данном случае и так норм

Ответы53118

10 мар, 20:25 378 1153118

>>1153117
хотя пох, поправил

177 Кб, 1548x756
10 мар, 20:58 379 1153127

>>1151865
>>1152747
>>1151881

Ответы5321853374

10 мар, 21:13 380 1153131

>>1153096
https://habrahabr.ru/sandbox/114334/
"А ведь если задуматься, между процессом внутривенной инъекции и логикой текстового редактора есть определенное сходство! Представим, что допустим мне допустим нужно допустим ширнуться допустим метпервътином.

В главных ролях:

— Игла / струна (string!)
— Баян (syringe, focus substance container)
— Вена (голубой экран ПК)

Если у тебя, читатель, та же форма аутизма что и у меня, то ты уже понял, что мы будем набирать в спецбуфер символы файла посланные нам Шивой путем их удачного нахождения где-то рядом, и инжектить их out в View максимально быстро вместе с красивой подсветкой :)"

ебать ты наркоман

Ответы53134

10 мар, 21:17 381 1153134

>>1153131
чет в голос
байтоёбы все такие?

Ответы5313853141

10 мар, 21:32 382 1153138

>>1153134
статью я писал когда коммитов было в джва раза меньше, и я вообще не был уверен в концепции, но щас вроде взлетает, самому по крайней мере нравицца

10 мар, 21:38 383 1153141

>>1153134
"мне, пожалуйста, пиццу с солями"

10 мар, 21:39 384 1153142

Итак. Есть поставщики данных которые регулярно создают файлы с данными. Есть отправщики данных, которые передают их в места назначений. Есть удалятель данных который удаляет файлы после того как они были отправлены по всем назначениям.
Возможна ситуация когда файл один, а назначение одно
Возможна ситуация когда файл один, а назначений много
Возможна ситуация когда файлов много, а назначение одно
Возможна ситуация когда файлов много и назначений много
Если файл пишется, то передавать/удалять его не нужно.
Правильно ли я понимаю что решение выглядит как ограждённый мьютексами список экземпляров структуры с полями вида (отправщик-1 отправил; отправщик-2 отправил; .... отправщик-555 не отправил;), куда периодически подглядывает удаляльщик и удаляет файл если его отправили все отправщики? Или есть решение лучше?

Ответы53144

10 мар, 21:50 385 1153144

>>1153142
везде shared_ptr и rm в деструкторе

Ответы53153

10 мар, 22:00 386 1153153

>>1153144
Т.е. список объектов. А если объект в списке вызовет свой деструктор, то список ведь не заресайзится, а просто на месте этого объекта будет nullptr?

Ответы53161

16 Кб, 967x142
10 мар, 22:03 387 1153158

Мб кто-то тут поможет.

Есть задача на C++. Задачу вроде решил правильно, ответы выводит нужные, но когда загружаю решение пишет ошибку. В чем может быть проблема? Тестировал уже сто раз как мог, вроде ошибок нету. Почему не принимает не понимаю. Код прилагаю.

Задача: Паша и Миша играют в игру. Сегодня они играют в нее t раз. Правила игры такие. На столе лежит q спичек и есть максимальное число спичек которое 1 игрок может взять за один ход это z. (z не может быть больше q). Каждый ход игроки по очереди берут от 1 до z спичек. Паша всегда начинает первый. Надо вывести сколько в каждой игре Паше надо взять спичек на первом ходу, для того чтобы гарантировано выиграть, а если это невозможно вывести 0.

#include <iostream>
using namespace std;
int main()
{
int t, q, z, e;
long long int x[10000], n[10000];
cin>>t;
for(int i=0;i<t;i++)
{
cin>>x>>n;
q=x;
z=n;
if(q < 1 && z < 1){cout<<"0"<<endl;return 0;}
if(q==z){cout<<"1"<<endl;return 0;}else{
for(int i=1;i<q;i++)
{
if((q-i)==z+1 && i<=z)
{cout<<i<<endl;break;}
if(i==q-1){cout<<"0"<<endl;break;}
}}
}
return 0;
}

16 Кб, 967x142
10 мар, 22:03 387 1153158

Мб кто-то тут поможет.

Есть задача на C++. Задачу вроде решил правильно, ответы выводит нужные, но когда загружаю решение пишет ошибку. В чем может быть проблема? Тестировал уже сто раз как мог, вроде ошибок нету. Почему не принимает не понимаю. Код прилагаю.

Задача: Паша и Миша играют в игру. Сегодня они играют в нее t раз. Правила игры такие. На столе лежит q спичек и есть максимальное число спичек которое 1 игрок может взять за один ход это z. (z не может быть больше q). Каждый ход игроки по очереди берут от 1 до z спичек. Паша всегда начинает первый. Надо вывести сколько в каждой игре Паше надо взять спичек на первом ходу, для того чтобы гарантировано выиграть, а если это невозможно вывести 0.

#include <iostream>
using namespace std;
int main()
{
int t, q, z, e;
long long int x[10000], n[10000];
cin>>t;
for(int i=0;i<t;i++)
{
cin>>x>>n;
q=x;
z=n;
if(q < 1 && z < 1){cout<<"0"<<endl;return 0;}
if(q==z){cout<<"1"<<endl;return 0;}else{
for(int i=1;i<q;i++)
{
if((q-i)==z+1 && i<=z)
{cout<<i<<endl;break;}
if(i==q-1){cout<<"0"<<endl;break;}
}}
}
return 0;
}

Показать весь текст
Ответы53186

10 мар, 22:06 388 1153161

>>1153153
а в списке объектов weak_ptr, он да, обнулится

10 мар, 23:00 389 1153186

>>1153158
#include <iostream>
using namespace std;
int main()
{
int t,q,z;
long long int x[10000], n[10000];
cin>>t;
for(int i=0;i<t;i++)
{
cin>>x>>n;
q=x;
z=n;
cout<<q%(z+1)<<endl;
}
return 0;
}

Ответы53188

10 мар, 23:04 390 1153188

>>1153186
Все заработало

10 мар, 23:16 391 1153198

>>1152747
Вроде же уже обсуждали, биржа показывает зарплаты ниже реальных.
Грубо говоря, то, что вакансия висит на бирже, уже значит, что она с оплатой ниже реального рынка - иначе бы была уже занята.

Ответы532025320553218

10 мар, 23:20 392 1153202

>>1153198
А мне показалось, что даже наоборот. Указывают одну, а потом всячески сбивают.

19 Кб, 892x517
10 мар, 23:20 393 1153203

Аноны, такая ситуация:
Есть два .h файла, выглядят грубо говоря вот так, так много ещё чего есть но проблема только в этом. Не компилится, т.к. в параметр static-функции я передаю объект класса, но в этом файле находится только прототипбез прототипа он ругается даже в самом объявлении функции в классе А, до реализации дело не доходит
Так вот, я понимаю, что если я закину всё определение класса B в файл с классом A этой ошибки не будет, но так делать я не хочу, можно ли как-то это обойти?

Ответы53214

10 мар, 23:21 394 1153205

>>1153198
Я лично всегда делал контрпредложение в полтора раза больше максималки в вакансиях.
Это прокатывает в одном собеседовании из трех примерно. Ну и зачем тогда работать за гроши?

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

Ответы5320653210

10 мар, 23:23 395 1153206

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

Ответы53216

10 мар, 23:27 396 1153210

>>1153205
>Еще один секрет от деда - не просите повышения, уходите сразу к другим. Проще нанять нового человека на большую зп, чем поднять старому, психология же.
Ищи нового. Искать нового — это напрягать программистов ходить на собеседования, тратить их дорогущее время. Если найдёте — новый поначалу будет разбираться в системе, тупить. А таски стоять нетронутыми.
>Больше года на одном месте работать не стоит, больше двух - категорически.
Тыскозал?

Ответы53376

10 мар, 23:30 397 1153214

>>1153203
засунуть f в B?

Ответы53217

10 мар, 23:30 398 1153216

>>1153206
Ну просто кодер перед тобой, ты знаешь его как облупленного со всеми его недостатками, раз. Сравнивать текущие показатели с прошлогодними не очень чувствительно.
Два, он же работает на этой зп, терпит, так нафига ему повышать?

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

10 мар, 23:32 399 1153217

>>1153214
Но f это функция класса A.
Думаю, что это скорее всего сработает, но немного нарушается логика.

10 мар, 23:35 400 1153218

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

Ответы53221

10 мар, 23:44 401 1153221

>>1153218
>там дохуя вакух которые висят годами и созданы фирмами лишь для мониторинка рынка
Что это такое?
В моем городе пара галер держат вакансии постоянно, но они и берут по ним время от времени. Что значит- только для мониторинга, не могут же они...

Ответы53223

10 мар, 23:46 402 1153223

>>1153221
это влажные фантазии анона о массовом заговоре сотрудников кадров

Ответы53229

11 мар, 00:09 403 1153229

>>1153223
сотрудник кадров, плиз

Ответы53240

11 мар, 00:29 404 1153240

>>1153229
нет. аналитик (бывший прогер)
работаю на проетке HCM в крупном банке и знаю много поднаготной

Ответы53262

11 мар, 01:27 405 1153262

>>1153240
возьми меня роботать
я старый но дешевый и с дипломом и с опытом

Ответы53263

11 мар, 01:30 406 1153263

>>1153262
хотя не надо
буду догнивать

11 мар, 03:16 407 1153298

Можно ли как-то прикрутить к своему поделию произвольную либу в рантайме?

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

Ответы5331453323

11 мар, 04:33 408 1153314

>>1153298
надеюсь ты еще студентик или учишься
безработный старпер

Ответы53479

11 мар, 05:27 409 1153323

>>1153298
Можно, dlopen, dlsym, руками кастишь найденную функцию к нужной сигнатуре. Но ты анивей должен ее знать. Т.е. взять рандомную либу и наугад чето там погрузить у тебя не получится. Клепать рандомные плагины самому для своего говноподелия - вполне реально, сам так в сосничестве баловался.

Ответы53485

11 мар, 07:57 410 1153340

>>1152006

Если ты об этом всерьёз задумался, то значит тебе уже пора вкатываться в ПХП.

11 мар, 08:05 411 1153342

>>1151736

operator new в классе. Чему вас только там учат? Такой херни в нормальном коде уже лет 10 не видел.

Ответы5335553365

11 мар, 10:01 412 1153355

>>1153342
Это нужно для самостоятельного распределения памяти.

Ответы54348

11 мар, 11:10 413 1153365

>>1153342
Например кастомные операторы new нужны для всяких трюков с выравниванием. Eigen их юзает, для всякой SIMD магии.

Ответы53612

11 мар, 11:39 414 1153374

>>1153127
Спасибо за труды, если сам сделал этот график. Можно добавить в следующий тред.

11 мар, 11:44 415 1153376

>>1153210
>Если найдёте — новый поначалу будет разбираться в системе, тупить. А таски стоять нетронутыми.
Два чая. Если ты нужен руководству, то поднимут зп. Если ты просиживаешь штаны и на тебе ничего не завязано важно, то отпустят и заменят таким же из соседнего отдела.

Ответы53420

11 мар, 13:47 416 1153415

так, а в vs15 теперь нельзя формы делать на плюсах?

Ответы54564

11 мар, 13:54 417 1153420

>>1153376
>Если ты нужен руководству, то поднимут зп.
Ты кое-что путаешь. Руководство довольно херово в среднем соображает, насколько ему нужен конкретный кодер.
Так что повышение зависит не от твоей реальной пользы, но от того, как ты себя презентуешь.

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

Ответы5342653428

11 мар, 13:59 418 1153426

>>1153420
при
пек
ло

Ответы53435

11 мар, 14:04 419 1153428

>>1153420
>Руководство довольно херово в среднем соображает
На херовых галерах — херово соображает

11 мар, 14:08 420 1153435

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

Ответы53439

11 мар, 14:11 421 1153439

>>1153435
пришел к нам как то джун
начал выебываться какие мы все хуевые, комментраии не пишем
довыебывался

Ответы5344653965

11 мар, 14:17 422 1153446

>>1153439
Так нужно начинать на равных, т.е. минимум с позиции мидла. Потом сделать немного нормальной работы, узнать есть ли альфачи в конторе и устраивать против них козни вышестоящему начальству, а беток и омег подминать под себя, не забывая и их тоже хуесосить перед начальством. Сначала втихая, а потом, когда образ говеных погромистов у начальства уже сложится - уже напрямую, чтобы все видели, кто главный. Совсем охуенно, если есть возможность пидорнуть как можно больше людей с конторы и нанять вместо них своих шавок, которые будут тебя боготворить. Тогда контору можно будет вообще как угодно вертеть на хую, пока не появится более прокачанный альфач и не попытается провернуть ту же схему.

Ответы5344953453

11 мар, 14:20 423 1153449

>>1153446
Тут самое главное, чтобы начальство не обладало никакими техническими навыками, т.е. понимало суть погромирования по минимуму (а таких 95% менеджмента). Дальше чистые софт скиллз, примативная доминация, игры обезьян.

Ответы53453

11 мар, 14:25 424 1153453

>>1153446
>>1153449
Бля, вот сейчас думал, нигде ли я не преувеличиваю, не жирно ли получилось и с улыбкой вспоминаю, что из моего опыта почти все альфачи по такой схеме работали. Остальные, чаще всего, сосут хуи за мелкий прайс.

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

32 Кб, 460x288
11 мар, 14:35 425 1153471

11 мар, 14:44 426 1153479

>>1153314
Веб-макака, плюсами занимаюсь по любви.

11 мар, 14:46 427 1153485

>>1153323
Ну про наугад никто не говорит. Я думал, json рядом с ней положить со всемли плюшками.

52 Кб, 600x600
11 мар, 15:18 428 1153537

Наткнулся на интересную особенность: если future не сохранять в переменную, то программа блокируется на месте вызова асинхронной функции.
https://ideone.com/J5o1FL
https://ideone.com/VaBhXA
Почему так? Где об этом почитать?

Ответы535415354553557

57 Кб, 1280x720
11 мар, 15:23 429 1153541

>>1153537
https://stackoverflow.com/questions/30810305/confusion-about-threads-launched-by-stdasync-with-stdlaunchasync-parameter

Ответы53566

11 мар, 15:24 430 1153542

Ой, не та ссылка.

91 Кб, 1350x634
11 мар, 15:26 431 1153545

>>1153537
А, нет, та, просто в вопросе этого нет, но есть в ответе.

Ответы53566

11 мар, 15:36 432 1153557

>>1153537
Жабка кстати тоже так делает, вроде.

Ответы5356653702

426 Кб, 1366x768
11 мар, 15:43 433 1153566

>>1153545
>>1153541
Спасибо. Довольно логичное поведение. Правда, после пистона и шарпа, неожиданное.
>>1153557
Про джаву не знаю, но в шарпе таких граблей не встречал.

11 мар, 16:08 434 1153586

релиз плюсоклона vi `iv` v0.0, 128 коммитов нахуячил >>1153096

Ответы53591

11 мар, 16:11 435 1153591

>>1153586
В русские буквы-то уже умеет?

Ответы53615

11 мар, 16:35 436 1153612

>>1153365
>кастомные операторы new нужны для всяких трюков с выравниванием
а можешь еще привести примеры практического использования этого? те которые на продакшене используются, в боевом софте
если знаешь, конечно

Ответы53641

11 мар, 16:44 437 1153615

>>1153591
умеет!

Ответы5361853619

11 мар, 16:46 438 1153618

>>1153615
А член увеличивает?

29 Кб, 1600x791
11 мар, 16:46 439 1153619

>>1153615

29 Кб, 418x473
11 мар, 16:48 440 1153620

$ git clone http://git.anrchst.ru/anrchst/iv.git
Cloning into 'iv'...
fatal: unable to access 'https://git.anrchst.ru/anrchst/iv.git/': SSL: certificate subject name (anrchst.ru) does not match target host name 'git.anrchst.ru'

Ответы53622

11 мар, 16:50 441 1153622

>>1153620
да, Clone URL я нормальные еще не выставил, клонировать можно ту же https-ссылку
$ git clone https://gitlab.anrchst.ru/anrchst/iv
Cloning into 'iv'...
remote: Counting objects: 501, done.

Ответы5364053668

11 мар, 17:14 442 1153640

>>1153622
и еще можно в Releases скачать .tar.gz
алсо, в качестве гайда по vi начинать можно с config.cpp,
там кейбиндинги. реализация в handle_command.cpp

11 мар, 17:14 443 1153641

>>1153612
Таким трюком можно ещё запретить использовать объекты класса в куче, а только на стеке.

57 Кб, 573x604
11 мар, 17:45 444 1153668

>>1153622
А зачем ты вообще пишешь клон ви? Just4lulz?

Ответы53699

11 мар, 18:09 445 1153699

>>1153668
ну да, ну и кресты подзадрочить

Ответы53728

11 мар, 18:11 446 1153702

>>1153557
Это неправда.

11 мар, 18:29 447 1153728

>>1153699
> handle_command.cpp
Сделай разбор аргументов через map
Ключ строка - название функции (или что там у тебя)
А значение функция которая разбирает саму строку дальше.

Ответы53753

11 мар, 18:48 448 1153753

>>1153728
ну это довольно очевидная оптимизация, что-то подобное будет

Ответы53849

457 Кб, mp4,
854x480, 0:01
11 мар, 20:04 449 1153849

>>1153753
> будет

Кто ас паттернов? 11 мар, 20:25 450 1153867

Меня послали в ваш тред.
Суть вопрса — Паттерны Банды четырех. Не могу понять одну штуку с паттерном Декоратор.

Вот у меня есть, например, Декоратор: class Decorator: public Devil{...};

Я унаследовал от этого декоратора Wings и Vile, оба одинаково: class Wings: public Decorator{...};

А теперь хочу запилить себе черта с крыльями и вилами.
Пишу такое объявление: Devil✱ tres{ new Vile(new Wings(new Devil(200000))) };

Вызываю функцию для проверки — она выдает, что крылья и вилы есть.
tres->who();

Вызываю дополнительную фичу, которую делают вилы, всё ок: dynamic_cast<Vile✱>(tres)->vile_poke();

А когда хочу вызвать фичу, которую делают крылья, получается вылет за попытку разыменовать nullptr:
dynamic_cast<Wings✱>(dynamic_cast<Vile✱>(tres))->wing_clap();

ЧЯДНТ?

Как вообще можно добраться до всех этих промежуточных фичей, которыми задекорирован объект.
Devil✱ cuatro{ new Wings(new Vile(new Cigar(new Devil(61613)))) };
Банда показывала инициализацию матрешкой, но из такой штуки можно добраться только до функций наружного декоратора — для cuatro только до функций Wings, а как же мне заюзать внутренние матрешки Vile и Cigar?

Ответы538905390956883

11 мар, 20:42 451 1153890

>>1153867
запости на pastebin код

Ответы53909

11 мар, 21:07 452 1153909

>>1153867
>>1153890
https://pastebin.com/NMqSYw48
Вот он. В финальном примере с cuatro вообще никуда кроме внешней добраться нельзя.

Ответы53922

11 мар, 21:23 453 1153922

>>1153909
Зачем ты делаешь такие объявления?
Devil dos{ new Vile(new Devil(61613)) };
Devil tres{ new Vile(new Wings(new Devil(200000))) };

Ответы539325397554041

11 мар, 21:36 454 1153932

>>1153922
Двачую вопрос, есть ощущение, что ты вообще не понимаешь, как применяется наследование.

Ответы5397554041

11 мар, 21:40 455 1153934

Кто может подсказать какие годные видео/статьи/книги про асинхроность и конкурентность? Необязательно именно под кресты, просто чтобы толково объяснили, как и для чего это нужно.

Ответы53948

11 мар, 22:02 456 1153948

>>1153934
Лучший способ - это сделать многопоточную йобу.

Ответы53952

11 мар, 22:03 457 1153951

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

Ответы5395354587

11 мар, 22:04 458 1153952

>>1153948
Я и такую делаю многопоточную йобу, но хочется чтобы сначало было понимание, а потом код, а не наоборот.

11 мар, 22:05 459 1153953

>>1153951
Удали студию, ставь linux mint и qt creator.

Ответы5395453956

11 мар, 22:05 460 1153954

>>1153953
советы уровня /b

11 мар, 22:06 461 1153956

>>1153953
Я УЖЕ РЫДАЮ

11 мар, 22:18 462 1153965

>>1153439
concurrency in action или чот такое

11 мар, 22:26 463 1153975

>>1153932
>>1153922
А как мне его объявлять? Сразу типом декоратора?
Судя по тому, что выдает виртуальная функция who(), срезания нет и все надстройки классов-наследников (сиречь декораторы) видны.

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

Ответы5398054060

11 мар, 22:31 464 1153980

>>1153975
Начать с того, что ты пиздоглазое мудило в C++ нет дектораторов.

Ответы5398254015

11 мар, 22:33 465 1153982

>>1153980
он о паттерне видимо

11 мар, 23:07 466 1154015

>>1153980
Дектораторов нет вообще, по крайней мере гугол не знает о таком.
А если ты хотел напечатать декораторов, но опечатался, напомню, с чего начинался мой вопрос:
>Суть вопрса — Паттерны Банды четырех. Не могу понять одну штуку с паттерном Декоратор.

Так что, по делу мне посоветуете что-то?
Может, Я просто лишнего ожидаю от этого декоратора и он свои дела делает только при создании объекта?
Только что перечитал код в примерах Банды и стало закрадываться такое подозрение.

11 мар, 23:20 467 1154030

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

Ответы54602

11 мар, 23:37 468 1154041

>>1153922
>>1153932
Смотрите, перепилил код объявления объектов. https://pastebin.com/C9U8GkHB
Все равно остается вопрос, как вызвать это самое AddedBehavior, когда декораторов несколько вложенных. Для наружного — без проблем (как и было моим кривым способом), а вот вложенный уже никак недоступен, получается.
Что делать?

Ответы54054

11 мар, 23:54 469 1154054

>>1154041
Не совсем понятно зачем ты используешь этот декоратор в данном примере.

Ответы54086

12 мар, 00:01 470 1154060

>>1153975
чувак, ты реально не понимаешь что пишешь.
вот это вот
Devil tres{ new Vile(new Wings(new Devil(200000))) };

еще как-то работает. ты, кстати, понимаешь сам, что именно тут происходит?
если че, ты тут объявляешь переменную типа "указатель на Devil",
дальше, new Vile (...) кладет в переменную типа "указатель на Devil" объект типа Vile,
а дальше вся эта ботва после new Vile записывает что-то в Devil devil; в классе Decorator.

дальше вот это:
dynamic_cast<Wings>(dynamic_cast<Vile>(tres))->wing_clap();
вот это - dynamic_cast<Vile>(tres) сработает потому что Devil tres{ new Vile(...) - там и лежит Vile.
а вот это - dynamic_cast<Wings*>(...) - уже нет.
потому что Vile (то что создавалось) - это или Vile или Decorator или Devil
class Vile : public Decorator
class Decorator : public Devil

а Wings (к чему приводится) - это или Wings или Decorator или Devil
class Wings : public Decorator

Ответы5406654086

12 мар, 00:03 471 1154062

Как правильно в вижаке или вообще цеплять библиотеки в следующих сценариях:
1. Я использую стороннюю библиотеку и НЕ вношу в нее никакие изменения, я не хочу, чтобы при компиляции целевого проекта пересобиралась либа, но при этом я хочу использовать функции/классы из этой либы. Достаточно просто в дополнительных включаемых файлах в настройках целевого проекта указать путь к исходникам либы? Нужно ли при этом в ссылках проекта добавлять проект либы? Нужно ли билдить либу в static lib, или ее вообще можно не билдить, раз я только исходники беру?
2. Я использую библиотеку и иногда вношу в нее изменения, я согласен, если такая либа будет перекомпилироваться каждый раз, когда я собираю целевой проект, но в идеале бы, конечно, чтобы пересборка либы была только по необходимости. Я также, как и в первом сценарии, хочу использовать функции/классы из этой либы.

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

Ответы54064

12 мар, 00:07 472 1154064

>>1154062
на оба вопроса. берешь либу, вносишь (или не вносишь) изменения, собираешь один раз, указываешь путь к заголовкам и собранной либе. (static или dynamic - зависит от настроек твоего проекта - везде должно быть одно и то же).
если dynamic - при запуске программа тоже должна ее найти. можно в post-build step копировать либу в папку с екзешником.

Ответы54783

12 мар, 00:09 473 1154066

>>1154060
Можно сделать оператор преобразования типа.
Или сделать нормальное наследование без ебучих ненужных здесь декораторов.
мимо

Ответы5407054081

12 мар, 00:09 474 1154070

>>1154066
Алсо спасибо за объяснение, сам не до конца понимал как работает это объявление с несколькими типами в скобках.

12 мар, 00:25 475 1154081

>>1154066
можно. но не сделано же. а самая радость там - фигурные скобки в строке с new. вот для чего они там? почему фигурные а не обычные? вот стопудово автор сам не знает.

Ответы540925460456486

12 мар, 00:28 476 1154085

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

Ответы56486

12 мар, 00:28 477 1154086

>>1154060
>чувак, ты реально не понимаешь что пишешь.
Да! Потому и пришел за помощью.

>>1154054
Я этот пример придумал от балды, чтобы проверить, понял по примеру из книжки или не понял. Оказывается, таки не понял.

Я себе это представлял так. Есть Дьявол с каким-то числом.
Можно снабдить его Вилами, у которых метод vile_poke(), наносящий урон.
Можно прицепить ему Крылья, у них метод wing_clap(), делающий оглушение.
Можно дать ему Сигару, которую он курит (метод smoke()) и уменьшает видимость.
Все эти уроны оглушения и уменьшения видимости зависят от его номера. Поле с номером объявляется в самом базовом классе Devil.

Для комбинации Вил, Крыльев, Сигары (…Хвоста, Перевернутого_распятия, Плетки, Клейма и т. д.) есть два варианта:
1. Запилить всё сразу в базовом классе и перегружать в наследниках только то, что нужно. Это плохо, классы платят за то, что им не нужно.
2. Понаследовать множественным наследованием все нужные комбинации. Тоже плохо — комбинаторный рост.

Я так понял по примерам Банды четырех, что можно сделать иначе:
от Дьявола унаследовать Декоратор и его конкретными объектами сделать Крылья, Вилы и прочее, — всё с соответствующим добавленным поведением. А потом изначальный объект Devil при создании вкладывать в это дело по принципу матрешек.

Теперь мудохаюсь и не могу понять, как мне вызывать это добавленное поведение у вложенных внутрь матрешек.
Пример Vile✩ x{ new Vile(new Wings(new Devil(200000))) };

Для наружной вызывается норм, ведь это ее метод. x->vile_poke();
Для внутренней тоже норм, ведь все декотраторы наследуют этот метод, а внутри объект базового класса: x->who();
А вот как сделать вызов x->wing_clap(); метода в классе Wings мне непонятно.
Приведения dynamic_cast никуда не приводят (пардон за тавтологию).
Получается, рекурсивно вложить можно сколько хочешь, а вызывать дополнительно прописанное поведение можно только у внешнего декоратора? Я правильно понял идею?

12 мар, 00:28 477 1154086

>>1154060
>чувак, ты реально не понимаешь что пишешь.
Да! Потому и пришел за помощью.

>>1154054
Я этот пример придумал от балды, чтобы проверить, понял по примеру из книжки или не понял. Оказывается, таки не понял.

Я себе это представлял так. Есть Дьявол с каким-то числом.
Можно снабдить его Вилами, у которых метод vile_poke(), наносящий урон.
Можно прицепить ему Крылья, у них метод wing_clap(), делающий оглушение.
Можно дать ему Сигару, которую он курит (метод smoke()) и уменьшает видимость.
Все эти уроны оглушения и уменьшения видимости зависят от его номера. Поле с номером объявляется в самом базовом классе Devil.

Для комбинации Вил, Крыльев, Сигары (…Хвоста, Перевернутого_распятия, Плетки, Клейма и т. д.) есть два варианта:
1. Запилить всё сразу в базовом классе и перегружать в наследниках только то, что нужно. Это плохо, классы платят за то, что им не нужно.
2. Понаследовать множественным наследованием все нужные комбинации. Тоже плохо — комбинаторный рост.

Я так понял по примерам Банды четырех, что можно сделать иначе:
от Дьявола унаследовать Декоратор и его конкретными объектами сделать Крылья, Вилы и прочее, — всё с соответствующим добавленным поведением. А потом изначальный объект Devil при создании вкладывать в это дело по принципу матрешек.

Теперь мудохаюсь и не могу понять, как мне вызывать это добавленное поведение у вложенных внутрь матрешек.
Пример Vile✩ x{ new Vile(new Wings(new Devil(200000))) };

Для наружной вызывается норм, ведь это ее метод. x->vile_poke();
Для внутренней тоже норм, ведь все декотраторы наследуют этот метод, а внутри объект базового класса: x->who();
А вот как сделать вызов x->wing_clap(); метода в классе Wings мне непонятно.
Приведения dynamic_cast никуда не приводят (пардон за тавтологию).
Получается, рекурсивно вложить можно сколько хочешь, а вызывать дополнительно прописанное поведение можно только у внешнего декоратора? Я правильно понял идею?

Показать весь текст
Ответы5409354095

12 мар, 00:34 478 1154092

>>1154081
Я тоже не знаю, показалось странным, но т.к. я джун, то подумал, что просто не знаю, что это такое и так нужно, попытался нагуглить, но даже запрос нормально составить не получилось.

Ответы5409656486

12 мар, 00:34 479 1154093

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

Ответы54102

12 мар, 00:36 480 1154095

>>1154086
еще раз: декораторы НЕ изменяют интерфейс класса, которому добавляют функциональности
помедитируй над этим..

Ответы54102

12 мар, 00:36 481 1154096

>>1154092
прикол в том, что это синтаксис инициализации массива!
типа int data[] = {1,2,3}; и после этого data[0] будет 1, data[1] - 2 и т.д.
а тут при создании объекта в конструктор класса передается массив, созданный на месте, состоящий из одного объекта. зачем??

Ответы54097

12 мар, 00:38 482 1154097

>>1154096
Типо мы создаём указатель на массив из одного элемента, который довольно странный, какое-то извращение.

12 мар, 00:42 483 1154101

Знаю С и Java. С какой книги начать С++?

Ответы54104544435467356486

12 мар, 00:42 484 1154102

>>1154093
Спасибо. Видимо, стоит освежить и дополнить знания.
>>1154095
Спасибо. Вот это было прямо мега в точку!
Я понял, что до этого всё понимал шиворот-навыворот.

Благодарю, что разобрались в моей проблеме и пнули в нужном направлении.

12 мар, 00:44 485 1154104

>>1154101
Липпман, Шилдт

Ответы54345

12 мар, 07:24 486 1154345

>>1154104
Шилдт - говно.

12 мар, 07:35 487 1154348

>>1153355
Не нужен operator new для самостоятельного распределения памяти. Аллокатор надо свой писать, а не operator new. http://en.cppreference.com/w/cpp/concept/Allocator

Думаешь, написал ты operator new для своего класса, а потом хочешь его в std::vector поместить, вызовется ли твой operator new для выделения памяти под элементы вектора? Подумай еще раз. Правильный ответ: нет, нихуя не вызовется. И вообще, STL игнорирует operator new, а использует только аллокаторы. И правильно делает.

Ответы54506

12 мар, 11:47 488 1154391

>>1150729
Бля, ты можешь мне на моём примере показать, как развернуть эту конструкцию?

12 мар, 11:52 489 1154392

>>1151580
Потому что они очень много где нужны, а потом всё ебало в c_str()

12 мар, 12:05 490 1154398

>>1152513
Помню меня на собеседовании спросили про auto_ptr, а я помнил лишь то, что он deprecated, хотя в целом об умных указателях знал достаточно. Охуеть короче.

Ответы54401

12 мар, 12:05 491 1154399

>>1153070
Я обычно успеваю сформулировать и отписать, а потом решение приходит до первого ответа.

12 мар, 12:11 492 1154401

>>1154398
Это правильный ответ вообще-то. Можешь обоссать их, если возражают.

Ответы54402

12 мар, 12:12 493 1154402

>>1154401
Ну работаю в итоге.

12 мар, 13:09 494 1154420

инициализация фигурными скобочками это C++11 если ниче не путаю

Ответы544235442454607

12 мар, 13:13 495 1154423

>>1154420
точно, https://stackoverflow.com/questions/41212130/understanding-the-weird-syntax-with-curly-braces-in-a-constructor-initializer-li#41212253

12 мар, 13:14 496 1154424

>>1154420
Да, но вроде ещё в си так можно было инициализировать структуры.

Ответы54425

12 мар, 13:15 497 1154425

>>1154424
я знал что если конструктор принимает std::initializer_list, то так можно, а так вот встречал, но матчасть не знаю

12 мар, 13:47 498 1154443

>>1154101
>Знаю С
adt мап на красно-черных на макросах напишешь?

12 мар, 14:21 499 1154469

>>1147021 (OP)
Здарова аутисты, поясните мне за барьеры памяти, std:atomic, вот это всё...

Ответы54531

12 мар, 14:48 500 1154506

>>1154348
Чё ты несёшь.
Ты вот говоришь вещи которые не относятся к моей программе никак, ты вообще даже не знаешь принцип работы и почему я перегружал operator new.

Ответы54893

12 мар, 15:23 501 1154531

>>1154469
открываешь драфт текущего стандарта, там под atomic аж целый раздел выделен, читаешь, медитируешь..
если тупой и сам не можешь то идешь на канал cppcon, там с десяточек докладов есть - смотришь, медитируешь..

Ответы54534

12 мар, 15:28 502 1154534

>>1154531
Ну я чё ты двумя словами то не можешь братухе пояснить ежже? Русачек штоле? собсно вопрос вызывает только memory_order_acq_rel, примерчик бы простой как его применять, а остальные я юзал в своем быдлокоде..

Ответы54555

12 мар, 16:01 503 1154555

>>1154534
это гуглится же
ты pr на прочность проверяешь что ли?

12 мар, 16:19 504 1154564

>>1153415
https://social.msdn.microsoft.com/Forums/vstudio/en-US/e6fbde42-d872-4ab3-8000-41ab22a4a584/visual-studio-2017-windows-forms?forum=winformsdesigner

Но может лучше что-то кроссплатформенное, типа кути или wx виджетов?

12 мар, 16:26 505 1154567

https://www.wikihow.com/Write-Standard-Code-in-C++
Английский знаю плохо, подскажите, можно ли научиться программировать по данному гайду?

Ответы5458954591

223 Кб, 1024x768
12 мар, 16:53 506 1154587

>>1153951
То же что и при любой проблеме с шиндой.

Ответы54648

12 мар, 16:55 507 1154589

>>1154567
Нет, иди нахуй.

12 мар, 16:56 508 1154591

>>1154567
Да, добро пожаловать.

12 мар, 17:03 509 1154602

>>1154030
Я про это и писал. Взять конпетятор от плюсов и просто не использовать всякие смартпонтеры, виртуальные указатели на шаблоны перегруженных классов.
Для обучения if-ов, for-ов и прочих встроенных массивов хватит. Только ввод некрасиво смотрится, и инклюды.

12 мар, 17:09 510 1154604

>>1154081
>Скотт Мейерс. Эффективный и современный C++
Фигурные скобки это инициализатор списком http://en.cppreference.com/w/cpp/language/list_initialization

12 мар, 17:14 511 1154607

>>1154420
Грубо говоря, суть в C++11 с этими фигурными скобочками стала такой. Если у класса есть пользовательский конструктор, то тогда будет произведена попытка вызова конструктора с параметрами, заданными в фигурных скобках, если же такого конструктора нет, то будет произведена попытка привести элементы в фигурных скобках к initializer_list, но, опять же, со своими ограничениями. Если конструктора нет - то будет выполнена агрегирующая инициализация (короче говоря, как инициализировались структуры все время)

Подробнее сюда http://en.cppreference.com/w/cpp/language/list_initialization

12 мар, 18:44 512 1154648

>>1154587
Переустановить?

12 мар, 19:27 513 1154672

>>1149646
Ты там дрочишь месяц, что ли ?
мимо месяц уже шаблончеки простые пишу

12 мар, 19:28 514 1154673

>>1154101
Лафоре. Немного устарела, но в целом ахуеннейшая книга. Из минусов - много воды.

12 мар, 20:01 515 1154686

Крестоны, подскажите, а где можно полуркать полезную инфу для C++ программиста, помимо самого кодинга.
Например:
Wix, деланье инсталяторов.
Cmake
makefile
Nu vi ponali.

Кроме официальной документации. Желательно видеокурс.

Ответы5469654998

12 мар, 20:24 516 1154696

>>1154686
google.google

12 мар, 22:54 517 1154753

>>1151193
Handmade Hero, начинай прямо с первых стримов. https://www.youtube.com/user/handmadeheroarchive
Очень годная вещь

Только учти, что у реальных движкописателей, которые считают байты как детей родных, очень своеобразный подход к коду и используется около нуля фичей плюсов ради ПРОИЗВОДИТЕЛЬНОСТИ и ДЕТЕРМИНИРОВАННОСТИ.

12 мар, 23:42 518 1154783

>>1154064
>указываешь путь к заголовкам
Ну да, additional include libraries, вот там указываю путь к хэдерам
>и собранной либе.
Вот это как я понял равносильно в VS добавить один проект в референсы другому (либу добавить в качестве референса у целевого проекта), так? Если да, то у меня при каждой сборке все равно сначала либа строится оче долго, ЧЯДНТ?

Ответы5489254915

13 мар, 04:29 519 1154892

>>1154783
> Если да, то у меня при каждой сборке все равно сначала либа строится оче долго, ЧЯДНТ?
Собери библиотеку, получи на выходе .dll или .lib файл, после чего выкидываешь .cpp-шники либы из проекта, оставляя только хедеры.
Линкуешь проект с полученным ранее .dll- или .lib-файлом.

13 мар, 05:52 520 1154893

>>1154506
Да мне похуй на твою laba1.cpp. Раскинь мозги, если хочешь научится чем-то большему, чем твои примитивные домашние задания.

13 мар, 09:21 521 1154915

>>1154783
не. в 2010 студии это в свойствах проекта - VC++ directories - include directories, library directories и т.д. в 2013 так же, в 2015 не помню где, там вроде по другому как-то, нет сейчас под рукой.
причем чисто от себя советую туда писать что-то типа $(BOOST_DIR)\include $(BOOST_LIB)\stage\lib
а BOOST_DIR установить в настройках винды в переменных окружения. тогда если будешь открывать проект на другой машине - не надо будет менять файлы проекта и либы по тем же путям класть, достаточно будет только переменную установить в другое значение.
а референсы - это для установления зависимостей между проектами в солюшине. между своими. типа если твой екзешник зависит от твоей же дллки - указываешь зависимости там и дллка будет компилироваться сначала а потом екзешник.

13 мар, 11:32 522 1154939

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

Ответы55003

13 мар, 12:17 523 1154956

char buffer;
buffer = getBuffer(); // Получаем указатель на char[50]
memset(buffer, 0, sizeof(buffer));

Этот memset отработает так, как я думаю? Не затрет неизвестно что после указателя, а именно данные в массиве?

Ответы5500655029

13 мар, 14:02 524 1154998

>>1154686
> Cmake
https://eax.me/cmake/

13 мар, 14:12 525 1155003

>>1154939
https://cmake.org/examples/
https://cmake.org/cmake-tutorial/

Ответы55043

13 мар, 14:13 526 1155006

>>1154956
А ты посмотри sizeof(buffer).

Ответы55010

13 мар, 14:18 527 1155010

>>1155006
Там макаба звёздочку съела.

Ответы55014

13 мар, 14:19 528 1155014

>>1155010
Тогда всё ок должно быть.

13 мар, 14:27 529 1155018

>>1151193
Так напиши сам простенькую игру.

13 мар, 14:42 530 1155029

>>1154956
ты получаешь указатель просто на char* и затираешь 4 или 8 байт

Ответы55030

13 мар, 14:44 531 1155030

>>1155029
Да макаба пожрала звёздочки.
Ща.

Ответы55033

13 мар, 14:47 532 1155033

>>1155030
https://paste.ofcode.org/ZnsafjsXt4rUP6XtMhR7Ke

Ответы55051

13 мар, 15:04 533 1155043

>>1155003
Пиздец говнище. А автоматически нельзя это как-то? Из проекта студии там сгенерировать?

Ответы5504555047

13 мар, 15:07 534 1155045

>>1155043
Учись ходить, колясочник.

13 мар, 15:10 535 1155047

>>1155043
Так напиши генератор cmake файлов.

13 мар, 15:14 536 1155051

>>1155033
Лучше сделай функцию которая возвращает размер буфера
Иначе у тебя просто будет указатель на char и выяснить размер массива у тебя не получится.

Ответы55078

13 мар, 15:48 537 1155078

>>1155051
Подожди-подожди. Я сейчас хочу понять, где я мудак. Разыменование что даст? Я получу просто первый символ массива? Таким образом, sizeof не сработает так, как я этого ожидаю?

Ответы55096

13 мар, 16:07 538 1155096

>>1155078
> Я получу просто первый символ массива?
Да.

> Я сейчас хочу понять, где я мудак.
Разберись как работают указатели

> Таким образом, sizeof не сработает так, как я этого ожидаю?
Не-а

14 мар, 11:45 539 1155554

Вымерли.

14 мар, 15:52 540 1155614

Посоны, недавно пользовался в C# System.Windows.Threading.Dispatcher, охуенная штука, скажу я вам. В C++ есть какая-нибудь уже готовая баблиотека, которая реализует данный функционал или опять придется хуи сосать и бочку делать?
Boost не подойдет - там ни хуя такого нету.

Ответы5564255653

14 мар, 16:48 541 1155642

>>1155614
А что он делает? Тред пул что-ли?

14 мар, 17:03 542 1155653

>>1155614
Попробуй корутины от фэйсбука.
Ключевое слово - FiberManager.

Ответы56146

14 мар, 20:45 543 1155802

Цппаноны, лет 10 назад была книга у Эккеля- think c++ что ли. Стоит ли ее читать или устарелое говно?

Ответы55824

14 мар, 21:27 544 1155824

>>1155802
Устарелое, конечно, но если перекатываешься из C, то можешь прочесть, она как раз для таких написана.

17 Кб, 839x593
14 мар, 21:47 545 1155833

Чифир в радость, програмач. За 4 месяца прочитал и освоил 4 книги из шапки, прорешал около 200 задач на кодварсе и сейчас начал учить алгоритмы. И шот до меня не допрет. Сам пример из книжки Седжвика. Попарно связанные переменные.
Есть вопрос - пикрелейтед 21ая строка

Я не понимаю некоторых вещей:
1. Каким образом массив приходит к значению переменной t ? Банальным перебором ?
2. Почему id = id[q] эквивалентны ? У нас же присваивание слева - направо.
есть книжки по алгоритмам попроще ? ядебил

Ответы5583955847

14 мар, 21:59 546 1155839

>>1155833
а что тут вообще происходит? заполняется массив, потом пары чисел со входа читаются и дальше что должно быть?

Ответы55844

14 мар, 22:06 547 1155844

>>1155839
Попарные связи 1-2 2-3 3-4 и тд.
Если ввести, к примеру, 1-2, 2 - 4 то в связи 1 - 4, консолька выдаст, что они уже итак попарно связанные. Как-то так.

Ответы5584955896

14 мар, 22:08 548 1155847

>>1155833
То ли я дибил, то ли этот код вообще нихуя полезного не делает как и большинство охуенных задач
Сказал бы хоть, что это за "алгоритм" и что он предположительно должен делать.

Ответы55870

14 мар, 22:10 549 1155849

>>1155844
Хуета какая-то. При чём здесь связи? Если много раз повторять ввод p и q, то либо все элементы со значением id[p] получат значение id[q], либо наоборот - как равенство поставишь.

14 мар, 22:55 550 1155870

>>1155847
Это первый найивный подход к решению задачи disjoint union set вроде. Мимо алгоритмодрочер.

14 мар, 23:35 551 1155896

>>1155844
ну короче он просто идет и ставит в массиве вместо бОльшего числа в паре меньшее.
типа когда 1-2 -> 11.
а то что закомментировано - наоборот. вместо меньшего большее. как бы заполняет промежуток.
а пофигу - потому что он просто сравнивает два элемента массива в начале. вот это t = id[p]; if (t == id[q]) ...
то же самое что и if (id[p] == id[q]) и пофигу какое там в обеих позициях, большее или меньшее.

Ответы55900

14 мар, 23:56 552 1155900

>>1155896
Огромное спасибо, анончик.
Надеюсь, я смогу осилить этого ёбаного Седжвика.

15 мар, 13:17 553 1156037

Поясните за хедеры и прочую хуйню.
Вот я написал кучу кода в одном фале. Подумал, мол, это пиздец не круто и вынес в другой файл. Теперь я должен написать кучу кода с forward definition'ами в .h файле и его заинклюдить? Это правда такое говно, или я чего-то не понимаю?

Ответы56103

15 мар, 16:44 554 1156103

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

Ответы56304

15 мар, 18:05 555 1156146

>>1155653
Спасибо, посмотрю.

15 мар, 18:39 556 1156172

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

template<class T>
class Foo
{
T Bar();
}

template<class T>
T Foo<T>::Bar()
{
//...
}

можно было написать

using //тут как-то сказать что Foo - это шаблон

class Foo
{
T Bar();
}

T Foo::Bar()
{
//...
}

15 мар, 18:39 556 1156172

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

template<class T>
class Foo
{
T Bar();
}

template<class T>
T Foo<T>::Bar()
{
//...
}

можно было написать

using //тут как-то сказать что Foo - это шаблон

class Foo
{
T Bar();
}

T Foo::Bar()
{
//...
}

Показать весь текст
Ответы56217

15 мар, 19:14 557 1156217

>>1156172
using используется для задания синонима типа.
представь, что у тебя в коде часто объявляются векторы с твоими типами Foo и Bar:
std::vector<Foo, Alloc<Foo>> v1, v2;
std::vector<Bar, Alloc<Bar>> v3, v4;
но ты можешь сделать так:
template<class T>
using Vec = vector<T, Alloc<T>>;
и переписать
Vec<Foo> v2, v2; Vec<Bar> v3, v4;

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

15 мар, 20:56 558 1156296

Вкатываюсь в кресты (опыт в программировании есть около 2х лет). Вопрос про работу: возможно ли джуном (года через полтора) устроиться не формошлепить на культяз?

Ответы56308

15 мар, 21:08 559 1156304

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

Ответы56324

15 мар, 21:10 560 1156308

>>1156296
возможно все на свете

15 мар, 21:40 561 1156324

>>1156304
файл 1 (интерфейс без реализации как в шарпе):
class myclass { void func(); };
файл 2 (реализация класса)
#include "файл 1"
void myclass::func() { реализация }
файл 3 (использование класса)
#include "файл 1"
void main() { myclass mc; mc.func(); }

шарп за тебя сам всё находит, если namespce позволяет, а тут руками надо растаскивать класс на куски.

Ответы56334

15 мар, 21:54 562 1156334

>>1156324
Я хедер содержит интерфейс или реализацию? И получается, что класс-обёртка является пространством имён?

Ответы56355

15 мар, 22:18 563 1156355

>>1156334
Если есть шаблоны, то реализацию нужно писать только в хедере. Если нет, то, как правило, в хедере пишут только интерфейс, но можно и писать реализацию: если прям в классе писать, то ничего не нужно, правда если определения методов занимает много строк, то класс становится почти не читаемым. Если собрался писать реализацию отдельных функций в хедере, то нужно не забывать писать inline перед возвращаемым типом, чтобы не нарушать ODR (one definition rule). А ну и всегда в хедере должен быть header guard, типа:
#define HUI_PIZDA_H
#ifndef HUI_PIZDA_H
// Код хедера
#endif

Ответы5635856387

15 мар, 22:19 564 1156358

>>1156355
Обосрался немного с гвардом. Фикс:
#ifndef HUI_PIZDA_H
#define HUI_PIZDA_H
// Код хедера
#endif

Ответы56364

15 мар, 22:31 565 1156364

>>1156358
#pragma once вроде уже везде работает

Ответы56378

15 мар, 22:36 566 1156378

>>1156364
Да, но я написал стандартный вариант. QtCreator, которым я пользуюсь, генерирует именно его.

15 мар, 22:49 567 1156387

>>1156355
вкатывальщик пришёл из чудесного мира шарпа, где хуярят всё в кучу. тут проблемка то в другом - реализация часто использует другие классы, а для этого придётся инклюдить их хедеры в текущий хедер, что хуёво скажется на времени компиляции.
#pragma once в начале хедера лучше, чем #define родом из 90-х. inline не обязателен - компилятор сам анализирует и подставляет текст методов.

Ответы5639056543

15 мар, 22:52 568 1156390

>>1156387
кстати еще прикол. инклудить надо минимально.
если в хедере какой-то другой тип не используется, а используется только в цпп - инклудить его надо в цпп.

Ответы56398

15 мар, 23:08 569 1156398

>>1156390
и использовать в объявлении классов указатели на сторонние классы вместо их инстансов

15 мар, 23:40 570 1156418

Пиздец двач, я заебался, помоги. В проекте хочу использовать Crypto++, и при этом подключить/собрать её один раз и не собирать при каждой рекомпиляции проекта. Уже пробовал
1. Добавлять в "дополнительные включаемые файлы" путь к .h и .cpp файлам, благо они там на одном уровне лежат. Не помогло, unresolved link error на каждое использование либы - это моя основная проблема сейчас. При этом, во внешних зависимостях проекта хэдеры из либы появляются и IDE (VS 2017) ничего не подчеркивает.
2. После шага 1 пробовал добавлять в солюшн проект crytptlib (сама либа) и в зависимости целевому проекту добавить этот проект. Заебись, 10/10, всё компилируется. Правда теперь я каждый раз жду, пока пересобирается сама crypto++, что мне в общем то нахуй не надо
3. Скомпилировал Crypto++ во все возможные варианты, в настройках целевого проекта в вижаке в каталоги vc++ в каталоги библиотек добавил путь к скомпилированным либам в соответствии с типом сборки проекта (дебаг к дебагу, х64 к х64, MT к MT, MTd к MTd). На всякий случай в соответсвии с одним гайдом поместил все скомпиленные либы на один уровень с исходниками. В настройках компиляции "ввод" input может быть еще называется где нибудь указал сука используй cryptlib.lib опять же в зависимости от настроек сборки проекта. ХУЙ! снова этот unresolved link error всюду и везде, ебать двач как у меня горит от этой залупы, ЧЯДНТ?

Ответы5642856437

16 мар, 00:01 571 1156428

>>1156418
Посмотри с помощью depends, какие символы экспортит твоя либа.

Ответы56442

16 мар, 00:15 572 1156437

>>1156418
если включил в солюшн проверь настройки - везде static или dynamic lib стоит

Ответы56443

16 мар, 00:25 573 1156442

>>1156428
Он .lib не хавает. Могу в .dll собрать и посмотреть, но что мне это даст? Я вроде как собирался в качестве .lib использовать, раз для меня либа играет роль библиотеки классов.

16 мар, 00:26 574 1156443

>>1156437
Я уже убрал, ибо я просто хотел проверить, если в референсы добавить будет ли норм. Я из идеологических соображений не хочу иметь 3rd party либу в солюшне, хочу лишь использовать классы и функции оттуда.

16 мар, 01:58 575 1156486

>>1154081
Пропустил ваши сообщения тогда. Спрашивают о фигурных скобках. Сейчас объясню.
>>1154092
Что бы ты не гуглил, вот от первоисточника: http://www.stroustrup.com/N1919-initializer_lists.pdf
А тут еще ссылка с разжеванным ответом: https://stackoverflow.com/questions/18222926/why-is-list-initialization-using-curly-braces-better-than-the-alternatives

Если кратко резюмировать, то, например, есть у нас тип Т.
T✴ myobject = new T(); ← это привычная форма, ибо более старая
T✴ myobject2{new T()}; ← это вас смутило, но суть та же.

Зачем же смущать благородных донов новой непонятной формой записи, спросите вы и будете правы. У старой записи есть одна проблема.
= ← этот знак означает присвоение. Чтобы было чего присваивать моему T✴ myobject, сначала справа от знака = создается временный объект, для него вызывается конструктор, а потом при присвоении он копируется (или передвигается, как повезет) туда, куда показывает свежеобъявленный указатель. Лишние телодвижения.
С инициализацей в стиле С++11 через эти наши фигурные скобки такой проблемы нет.

>>1154085
А за совет спасибо. Я уже понял, что декоратор принимал не за то, чем он есть. Decorators are not what they seem.

>>1154101
Почему бы не со Страуструпа? У него там даже отдельные подразделы есть специально для тех, кто хочет перейти с Java и C.

Ответы5650559242

16 мар, 03:22 576 1156505

>>1156486
>сначала справа от знака = создается временный объект, для него вызывается конструктор, а потом при присвоении он копируется (или передвигается, как повезет) туда, куда показывает свежеобъявленный указатель.

ты бредишь. new T() возвращает void, поэтому твоё выражение это T{void*}, а это инициализация одного указателя другим с неявным приведением. нету тут никаких временных объектов, их копирования и сдвига.

Ответы565065657056942

16 мар, 03:40 577 1156506

>>1156505
звёздочки проебались
void* = new T();
T✴{void✴};

16 мар, 08:23 578 1156543

>>1156387
Разве inline модно писать перед любыми функциями?
Компиляторы вроде ругаются если ты задашь большую inline-функцию.
Или я что-то путаю?

Ответы5654458087

16 мар, 08:28 579 1156544

>>1156543
Можно*
фикс

16 мар, 10:28 580 1156570

>>1156505
Пересказываю, что знаю и насколько помню. Могу, конечно, и ошибаться, но конструктор, ЕМНИП, неявно возвращает ссылку на созданный объект.
Про сдвиг речи не шло. Есть такая штука && — семантика передвижения. Тоже из C++11. Неявно может (и чаще всего будет) подкидываться компилятором взамен возврата по значению и прочих трюков с объектами, которым жить осталось до конца утверждения.

Все эти танцы с указателями на void это вроде как анахронизм в наследство от C. Тут уже не берусь утверждать.

А вот начинать со слов «ты бредишь», а потом писать, что в фигурных скобках происходит неявное приведение — это как минимум забавно. Одна из причин, почему Страуструп их запилил — чтобы сделать унифицированный синтаксис инициализации без опасных приведений. Серьёзно. Попробуй написать float x{0.75}; и он тебя заругает и приводить double к float не даст. Не думаю, чтобы приводило UDT к void.

Ответы56652

16 мар, 10:45 581 1156580

Аноны, подскажите, а как белые люди входные данные читают и валидируют?
Из консоли надо считать пару чисел и, если входные данные неверные - неверный формат или неверные значения - сообщить об ошибке и предложить ввести заново. Ничего умнее https://pastebin.com/KUpswsiM не придумал, но break и continue - вроде как дурной тон.

Ответы56595566025660458098

16 мар, 11:05 582 1156595

>>1156580
Про continue слыхал что-то такое, но почему break дурной тон?

16 мар, 11:20 583 1156602

>>1156580
Дурной тон — прятать continue в однострочник.

Ответы56604

16 мар, 11:22 584 1156604

>>1156580
>>1156602
Вообще, лучше результаты условий сохранять куда-то, а затем в зависимости от результатов пропускать некоторые проверки, потом возвращать результат.

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

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

Ответы56619

16 мар, 11:33 585 1156619

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

16 мар, 13:17 586 1156652

>>1156570
читаем вот это:
http://en.cppreference.com/w/cpp/memory/new/operator_new
и убеждаемся, что new во всех стандартах возвращает void✴.
читаем вот это:
http://en.cppreference.com/w/cpp/language/list_initialization
и убеждаемся, что запрещены сужающие неявные преобразования. преобразования указателей, в свою очередь, сужающими не являются.

ещё раз повторяю - ты бредишь в твоём примере используется инициализация переменной встроенного типа.

Ответы56883

16 мар, 20:07 587 1156883

>>1156652
>ты бредишь в твоём примере

Не знаю, кому это адрессовано, но в изначальном примере (>>1153867) инициализировался очевидно пользовательский тип Devil✱ tres{ new Vile(new Wings(new Devil(200000))) };

16 мар, 21:27 588 1156942

>>1156505
>возвращает void
Что-то на хуиту похоже. https://ideone.com/EVhgA7
Но сам я вкатывальщик и стандарт не читал.

16 мар, 23:18 589 1157006

Если ты сидишь в VS, то нажми на malloc / new F12 и посмотри как они определены в хедерах библиотеки std (stdlib.h / new.h).

17 мар, 12:17 590 1157185

Поясните за кириллицу в плюсах, а то я сейчас с ума сойду, пиздец какой-то.
https://pastebin.com/97NBrzNf
Надо типа считать текстовый файл. Подъёбок две - файл на русском и в кодировке UTF-8. Наколхозил вот это поделие, вывод в консоли по пизде соответственно. И я не могу понять - то ли читается через жопу, то ли выводится через жопу, и как с этим бороться.

Ответы57207573485739258104

17 мар, 13:21 591 1157207

>>1157185
https://ru.stackoverflow.com/questions/459154/Русский-язык-в-консоли

Ответы57270

17 мар, 14:30 592 1157270

>>1157207
Попробовал жонглировать с wchar'ами, всё вообще по пизде пошло.

Ответы57321

17 мар, 15:39 593 1157321

>>1157270
Ты кодировки то не-попутал, братан. В какой кодировке у тебя исходный файл?

Ответы57366

17 мар, 15:56 594 1157348

>>1157185
Пользуйся линуксом, там такого пердлолинга с кодировками нет, везде расово полноценный UTF8.

17 мар, 16:16 595 1157366

>>1157321
Исходный файл - UTF-8. Кодировал через PowerShell. И я не могу раздуплить, то ли моё поделие читает криво, то ли выводит криво.

17 мар, 16:42 596 1157392

>>1157185
По умолчанию консоль в RU винде работает в кодировке 866.
Подключи Windows.h и поменяй кодировку (SetConsoleOutputCP) на utf-8 CP_UTF8 (или 65001). Кстати, скажу за студию только, но у нее сорцы идут в кодировке 1251, поэтому зашитые литералы будут выводиться криво, если консоль в другой кодировке. А если поменять их кодировку на utf-8, то лучше добавить флаг компиляции /utf-8. Тогда компилятор сразу будет воспринимать код в данной кодировке без внутренних преобразований.
Ну, это только касательно кодировок, работа со строками - это уже отдельный геморрой.

Ответы57398

5 Кб, 658x209
17 мар, 16:51 597 1157398

>>1157392
Как только люди не пердолятся, лишь бы линукс не использовать.

Ответы57438

17 мар, 17:54 598 1157438

>>1157398
Щас бы студию менять на красноглазое говно

Ответы57571

17 мар, 20:24 599 1157571

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

Ответы57656

17 мар, 22:45 600 1157656

>>1157571
ведь я каждый день в консоли вывожу символы не-латинского алфавита. Каждый день это делаю. И именно из-за этого мне надо поставить глюкавое говно, вместо нормальной операционки и нормальной IDE.

Ответы57806

17 мар, 23:55 601 1157716

Статические либы можно линковать с .dll? Научился линковать .lib к .exe, но вот с .dll - беда какая то, vc++ жалуется на unresolved symbols, хотя пути указаны по аналогии с .exe (естественно с учётом другой линковки CRT).

Ответы57784

18 мар, 00:54 602 1157784

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

Динамическая библиотека - это крошечный .lib файл, который говорит линкеру, что дефинишен таких то функций есть, но они будут загружены в рантайме. Т.е. ехе файл будет произведен, но он не запустится, если нет рядом нужной дллки, т.к. CRT перед запуском main, ищет все либы, с которыми слинкован
э и загружает из них нужные функции.

Ответы57810

18 мар, 01:14 603 1157806

>>1157656
> ко-ко-ко нинужно

Ответы57858

18 мар, 01:17 604 1157810

>>1157784
Но ведь динамическая библиотека это dll файл, по сути тот же exe, только без точки входа. Загрузка dll осуществляется методом LoadLibrary() хоть до вызова main хоть внутри него (уже в процессе работы exe). Или я чего-то не понимаю?

Ответы57858

18 мар, 02:14 605 1157858

>>1157810
есть 2 вида использования DLL. Тот, что я написал выше, и тот, который ты сейчас написал. В LoadLibrary и GetProcAddress ничего сложного, у тебя есть специфические вопросы мб?

>>1157806
Твоя параша красноглазая не нужна. Я никогда ни на одной работе не выводил русский текст в консоль

Ответы5786958282

18 мар, 02:43 606 1157869

>>1157858
В студии в general я вижу dynamic library(.dll) - это то что я написал и static library(.lib) - то что ты. Как мне получить версию с "большим lib" и "крошечным lib"? Какие-то ключи поставить?

Ответы57888

18 мар, 04:53 607 1157888

>>1157869
всё, я понял как линковать *.dll статически

18 мар, 12:33 608 1158087

>>1156543
Компиляторам в большинстве случаев похуй, могут не захотеть инлайнить, а могут сами заинлайнить мелкие функции.

18 мар, 12:40 609 1158098

>>1156580
>но break и continue - вроде как дурной тон.
Это если совсем структурное программирование головного мозга. Пользоваться можно, но осторожно, если continue случится от некорректного (в тех или иных случаях) условия, или не в том месте, то можно проебать часть необходимых вычислений. Так, например, можно перестать инкрементить счетчик whileа и зациклиться.

18 мар, 12:48 610 1158104

>>1157185
Винда и msvc? Попробуй вот этот вариант

stream_fixer.h https://pastebin.com/1LvxuKAL
stream_fixer.cpp https://pastebin.com/bMzFx7tQ

Перед вызовом ввода/вывода сделай void FixIOStream();

и пользуйся wstring, wcout и wchar_t.
обычный cout вроде сломается при этом.

Ответы58241

18 мар, 15:08 611 1158241

>>1158104
hopefully(newMode != -1) || throwX(string() + "setmode failed for " + name);

Что это за перл такой

18 мар, 15:48 612 1158282

>>1157858
>Я никогда ни на одной работе не выводил русский текст в консоль
> кудах-тах-тах, никогда не нужно было и вот опять

Ответы58341

18 мар, 17:19 613 1158341

>>1158282
кукарекай, петушок. Все хорошо.

Ответы58411

18 мар, 18:43 614 1158411

>>1158341
> полтреда кудахтанья про то, что в его параше не работает вывод русского языка
> называет других петушками

19 мар, 22:48 615 1159242

>>1156486
>> А тут еще ссылка с разжеванным ответом: https://stackoverflow.com/questions/18222926/why-is-list-initialization-using-curly-braces-better-than-the-alternatives
>>

в комментариях к самому вопросу обсуждают auto, вообще ни о чем.
в первом ответе, где 200 голосов говорят про что фигурные скобки полезны для инициализации простых типов - дадут ошибку компиляции (это действительно полезно)
в комментариях к первому ответу наоборот говорят что лучше фигурные скобки не юзать, т.к. может быть шняга типа A(5,4) и A{5,4}.
во втором ответе, где 65 голосов про преимущества не говорят, но говорят, что конструктор с initializer_list будет предпочтительнее обычного конструктора (в смысле будет вызываться он, а не !!!!другой конструктор) и еще предупреждают, что будут дополнительные накладные расходы - конструктор с initializer_list передает его по значению (хотя тут обычно компиляторы это место оптимизируют)
в комментариях ко второму ответу народ тоже не понимает зачем он нужен.

>> Если кратко резюмировать, то, например, есть у нас тип Т.
>> T✴ myobject = new T(); ← это привычная форма, ибо более старая
вызовется только copy constructor, слышал про такой? в примерчике смотри случай 2.
оператор присваивания вызовется только в случае 2.1

>> T✴ myobject2{new T()}; ← это вас смутило, но суть та же.
>>
вызовется то же самое - copy constructor, см случай 5
!!! если добавить инит_лист цтр - вызовется он, но смысл??

>> Зачем же смущать благородных донов новой непонятной формой записи, спросите вы и будете правы. У старой записи есть одна проблема.
>> = ← этот знак означает присвоение. Чтобы было чего присваивать моему T✴ myobject, сначала справа от знака = создается временный объект, для него вызывается конструктор, а потом при >присвоении > он копируется (или передвигается, как повезет) туда, куда показывает свежеобъявленный указатель. Лишние телодвижения.

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

>> С инициализацей в стиле С++11 через эти наши фигурные скобки такой проблемы нет.

вот тебе примерчик - https://pastebin.com/mHbvQgmB

в общем, у тебя в голове какая-то каша просто. и факт того, что подобные примерчики пишешь не ты, а тебе пишут посторонние люди, ты как-то не особо и стремишься разобраться с ней. сначала я думал, у тебя какие-то сложности с множественным наследованием, и, может быть, еще небольшие проблемки с обычным, но тут выяснилось, что ты и про конструкторы ничего не понимаешь.
настоятельно тебе советую учить язык постепенно. я бы вообще начал с чистого С, без классов, без new и т.д. только printf, только malloc, но, думаю, не согласишься.
но даже если нет - начни со старого стандарта. поставь 2010 студию и изучай только то, что компилируется в ней.

19 мар, 22:48 615 1159242

>>1156486
>> А тут еще ссылка с разжеванным ответом: https://stackoverflow.com/questions/18222926/why-is-list-initialization-using-curly-braces-better-than-the-alternatives
>>

в комментариях к самому вопросу обсуждают auto, вообще ни о чем.
в первом ответе, где 200 голосов говорят про что фигурные скобки полезны для инициализации простых типов - дадут ошибку компиляции (это действительно полезно)
в комментариях к первому ответу наоборот говорят что лучше фигурные скобки не юзать, т.к. может быть шняга типа A(5,4) и A{5,4}.
во втором ответе, где 65 голосов про преимущества не говорят, но говорят, что конструктор с initializer_list будет предпочтительнее обычного конструктора (в смысле будет вызываться он, а не !!!!другой конструктор) и еще предупреждают, что будут дополнительные накладные расходы - конструктор с initializer_list передает его по значению (хотя тут обычно компиляторы это место оптимизируют)
в комментариях ко второму ответу народ тоже не понимает зачем он нужен.

>> Если кратко резюмировать, то, например, есть у нас тип Т.
>> T✴ myobject = new T(); ← это привычная форма, ибо более старая
вызовется только copy constructor, слышал про такой? в примерчике смотри случай 2.
оператор присваивания вызовется только в случае 2.1

>> T✴ myobject2{new T()}; ← это вас смутило, но суть та же.
>>
вызовется то же самое - copy constructor, см случай 5
!!! если добавить инит_лист цтр - вызовется он, но смысл??

>> Зачем же смущать благородных донов новой непонятной формой записи, спросите вы и будете правы. У старой записи есть одна проблема.
>> = ← этот знак означает присвоение. Чтобы было чего присваивать моему T✴ myobject, сначала справа от знака = создается временный объект, для него вызывается конструктор, а потом при >присвоении > он копируется (или передвигается, как повезет) туда, куда показывает свежеобъявленный указатель. Лишние телодвижения.

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

>> С инициализацей в стиле С++11 через эти наши фигурные скобки такой проблемы нет.

вот тебе примерчик - https://pastebin.com/mHbvQgmB

в общем, у тебя в голове какая-то каша просто. и факт того, что подобные примерчики пишешь не ты, а тебе пишут посторонние люди, ты как-то не особо и стремишься разобраться с ней. сначала я думал, у тебя какие-то сложности с множественным наследованием, и, может быть, еще небольшие проблемки с обычным, но тут выяснилось, что ты и про конструкторы ничего не понимаешь.
настоятельно тебе советую учить язык постепенно. я бы вообще начал с чистого С, без классов, без new и т.д. только printf, только malloc, но, думаю, не согласишься.
но даже если нет - начни со старого стандарта. поставь 2010 студию и изучай только то, что компилируется в ней.

Показать весь текст

19 мар, 23:02 616 1159259

Котаны, выручайте. На меня вываливают сотни тон какой-то чуши с сообщениями об ошибках, ничего не понятно.

queens — псевдоним для vector<pair<size_t, size_t>>

q = queens{std::make_pair<size_t, size_t>(2,1)}; // работает
size_t i = 2;
q = queens{std::make_pair<size_t, size_t>(i, 1)}; // выкидывает кучу хлама

Вот пример, почищенный от всего лишнего: https://ideone.com/O6skZD

ЧЯДНТ? Или что делает не так эта функция make_pair?

Ответы59281

19 мар, 23:35 617 1159281

>>1159259
<size_t, size_t> убери

Ответы59283

19 мар, 23:40 618 1159283

>>1159281
Спасибо, помогло!

21 мар, 15:14 619 1160081

Господа товарищи, нужна ваша помощь, наставьте советом.
Я написал рабочую программу: https://ideone.com/Rlswwg

Та система, в которую пытаюсь загрузить выдает огромное полотно сообщений о непонятных ошибках: https://pastebin.com/KfE0pnPg

Я как-то неправильно использую итераторы у map и set?
Сразу говорю: сам новичок и эта программа — задание по теме словарей и множеств. Подозреваю, что у меня требуется что-то, что итератор не поддерживает. С другой стороны, в ideone ведь работает.

В чем дело?

Ответы6010060323

21 мар, 15:55 620 1160100

>>1160081
auto j {i.second.begin()}; и jp{j}
замени {} на ()

Ответы60322

21 мар, 21:54 621 1160322

>>1160100
Феноменально! Большое человеческое спасибо.
Я так понял, что эта {} байда кроме как в инициализации списком инициализации больше особо и не нужна, только путает? Или что у меня не так было?

Ответы6041660432

21 мар, 21:56 622 1160323

>>1160081
Да еще один вопрос по этому поводу. У меня там костыль с еще одним итератором, чтобы вывести последний элемент без лишней запятой. Типа через запятую, но после заключительного чтобы без нее. Это можно сделать как-то по красоте? Пробовал .end()-1 — не компилировалось. Как перебрать все элементы множества от первого до предпоследнего?

Ответы60606

21 мар, 22:20 623 1160335

Так, аноны, поясните правильно ли я делаю?
это ебанное криптоапи, функция эта в dll, но я ебав от прошлого разраба, и трогать заголовок функции трогать нельзя:

bool GetCertContextFromSystemStore(PCCERT_CONTEXT a_pCertContext, ......)
{

.......
PCCERT_CONTEXT pCertContext
.......
a_pCertContext=pCertContext;
CertFreeCertificateContext(pCertContext);
pCertContext=NULL;

...........

}

21 мар, 23:57 624 1160416

>>1160322
Твой компилятор в первом error сказал, что
в выражении ++jp первый операнд (то есть jp) имеет тип: initializer_list<initializer_list<string::const_terator>>

Это говорит нам о том, что компилятор вывел тип для j - initializer_list<string::const_terator> вместо string::const_terator и для jp вывел уже по аналогии initializer_list<initializer_list<string::const_terator>>.

Как же так? Почему компилятор VS выводит тип auto val{T} как T val, а noname выводит initializer_list<T> val? Ответ на вопрос тут https://habrahabr.ru/post/330402/ в главе Almost Always Auto.

Резюме.
1. Не использовать auto c {}.
2. Не пихать {} на каждом углу, до тех пор, пока не будут выучены на зубок все нюансы и способы использования (а их реально дохуя).

Ответы61070

22 мар, 00:22 625 1160432

>>1160322
Байда довольно универсальная и удобная:
int zero{}, one{1.0};
struct point { double x, y; }; point p{ zero, one };
class keyPoint { public: int key; point p; }; keyPoint kp{11,{1.2, 2.3}};
keyPoint arr[] = { {11,{1.2, 2.3}}, {22,{2.4, 2.5}} };
std::vector<keyPoint> vec{ {11,{1.2, 2.3}}, {22,{2.4, 2.5}} };
class list { public: list(initializer_list<int>&&) {}; };
list ls{ 1, 2, 3, 4, 5 };
Но чтобы ей пользоваться тебе придётся вдумчиво почитать её длинное описание, ибо все способы выше имеют нюансы.

Ответы61070

22 мар, 11:41 626 1160606

>>1160323
--end()?

Ответы61070

23 мар, 01:48 627 1161070

>>1160416
Спасибо за статью, видимо, то, что сейчас мне надо.

>>1160432
На 1.0 при инициализации инта заругается.
Почленовая инициализация объектов структур — коню понятно.
Со списком инициализации тоже. Какие тут вообще нюансы?

Вот что с auto лучше не использовать, это для меня было неожиданностью. А где-то в стандарте об этом есть? Ну типа там unspecified behaviour или еще что-то.

>>1160606
Феноменально. Я почему-то думал, что это rvalue и не должно заработать, но потом понял, что оно ведь и нужно мне только с правой стороны. Спасибо!

Ответы6110661116

23 мар, 06:01 628 1161106

>>1161070
>На 1.0 при инициализации инта заругается.
да, сначала там был double, однако:
int ai[] = {1.0}; скомпилится, int i{1.0}; - нет

>Почленовая инициализация объектов структур — коню понятно.
struct intS{int i;}; class intC{int i;};
intS si{0}; - да, intC ci{0}; - нет

struct S{double a,b,c;};
S s1{1.0}; - да, S s4{1.0,1.0,1.0,1.0}; - нет

>Со списком инициализации тоже. Какие тут вообще нюансы?
vector<int> vec1(5), vec2{5} - будут разными

struct list { list(initializer_list<int>&&) {}; list(double) {}; };
list ls{ 1.0 }; - не скомпилится, хоть и есть конструктор для double

list ls{}; вызовет конструктор c initializer_list, а если в класс добавить list() = default, то нет

Ответы61379

23 мар, 07:15 629 1161116

>>1161070
>А где-то в стандарте об этом есть? Ну типа там unspecified behaviour или еще что-то.
Не ленись, сходи по ссылке - там написано, что в 14м году на стандарт накатили патч, изменивший трактовку твоего случая. И, как я понял, у тебя один компилятор реализует стандарт до 14 года, а второй после.
Ещё у компиляторов бывают расширения меняющие стандарт:
VS может неконстантную l-value ссылку инициализировать от r-value: T f() { return T(); }; T& t = f();

23 мар, 08:16 630 1161129

Как отобразить несколько графиков в одной с.к. в QChart?

23 мар, 17:40 631 1161379

>>1161106
int ai[] = {1.0}; не должно скомпилироваться. Может у тебя опечатка и подразумевалось int ai[] = {1,0};

Я не случайно сказал структур, а не классов, у классов уровень доступа private, при чем тут фигурные скобки вообще.

intS и intC это что-то для меня новое. Объяснишь?

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

Дальше о синтаксисе конструктора. Уже бы взял пары чисел для удобства (кол-во элементов, значение1) или {значение первого элемента, значение второго элемента}.
Можно ли так писать в одной строке vector<int> vec1(5), vec2{5}; не знаю. Я бы не рискнул и почему-то кажется, что это bad practice.

1 — в твоем примере при объявлении опускается и, будучи параметром по умолчанию, заполняет все 5 элементов значением по умолчанию для типа int.

Дальше list ls(1.0); очень даже скомпилируется с твоим конструктором для double. Но если объявить конструктор принимающий список инициализации и пихать в него список из одного элемента неподходящего типа, конечно не скомпилируется. Это пример из разряда не используйте нашу микроволновку для сушения домашних животных.

Финальный пример, ЕМНИП при объявлении любого конструктора конструктор по умолчанию не генерируется по умолчанию. С командой =default ты явно говоришь, чтобы всё-таки генерировался.

Всё верно? Если да, тогда какие еще есть именно подводные камни, которые остаются неочевидными после чтения Страуструпа?

Ответы6139161394614136141761427

23 мар, 18:00 632 1161391

>>1161379
>int ai[] = {1.0}; не должно скомпилироваться.

1>d:\code\test15\test15\test15.cpp(84): warning C4838: conversion from 'double' to 'int' requires a narrowing conversion
1>d:\code\test15\test15\test15.cpp(84): warning C4244: 'initializing': conversion from 'double' to 'int', possible loss of data
1> test15.vcxproj -> D:\Code\test15\Debug\test15.exe
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
Но ведь стандарт не позволяет?

23 мар, 18:10 633 1161394

>>1161379
>Дальше list ls(1.0); очень даже скомпилируется с твоим конструктором для double.
Стандарт говорит, что сначала ищется конструктор с initilizer_list и если нет подходящего, то просматриваются все остальные. В нашем примере (initilizer_list<int>) не подходит, а (double) подходит. Но увы, list ls{1.0} не компилится.

23 мар, 18:47 634 1161413

>>1161379
>Можно ли так писать в одной строке vector<int> vec1(5), vec2{5}; не знаю. Я бы не рискнул и почему-то кажется, что это bad practice.
Тут главное, что vec(5) содержит 5 элементов, а vec{5} только один.

23 мар, 18:53 635 1161417

>>1161379
>конструктор по умолчанию не генерируется по умолчанию.
Так я не про это, а про то, что у тебя есть 2 конструктора - с initializer_list и обычный. По идее initializer_list имеет приоритет, но для ls{} будет вызван обычный.

Ответы61422

23 мар, 19:03 636 1161422

>>1161417
Ну и собственно практика. Ты сначала написал только конструктор с initializer_list, написал кучу кода везде. А потом добавил default и у тебя всё поплыло и ты сидишь и ищешь эти ебучие скобочки по всему проекту.

23 мар, 19:18 637 1161427

>>1161379
>у классов уровень доступа private
было так:
class C { public: int i; int get() { return i; }; };
сделал get виртуальной и всё - вперёд переписывать все вхождения C num{1} на C num; num.i = 1;

24 мар, 16:08 638 1161870

Что делать, если выдают кракозябры? Ситуация такова:

static void write(const wstring& w)
{
setlocale(LC_ALL, "ru-RU"); // для подстаховки, считывало и без него
std::wfstream stream;
stream.open("sample.txt", std::ios::out);
stream.imbue(std::locale{ "rus_rus.866" }); // при считывании это помогало, тут уже нет

stream << w;
stream.close();
}

В текстовом файле оказываются такая хрень:
Ља Є®§пЎал ҐЎгзЁҐ, Є Є®Ј® д ««®б ўл вгв?!

Я что-то упускаю из виду, но что?

Ответы6200462122

24 мар, 20:46 639 1162004

>>1161870
> Я что-то упускаю из виду, но что?
Тот факт, что у тебя Ш1ИДОШ5 вместо операционной системы.

Ответы62130

25 мар, 00:39 640 1162122

>>1161870
> stream.imbue(std::locale{ "rus_rus.866" });
Попробуй поменять на 1251, может помочь.

Ответы62130

25 мар, 01:25 641 1162130

>>1162004
>>1162122
Спасибо, заработало. Что на эту тему лучше почитать, чтобы таких вопросов не возникало?

Ответы62351

25 мар, 14:29 642 1162351

>>1162130
про юникод, например

Обновить тред
Двач.hk прислал битые данные.
Вы видите копию треда, сохраненную 26 апреля 2018 года.
Можете попробовать обновить страницу, чтобы увидеть актуальную версию.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.gq, m2ch.cf, m2ch.fapp.in, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion