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

Этого треда уже нет.
Это копия, сохраненная 16 сентября 2018 года.

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

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

37 Кб, 268x268
CPP тред /cpp/ # OP 18 июля, 17:59 1230522 В конец треда | Веб

Вместо шапки — https://github.com/sosachbot/cppthreadhat/wiki
Ответы на все вопросы:
- http://en.cppreference.com/w/
- http://www.cplusplus.com/reference/
- http://www.open-std.org/JTC1/SC22/WG21/

Ответы3052730532306073172832370346383605536232391983949842745

18 июля, 18:08 2 1230527

>>1230522 (OP)
>http://www.open-std.org/JTC1/SC22/WG21/
Почему не http://eel.is/c++draft/??????

18 июля, 18:17 3 1230532

>>1230522 (OP)
Обосрал весь перекат.

18 июля, 18:45 4 1230544

Ну как так можно было обосраться с названием?

Ответы34088

18 июля, 20:23 5 1230607

>>1230522 (OP)
Тут тред по C++ или нет?

18 июля, 21:45 6 1230643

У меня к вам очень простой вопрос.
Нахуя нужны поинтеры и референсы, если можно просто использовать pass by reference?

Поинтер хранит адрес.
Референс хранит адрес.
Поинтер отличается от референса только тем, что его можно инициализировать и переприсваивать.

У переменной, на которую будет ссылаться левый поинтер или референс, уже есть адрес. Нахуя мне нужен ещё один референс, если переменная является референсом на себя же. И нахуя мне нужен поинтер?

Ответы3064430658

18 июля, 21:48 7 1230644

>>1230643
Пойнтер нужен для пойнтерной арифметики, например.

Ответы30652

18 июля, 22:01 8 1230652

>>1230644
Тогда ещё один вопрос, а почему на референсе нельзя?
Разницы ведь никакой.

Ответы30655

18 июля, 22:05 9 1230655

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

Ответы306603066230689

18 июля, 22:06 10 1230658

>>1230643
поинтер - это объект, а ссылка - нет
открой липпмана или прату и прочтай внимательно про поинтеры и референсы

Ответы30660

18 июля, 22:16 11 1230660

>>1230655
>Потому что референс должен всегда указывать на валидный кусок данных, что противоречит идее выполнения адресной арифметики с ним.
Почему же противоречит? Скорее наоборот, поинтер может хранить совершенно нерелевантный адрес, что ставит под вопрос целесообразность арифметики над мусорными данными.
Если, конечно, я правильно представляю область примерения поинтерной арифметики. Которая для меня ограничивается, перебором массива данных.
>>1230658
>объект
В каком смысле объект?
Насколько я понимаю, поинтер - это тупо 4не обязательнобайта, которые банально хранят адрес.

Ответы3066130665

18 июля, 22:22 12 1230661

>>1230660
> Почему же противоречит?
Потому что к указателю ты можешь прибавить произвольное число и получаешь абсолютно валидный указатель, который может указывать куда угодно (даже на несуществующий кусок памяти).
> Которая для меня ограничивается, перебором массива данных.
Для этого указатели (как и арифметика с ними) не нужны совсем. Лично я указательной арифметикой только в embedded пользуюсь и то очень редко.

Ответы30664

18 июля, 22:28 13 1230662

>>1230655
>Потому что референс должен всегда указывать на валидный кусок данных, что противоречит идее выполнения адресной арифметики с ним.
Адресная арифметика тоже определена только для валидных поинтеров (на элементы массива).

18 июля, 22:29 14 1230664

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

Ответы30666

18 июля, 22:29 15 1230665

>>1230660
>В каком смысле объект?
>Насколько я понимаю, поинтер - это тупо 4 (не обязательно) байта, которые банально хранят адрес.

Указатель всегда занимает какое-то место в памяти (зависит от разрядности системы) и там хранит адрес.

Что из себя представляет референс - решает компилятор и стандарт его в этом никак не ограничивает. Поэтому к нему нельзя применять арифметику. Также sizeof(T&) != sizeof(T*), потому что для ссылки отдельные правила.

Ответы30670

18 июля, 22:30 16 1230666

>>1230664
Чем удивит? Что разыменовыване подобного указателя это UB и компьютер может выебать мою мамку и это не будет противоречить стандарту?

Ответы30668

18 июля, 22:31 17 1230668

>>1230666
>Что разыменовыване подобного указателя это UB
Уже при арифметике может быть UB

Ответы30669

18 июля, 22:33 18 1230669

>>1230668
Только разве что переполнение.

Ответы30672

18 июля, 22:33 19 1230670

>>1230665
>Указатель всегда занимает какое-то место в памяти
Не обязательно.

Ответы30696

18 июля, 22:34 20 1230672

>>1230669
Нет, не только.

Ответы30673

18 июля, 22:35 21 1230673

>>1230672
Например?

Ответы30674

18 июля, 22:36 22 1230674

>>1230673
Например, открой уже стандарт. Ссылка во втором сообщении.

Ответы30677

18 июля, 22:38 23 1230677

>>1230674
Мне лень читать эту портянку и выискивать все неоднозначности в ней. Всё равно я указатели почти не использую. Если тебе лень или ты сам не в курсе, то ладно. Пусть это останется тайной.

Ответы30681

18 июля, 22:40 24 1230681

>>1230677
>Мне лень читать эту портянку
Ну тогда сиди тихо под шконкой, не вылазей со всяким
> референс должен всегда указывать на валидный кусок данных

Ответы30682

18 июля, 22:43 25 1230682

>>1230681
Ладно-ладно, хранитель бессмысленных знаний, успокойся. Ты победишь любого в "своей игре" если тема будет "UB в языка C++".

Ответы30683

18 июля, 22:45 26 1230683

>>1230682
>бессмысленных знаний
Пригорело и ушёл в обесценивание?

Ответы30688

36 Кб, 517x648
18 июля, 22:46 27 1230685

Добрый вечер. Мимонуб в треде, прошу подсказать, куда мне идти.
Вопрос такой: предстоит что-то отвечать по теме Network Programming в C++. До этого читал Страуструпа, начал Коплиена и так, пару курсов прошел. Нигде о нетворке ни полслова. Что мне нужно будет знать и где это можно узнать?
Шапку смотрел, гугл гуглил, нашел только пикрелейтед. Что скажете, хорошая книга, может лучше с чего другого начать?

18 июля, 22:49 28 1230688

>>1230683
А в чём ценность этих знаний? У тебя хоть зарплата выше средней?

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

Ответы3069230695

18 июля, 22:49 29 1230689

>>1230655
>Потому что референс должен всегда указывать на валидный кусок данных
Та не, можно висячую ссылку создать и по ней зайти в невалидный кусок данных.
int& f() { int i = 12; return i; }
int& ref = f();
ref += 1;

18 июля, 22:51 30 1230692

>>1230688
>А в чём ценность этих знаний? У тебя хоть зарплата выше средней?
>
Он C++ в каком-нибудь вузике преподаёт или в школе учителем информатики трудится. Зарплаты у них сам знаешь... Вот и бесится.

Ответы30695

18 июля, 23:06 31 1230695

>>1230688
Да, отрицание — это распространённая психзащита в наше время.

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

>>1230692
>Он C++ в каком-нибудь вузике преподаёт или в школе учителем информатики трудится.
Семён не заметен)
Как раз в вузиках преподают, что к указателям можно прибавлять произвольное число и при этом значение указателя увеличится на sizeof указуемого типа умножить на прибавляемое число (или что-то в этом духе).

Ответы3069930735

18 июля, 23:07 32 1230696

>>1230670
Если речь не идёт об оптимизации, то о таких глубинах глубин мне не ведомо.

18 июля, 23:12 33 1230699

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

19 июля, 00:42 34 1230735

>>1230695
>к указателям можно прибавлять произвольное число и при этом значение указателя увеличится на sizeof указуемого типа умножить на прибавляемое число (или что-то в этом духе)
А можно для дремучих, что здесь не так?

Ответы30738

19 июля, 00:45 35 1230738

>>1230735
Тебе не понять всю глубину C++ если попытаться объяснить это кратко и простыми словами. Иди читай стандарт от корки до корки и пока не прочтёшь не возвращайся.

Ответы307403074130742

19 июля, 00:56 36 1230740

>>1230738
Не, не хочу стандарт от корки до корки. Скажи, что по сетевому-то читать.

Ответы3074130856

19 июля, 00:58 37 1230741

>>1230740 >>1230738
Вот не готов еще читать стандарт, понимаешь? Видимо, это какой-то высший уровень, когда все книги пройдены и ты уже language lawyer, Я еще далеко до этого. Мне нужно что-то типа брошюры Network Programming in C++ for dummies, можешь мне что-то такое порекомендовать?

Ответы30743

51 Кб, 200x282
19 июля, 00:59 38 1230742

>>1230738
Если б он с картинками был или сюжет интересный - я б полистал.

19 июля, 01:04 39 1230743

>>1230741
А зачем тебе именно по плюсам книжка? С теорией и примерами на С должно быть много хороших книг. Спроси у красноглазиков.

Ответы30745

19 июля, 01:10 40 1230745

>>1230743
В плюсах же есть какие-то исключительно плюсовые инструменты для этого всего?

Ответы30746

19 июля, 01:16 41 1230746

>>1230745
Да вроде всё то же самое. В с++11 потоки добавили, а про сети пока что только разговоры идут - мол вроде и надо, но как-то не до этого.
Сам я не в теме, но вроде на голых плюсах только мазохисты пишут, а остальные используют сторонние либы типа boost.asio.

19 июля, 01:20 42 1230747

Можно сказать, что наследование — это в каком-то смысле агрегация?
Ну по сути-то класс наследник агрегирует в себе экземляр суперкласса. Конструктор и деструктор суперкласса вызываются и отрабатывают между началом и концом работы конструкторов и деструкторов производного. Всё так?

Ответы30761307623076430884

19 июля, 01:32 43 1230751

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

Ответы3076530777

19 июля, 02:31 44 1230761

>>1230747
Это как-то притянуто за уши.

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

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

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

Ответы30884

19 июля, 02:38 45 1230762

>>1230747
По сути - да. Но в НАСЛЕДОВАНИИ ты забираешь интерфейсы, а в агрегации ты пишешь свой собственный

Ответы30763

19 июля, 02:42 46 1230763

>>1230762
Ну если скажу, что наследование частный случай агрегации и сделаю эти пару оговорок, плюс там про полиморфизм, то за это не отмудохают?

Ответы30778

19 июля, 02:51 47 1230764

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

Ответы30766

19 июля, 02:55 48 1230765

>>1230751
libpng, libjpeg - для хождения по внутренностям файлов. CImage маленькая, но предоставляет более высокоуровневое api.

Ответы30776

19 июля, 02:59 49 1230766

>>1230764
Спасибо. Я как раз об этом не подумал. Короче, очень уж условное наблюдение, не ахти.

Ответы30767

19 июля, 03:06 50 1230767

>>1230766
Попробуй посмотреть с другой стороны.

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

Во всех этих случаях речь идёт о повторном использовании кода, но, технически это делается по-разному, и терминология это отражает.

Ответы30773

19 июля, 03:14 51 1230770

>>1230750
OpenCV.

19 июля, 03:18 52 1230773

>>1230767
Ну да, только он же может агрегированное добро скрыть за интерфейсом. Хотя может и унаследованный метод перекрыть куда-то в защищенные уровни — и прощай типовый полиморфизм, хотя наследование, да, на месте кагбэ.

Блжад, почему же сложно всё так!
А бывает какая-то условно библия ООП, где это с самых базовых аксиом разжевывается? Что-то похожее мне попадалось в первых главах OOD&A, но там потом стремительно унеслось в дебри. А так чтобы подробная экскурсия по азам, чтобы «детки, вот так наследование не делайте, пнятненько» такое бывает вообще?

Ответы30775

19 июля, 03:21 53 1230775

>>1230773
Конечно существует. Называется практика. Пара написанных программ под 3 к строк и вопросы про ООП исчезнут. Будешь так сказать на кончиках мыслей чувствовать какой подход правильный в ситуации.

19 июля, 03:33 54 1230776

>>1230765
спс, то что надо.

19 июля, 03:36 55 1230777

>>1230751
Есть вообще простой вариант: открываешь потоком файл, считываешь заголовок файла, потом заголовок пикчи, а потом в двумерный массив (вектор векторов) читаешь данные пикчи.
И работай, копируй нужный тебе кусок пикчи.
Косяк в том, что .bmp, например, хранится напрямую, а тот же .jpeg - уже не очень, то есть нужно либо курить организацию нужного формата, либо перегонять все в бмп.

19 июля, 03:40 56 1230778

>>1230763
отмудохают, потому что они рассматриваются как альтернатива друг другу.

С позиции времени жизни объектов: При наследовании объект базового класса будет создан и разрушен одновременно с объектом наследника. При агрегации агрегируемый объект может быть создан и разрушен вне агрегата, который хранит лишь указатель на него.

Также при наследовании тип объекта определяет его поведение. При агрегировании - нет. Например есть класс A и его наследники B, C. Если мы создаём наследника D от B, то он всегда будет вести себя как B. Если же D агрегат с конструктором D(A*), то он может вести себя как любой наследник A.

19 июля, 10:20 57 1230856

>>1230740
> Скажи, что по сетевому-то читать.
В стандартной библиотеке C++ сетей как бы пока нет (обещают сделать к 2023 году). Так что читать надо будет литературу по конкретным библиотекам, например Boost.Asio.

Ответы33124

19 июля, 11:55 58 1230884

>>1230747
>Можно сказать, что наследование — это в каком-то смысле агрегация?
Не публичное — да.

>>1230761
>Никакой отдельный экземпляр суперкласса не создаётся
Если при аггрегации у меня будет data member "по значению", то отдельный экземпляр тоже не будет создаваться, а будет subobject-ом.

19 июля, 16:06 59 1231096

Можно каким-нибудь образом установить GCC на винду без еботни с десятком библиотек и сотней шагов? MinGW-W64 стоит.

Ответы3114131154311693133331361

19 июля, 16:51 60 1231141

>>1231096
WSL

19 июля, 17:04 61 1231146

Аноны, выручайте. В проекте юзается статически сбилженая Qt, однако встала необходимость заюзать QWebEngineView из QtWebEngine модуля, для которого статическая сборка не поддерживается.
Можно ли как-то заюзать только dll-ки QtWebEngine-а так, чтобы не тянуть либы других модулей типа qtcore, qtnetwork и тд? они же блять статически сбилженые

Или может кто знает либы для отображения веб контента? Например, так как QtWebEngine основан на хромиуме, можно сделать свой виджет используя Chromium Embedded Framework (CEF). Но помимо овер 20Гб сурсов (это с самим хромиумом), его хуй скомпилишь. Плюс какое-то уебанское API или это я лох

19 июля, 17:21 62 1231154

>>1231096
Зачем, когда есть студия?
А вообще - пак от дяди Стефана с nuwen.net

19 июля, 17:41 63 1231169

>>1231096
>без еботни с десятком библиотек и сотней шагов?
https://www.msys2.org/

19 июля, 17:58 64 1231175

Интересно, кто-нибудь здесь работает на плюсах? Сам имею желание вкатиться в computer vision, а там в основном кресты да питоны. Или это только для сверхлюдей, кресты обычный человек осилить не может?

Ответы3122131227

19 июля, 19:22 65 1231221

>>1231175
Если потянешь матан, связанный с computer vision, то с крестами проблен не возникнет в принципе.

19 июля, 19:41 66 1231227

>>1231175
То, что кресты пиздец сложные - это миф. Они безусловно сложнее, чем динамикопараша, но божественное окружение (ты же не дебил копаться каким-нить code::blocks) и компилятор сильно облегчают задачу.

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

Ответы31991

19 июля, 23:31 67 1231333

>>1231096
Я сегодня установил. Всё сделал по этой инструкции: https://www.youtube.com/watch?v=8Ib7nwc33uA
Заработало как часы. Зависимости никакой, брат жив.

20 июля, 00:21 68 1231361

>>1231096
>GCC
>на винду
Ну ёбанарот! У тебя на ПеКа не найдётся 20Гб на няшного пингвина? Покопаешься в консольке, поебёшся с Make'ом, поймёшь как эти самые программы собираются. А IDE это всё от лукавого, они скрывают от тебя процесс рождения программы. Поставь себе какойнибудь ебучий калькулятор. В лине можно преспокойнейше без всяких там ide кодить, среда оче дружественная для погромистов. Только читни для начала справочник по башу и какие виды пакетных манагеров бывают.

Ответы313923141931744

20 июля, 02:31 69 1231392

>>1231361
Пошел нахуй, красноглазый даун

Ответы31616

20 июля, 05:13 70 1231419

>>1231361
У нас в компании есть выделенный человек, который целыми днями занимается обслуживанием нашей билд системы - тонны CMake файлов и всяких скриптов.

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

Ответы31846

20 июля, 13:22 71 1231611

Ананасы, такой вопрос.
Есть текстовый файл и в нём записаны пути к директориям
с:\mypath
c:\mypath2
Пробовал через system менять директорию, через chdir, но ничего не срабатывало.
Почему так может быть?

Ответы31621

20 июля, 13:28 72 1231616

>>1231392
>Посылает нахуй пользователей единственной адекватной ОС
>Сидит в треде языка, чей предок ( Си) был создан, как раз для создания прародителя этой ОС ( Unix ).
Боже какая же ты мудаебина.
Вангую, ты ебаное днище максимум способное осилить формошлепство на JS.

Ответы31659

20 июля, 13:40 73 1231621

>>1231611
Вот точно причину не назову, но есть предположение, что слэши неправильные - когда парсишь текст, используй класс path из <filesystem> - он сам делает нужные слэши, а потом уже делай system("cd "s.append(объект класса path.string())) - должно будет сработать

Ответы31652

20 июля, 14:30 74 1231652

>>1231621
> <filesystem>
Почему-то гцц 8.1.0 отказался даже собрать программу с просто подключенным заголовком.

> но есть предположение, что слэши неправильные
Даже просто код system( "cd c:\\" ) тоже не срабатывает.
Ладно, с++ идёт нахуй.
Буду пробовать другими средствами.

Ответы317723177531812

20 июля, 14:40 75 1231659

>>1231616
Совсем не в ту сторону вангуешь, пердолик. И свой кусок говна для маргиналов с собой забери.

Ответы31689

20 июля, 15:30 76 1231689

Моча вообще тут?
Выгоните этого >>1231659 спермоглота уже из нашего треда.

20 июля, 16:13 77 1231728

>>1230522 (OP)
Посоветуйте актуальный (C++11) справочник (не онлайн) по STL.

Ответы31810

20 июля, 16:44 78 1231744

>>1231361
Стоит gcc на шинде и на пингвине, проблем нет.
Алсо, на няшного пингвина и 10 хватит

23 Кб, 1054x392
20 июля, 16:46 79 1231748

Почему vs показывает мой массив как функцию, а не как переменную? Можно это как-то пофиксить?

Ответы319623773637781

20 июля, 17:31 80 1231772

>>1231652
Он в семнадцатом стандарте только есть такой. В одиннадцатом тоже есть, но там ебля с ним откровенная

А если вручную передавать в качестве пути, тоже не работает? В другую сторону слэш пробовал?

Ответы3177531777

20 июля, 17:34 81 1231775

>>1231652
>>1231772
Проебался, понял, вручную не катит.
Странно, что не съедает команды

20 июля, 17:38 82 1231777

>>1231772
> Он в семнадцатом стандарте только есть такой
Я в курсе.
Но я как-то раз ставил гцц 7 версии и там пример какой-то работал правда std::experimental::filesystem.

> А если вручную передавать в качестве пути, тоже не работает? В другую сторону слэш пробовал?
Уже по всякому пробовал. Вообще никак.
Попробовал даже вот так myprog тут просто вывод пути к директории | xargs cd
Но тоже не сработало.

20 июля, 18:06 83 1231810

>>1231728
цепепереференс можно официально выкачать архивом https://en.cppreference.com/w/Cppreference:Archives

Ответы33401

20 июля, 18:08 84 1231812

>>1231652
>Даже просто код system( "cd c:\\" ) тоже не срабатывает.
В каком смысле "не срабатывает"? `system` порождает шелл и выполняет в нём команду.
На твоей программа изменение директории в другом процессе, естественно, никак не сказывается.

Ответы31813

20 июля, 18:10 85 1231813

>>1231812
Ну а почему же тогда срабатывает пресловутый system( "pause" )?

Ответы31814

20 июля, 18:11 86 1231814

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

Ответы31818

20 июля, 18:17 87 1231818

>>1231814
> Как можно не понимать таких банальных вещей?
Для этого есть ты, для этого есть Интернет чтобы напомнить.

20 июля, 18:50 88 1231846

>>1231419
>боль и унижение.
Ну так это же С++ трэд, почему бы и нет?

20 июля, 21:17 89 1231962

>>1231748
бамп вопросу

20 июля, 21:41 90 1231983

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

Задавайте свои ответы.

Ответы31989

20 июля, 21:46 91 1231989

>>1231983
Что за позиция, что спрашивали

Ответы32001

20 июля, 21:47 92 1231991

>>1231227
c++ пиздос сложный когда работу на нем надо искать тысяч на 100, когда в нии прогать или для себя можно за пару недель освоить.

20 июля, 22:03 93 1232001

>>1231989
Позиция вроде на мидла или на сеньора я даже не посмотрел если честно.
Спрашивали много чего, начиная от типовых вопросов по С++, контейнеров, алгоритмов, многопоточности, и т.п. заканчивая задачками на алгоритмы и абстрактное мышление.
Самое забавное, что я нихуя не готовился даже, т.к. приехала тян и мы ебались 3 дня подряд.

Ответы32005

20 июля, 22:07 94 1232005

>>1232001
Расскажи про задачи.
Что там было?

Ответы32036

20 июля, 23:02 95 1232036

>>1232005
Я боюсь, что они тоже могут тут сидеть и спалят меня, если я расскажу задачи.
Ну задачки такие как бы, про байтоебство, про алгоритмы, про сложности алгоритмов, про структуры данных, типа как что и где использовать, давали задачи, которые надо было решить с их помощью. Давали задачи на оптимизацию алгоритмов. Благо я задрот в этой теме и в байтоебстве тоже, не зря байтоебил на си долгое время и ковырял разные алгоритмы.
По плюсам я не так хорош, но походив на пару собесов я выучил всякие каверзные вопросы.
Ну мне повезло на вопросы на самом деле, я хз, но я откуда-то реально в этих вопросах и задачах хорошо шарил.

Ответы320543207832404

20 июля, 23:39 96 1232054

>>1232036
Помнится как-то устроился в крупную международную компанию на мидла. Прошёл перед этим 4 этапа собеса, растянувшегося где-то на неделю. А в итоге работа оказалась таким говнищщем, что я там и года не проработал. Так что сильно не обольщайся.

21 июля, 00:15 97 1232078

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

Ответы32084

21 июля, 00:24 98 1232084

>>1232078
Та не, там первую форму допуска оформляют.

21 июля, 08:25 99 1232135

Пацы, хочу начать изучать C＋＋, может кто-то из вас сможет меня напрпвить по верному пути, с чего начинать, а что возможно и не стоит. Это такая интересная тема, и я очень хочу начать изучать ее, но к примеру на курсы идти, я хз.

Ответы3213832140

21 июля, 08:28 100 1232137

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

Ответы32499

21 июля, 08:29 101 1232138

>>1232135
Лучше зайди в жс или пхп тред, может ну их нахуй эти кресты?

Ответы32144

21 июля, 08:30 102 1232140

>>1232135
Стивен прата лекции и упражнения
В шапке висит

21 июля, 08:40 103 1232144

>>1232138
Чому нахуй?

Ответы32254

21 июля, 15:10 104 1232254

>>1232144
Потому что выучил пыху и жс, и сразу можешь что-то делать. А плюсы без предметной области нинужны. Ну сам подумай - сайт ты не сделаешь, парсер не сделаешь, брутфорс не сделаешь.

Ответы3225532864

21 июля, 15:15 105 1232255

>>1232254
ИИ сделаю.
Еще вопросы?

Ответы32969

101 Кб, 949x328
21 июля, 17:44 106 1232370

>>1230522 (OP)
объясните мне пожалуйста, почему sizeof(Holder) равен 1 байту, а sizeof(DerivedHolder) равен 2 байтам, ведь оба этих класса содержат внутри только один класс?

Ответы32398323993241032578

21 июля, 18:21 107 1232398

>>1232370
бля это откуда такое говно? Почему вообще размер класса без методов равен 1? Так указатель на него хранится?

Ответы3249132549

3 Кб, 306x150
21 июля, 18:21 108 1232399

>>1232370
Потому что в крестах наследование (не виртуальное) работает как композиция структур.
Сначала идут данные базовых классов, потом данные наследника.

Например пикрил,
struct A { char c; };
struct B { int x; };
struct C: A, B { ... };

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

Ответы3240032408

21 июля, 18:22 109 1232400

>>1232399
слышь, братка, объясни, почему пустой класс занимает один байт?

Ответы3241032439

21 июля, 18:26 110 1232404

>>1232036
не ссы, братюнь, давай сразу, сколько примерно з.п. о чем спрашивали, ведь один хуй если знаний в голове не было то и не прибавится хоть здесь все ответы прочитал, какие алгоритмы задрачивал, слушай, скинь мне задачки на ax!!gnomad1488ANUSgmailZ<:PUNCTUMco(2!m, а я тебе свои скину, был на двух собесах, вот охуенно будет, пообщаемся за си++

1 Кб, 167x106
21 июля, 18:30 111 1232408

>>1232399
При этом забавно выглядит каст указателей. Чтобы привести указатель на С к указателю на В его нужно сместить. Все это компилятор делает сам, так что можно не заебываться на этот счет.
С^ с = ...;
A^ a = static_cast<A^>(c);
B^ b = static_cast<B^>(c);
// (int)a != (int)b;

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

Ответы32625

21 июля, 18:33 112 1232410

>>1232400
>>1232370
>This ensures that if p points to an object of empty class, then p+1 is a distinct address and points to a distinct object

Хуле тут непонятного

Ответы32418

21 июля, 18:51 113 1232418

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

Ответы3245132453

21 июля, 19:08 114 1232439

>>1232400
Типы с нулевым размером вроде как обещали к C++20 сделать.

21 июля, 19:22 115 1232451

>>1232418
скрин из вот этой книги
https://books.goalkicker.com/CPlusPlusBook/

21 июля, 19:24 116 1232453

>>1232418
Чтобы разные объекты имели разные адреса в памяти. Размер же равен 1 байту, потому что байт это минимальный независимо адресуемый набор данных (для большинства систем).

Вроде в стандарте так написано. Хотя я уже точно не помню.

21 июля, 19:27 117 1232456

Анонусы, кто-нибудь сдавал BrainBench на си++, есть у кого-нибудь примерные вопросы, слышал, что когда в касперского устраиваешься их на собесе дают.

21 июля, 20:06 118 1232491

>>1232398
G C C
C
C

21 июля, 20:22 119 1232499

>>1232137
Смотря сколько ты готов заплатить.

Мимо-сениор-из-топовой-конторы

Ответы32512

21 июля, 20:43 120 1232512

>>1232499
могу орально тебя ублажить если поможешь вкатиться кун-пассив

Ответы32535

21 июля, 21:17 121 1232535

>>1232512
я сам себя могу так ублажить, не канает

21 июля, 21:47 122 1232549

>>1232398
Несмотря на то что класс пустой, ты все еще можешь создать его объект. И у этого объекта обязан быть адрес в памяти и чтобы адрес оставался валидным хоть какое-то место в памяти этот объект занимать должен.

21 июля, 22:56 123 1232578

>>1232370
> объясните мне пожалуйста, почему sizeof(Holder) равен 1 байту
An object has nonzero size if it
is not a potentially-overlapping subobject, or
is not of class type, or
is of a class type with virtual member functions or virtual base classes, or
has subobjects of nonzero size or bit-fields of nonzero length.
Otherwise, if the object is a base class subobject of a standard-layout class type with no non-static data members, it has zero size.
Otherwise, the circumstances under which the object has zero size are implementation-defined.
http://eel.is/c++draft/basic.memobj#intro.object-8

Применяешь это правило 2 раза. Один раз к мемберу Holder::e, который has nonzero size согласно первому пункту
(определение potentially-overlapping subobject http://eel.is/c++draft/basic.memobj#def:potentially-overlapping_subobject:
A potentially-overlapping subobject is either:
a base class subobject, or
a non-static data member declared with the no_unique_address attribute ([dcl.attr.nouniqueaddr]).
под которое мембер не попадает)
Потом к классу Holder: у него nonzero size по четвёртому пункту.

> sizeof(DerivedHolder) равен 2 байтам
Его base class subobject не должен иметь zero size, т.к. у отнаследовавшегося класса есть non-static data member.
Implementation определила, что у него должен быть nonzero size. И определила его равным единице. Итого, у DerivedHorlder 2 (неперекрывающихся) subobject-а размера 1. Поэтому он должен иметь размер минимум 2.

Ответы32587

21 июля, 23:10 124 1232587

>>1232578
>> sizeof(DerivedHolder) равен 2 байтам
>Его base class subobject не должен иметь zero size, т.к. у отнаследовавшегося класса есть non-static data member.
>Implementation определила, что у него должен быть nonzero size. И определила его равным единице. Итого, у DerivedHorlder 2 (неперекрывающихся) subobject-а размера 1. Поэтому он должен иметь размер минимум 2.

Тут я наврал, конечно же. Объяснение неверное.

base class subobject имеет размер 0, т.к.
> Otherwise, if the object is a base class subobject of a standard-layout class type with no non-static data members, it has zero size.

Но он не может иметь тот же адрес, что и non-static data member того же типа, т.к.:
Two objects with overlapping lifetimes that are not bit-fields may have the same address if one is nested within the other, or if at least one is a subobject of zero size and they are of different types; otherwise, they have distinct addresses and occupy disjoint bytes of storage.

Итого, хотя base class subobject у DerivedHolder нулевого размера, но т.к. первый дата мембер имеет тот же тип, что и базовый класс, то между base class subobject и мембером есть ненулевой padding. Отсюда размер 2 байта: padding + 1 байт от размера non-static data member.

22 июля, 00:23 125 1232625

>>1232408
а что конкретно скрыто за "привести указатель" ?
вот есть указатель и есть его адрес
после
A a = static_cast(A)C
ведь адрес его не измениться, так?
Я так понимаю при вызове метода в метод передается адрес объекта(this) и соответственно доступ к данным организован через смещение от этого this. Как это в памяти выглядит?

22 июля, 15:06 126 1232864

>>1232254
>сайт ты не сделаешь
-
>парсер не сделаешь
-
>брутфорс не сделаешь
- Причем на плюсиках ты можешь не только веб, но и железки брутфорсить, каково, а?

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

22 июля, 16:36 127 1232969

>>1232255
>ИИ сделаю.
>Еще вопросы?
Вопросов больше нет, так бы сразу и сказал что в AI хочешь. про питон не забудь

Ответы33033

22 июля, 17:20 128 1233033

>>1232969
Питон в контексте AI лишь костыль для тех, кто не может перемножить две матрицы на С.

Ответы3303933051

22 июля, 17:24 129 1233039

>>1233033
Вот этот вроде не совсем дебил.

22 июля, 17:38 130 1233051

>>1233033
Ну и нахуй тебе перемножать матрицы на си? Причем матрицы на си ты можешь перемножить и в питоне. Си надо изучить, написать пару десятков лаба.с, запилить какой-нибудь метод Гаусса, сортировки, вектор и дерево. А дальше надо нормальный язык брать.

Ответы3305633059

22 июля, 17:49 131 1233056

>>1233051
>маняматика нинужна врети
Ясно.
Понятно.

Ответы3307033080

22 июля, 17:57 132 1233059

>>1233051
>Надо написать софт с жёсткими требованиями по производительности и ресурсам. Ок, возьму java/python/c#, потому что это нормальные языки для серьёзных задач.

Всегда с таких даунов проигрываю.

Ответы330613307333077

22 июля, 18:01 133 1233061

>>1233059
>2к!8
>по производительности и ресурсам.
Просто купи нормальное железо.

Ответы33064330713307933123

22 июля, 18:12 134 1233064

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

22 июля, 18:19 135 1233070

>>1233056
Блять, а кто тебе мешает выч. методы и алгоритмы на питоне писать? Для этого тебе си нужен?
Я всегда думал его в вузах учат на 1 курсе, чтобы объяснить, что такое ячейка памяти, указатель, стек, куча, зачем мусор собирать и прочее машинозависимое говнецо. Алгоритмы можно на чем угодно изучать.

Ответы33076

22 июля, 18:20 136 1233071

>>1233061
> 2!!8
> Сортировка пузырьком такая удобная. Просто купим железо помощнее.

22 июля, 18:22 137 1233073

>>1233059
Это другой вопрос. Парень хочет в ИТ вкатиться через си.

22 июля, 18:24 138 1233076

>>1233070
>Блять, а кто тебе мешает выч. методы и алгоритмы на питоне писать?
Святая толстота (или тупость?). Ну возьми ты тот же OpenCV и посмотри для чего там используется c++, java и python. Сразу поймёшь с каким языком место у параши, когда дело касается вычислений.

Ответы33087

22 июля, 18:26 139 1233077

>>1233059
Numpy написан на си, и с его помощью можно перемножать матрицы на си в питоне.

Ответы33093

22 июля, 18:26 140 1233079

>>1233061
Боже ебаный ты шизойд.
Я посмотрю на тебя макака тупая, как ты напишешь какую-нибудь real-time хуйню на своей ЖАВЕ или ПИТУХОНЕ, с недетерменированными задержками со всякими их GC и прочей хуитой.

Откуда же такие дауны берутся я хуею.

Ответы33083

22 июля, 18:27 141 1233080

>>1233056
Как связаны си и математика?

Ответы33085

22 июля, 18:30 142 1233083

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

Ответы33086

22 июля, 18:30 143 1233085

>>1233080
Ну если уж на то пошло, то тогда надо Fortran брать. Он как раз для математиков был спроектирован. Там, кстати, многое заточено под работу с матрицами и векторами.

22 июля, 18:32 144 1233086

>>1233083
И нахуя этот гемор нужен? Джава - это язык для других задач.
Если ты какой-то неосилятор, то действительно можешь юзать NumPy и хуячить на питончике, те части, которые не требуют производительности. Так кстати и делают многие.

22 июля, 18:32 145 1233087

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

Ответы33091

22 июля, 18:43 146 1233091

>>1233087
Да, я писал вычметоды на плюсах в коммерческом проекте. А что касается войтивойти, то тут уж кто на что способен и куда вкатывается. На чём ты будешь вкатываться в те же embedded systems?

22 июля, 18:49 147 1233093

>>1233077
Странно, что не на питоне, да?

Ответы33203

22 июля, 19:52 148 1233123

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

58 Кб, 1044x784
22 июля, 19:54 149 1233124

>>1230856
Пробую поставить этот boost.
Вначале он доёбывал какими-то придирками к аргументу --prefix="C:/Program Files/boost/installed" (Я пробовал писать и с одинарными кавычками и с двойными и с обычным слешем и с обратным и с двойным обратным — результат один ошибка и несколько строк с моим путем, где каждый раз слеши в разную сторону) психанул и без аргументов вызвал этот бутстрап, а потом сразу ./b2 install

Вот теперь то, что на картинке. При чем уже очень давно (пара часов, наверное) и конца и края нет. Я что-то сделал не так?

Внутри MVS при подключении в свойствах проекта автозаполнятор инклюдов видит boost, предлагает напечатать #include <boost/asio.hpp>, но потом не собирается и требует какую-то кучу букв.lib

Пример из бустовского туториала, где предлагают #include <boost/lambda/lambda.hpp>
у меня работал еще до запуска скрипта с установкой и сейчас работает. Из строки собрать не выходит, не видно путей.

Что делать?

Ответы3315033255

22 июля, 20:39 150 1233140

Аноны,
ko - указательна на функцию.
ko++ на какой адрес будет указывать?

Ответы331444390944137

22 июля, 20:40 151 1233141

Несколько лет назад я писал TCP/IP сервер на си, затем как-то проебал эту парашу сетевую, не крутился в этих областях, а теперь куда ни плюнь все на буст asio ебенят, а на сях ща вообще чего-нибудь пишут под сеть или это уже навроде ассемблера?

Ответы33151

22 июля, 20:50 152 1233144

>>1233140
Не скомпилируется.

22 июля, 20:56 153 1233150

>>1233124
Дописать в свойствах проекта путь бустовским библиотекам. В C:/Program Files/boost/ уточни, где они конкретно лежат. Если буст собран динамически, то еще и в переменную PATH добавить путь к его dll (или ручками скопировать в папочку, куда итоговый исполняемый бинарник твоего проекта выкладывается).

А вообще почитать нужно, как приложение компилируется и линкуется. Именно как происходит запуск cl.exe и link.exe. И с какими параметрами. А то привыкнут в этой вашей винде мышкой тыкать, а как чуть что по другому, так в лужу садятся))

Ответы331533315633241

22 июля, 20:58 154 1233151

>>1233141
Nginx

22 июля, 21:01 155 1233153

>>1233150
> А то привыкнут в этой вашей винде мышкой тыкать, а как чуть что по другому, так в лужу садятся))
Если на винде, то можно всё это сделать (почти) двумя тычками мышки. Буст элементарно ставится через vcpkg и его можно поставить с глобальной видимостью, что значит все его хедеры автоматом станут доступны во всех проектах вижуал студии.

Ответы33231

22 июля, 21:04 156 1233156

>>1233150
> дед мой в гараже с шохой пердолился, батя пердолился и я тоже буду.

Ответы33231

22 июля, 22:05 157 1233203

>>1233093
Питон медленный для сверхбыстрого перемножения матриц

Ответы33209

22 июля, 22:15 158 1233209

>>1233203
>Питон медленный
Во всём.

Ответы33604

22 июля, 22:58 159 1233231

>>1233156
Ты о чем? Я разве предлагал ручками в консольке набирать команды по-пол экрана?
Иметь представление о том, что происходит под капотом один фиг нужно. Хотя бы потому, что мир на VS и Windows не заканчивается.
>>1233153
Вариант. Еще и Nuget для этого есть.
Лично я использую Conan с автозапуском из CMake, ибо кросплатформеность нужна.

22 июля, 23:11 160 1233241

>>1233150
Я очень проебываюсь по этой теме и вот сейчас хочу наверстать. Собственно, поэтому и буст через консольку запустил ставиться.

Знаю, что обычно пишу в Makefile что-то типа
all:
отступ табуляцииgcc -o test test.c
или для ++g++ -std=c++11 -o plus plus.cpp
А потом могу запускать прямо в MinGW, набрав test или plus соответственно.
С хидерами проблем пока что не возникало, но это были максимум <algorithm> или что-то еще из STL, как он их находит, не знаю. Хочу сделать, чтобы #include <boost/asio.hpp> при таком подходе тоже нормально подтягивалось и не нужно было писать в мейкфайл еще кучу длинных строк с путями к бусту. Это вообще возможно?

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

Ответы3324533289

22 июля, 23:14 161 1233245

>>1233241
Заранее прошу прощения, если вопрос мой дурацкий. Читал FAQ и Tutorial заметки от буста и нихрена из них не понял. То, что он выдавал по запросу --показать-библы вообще не содержало пункта asio, да и на сайте там его в списке нет. Если есть какой-то нормальный материал с ответами на мои вопросы, ткните в него носом.

Ответы33285

22 июля, 23:20 162 1233255

>>1233124
V C P K G
C
P
K
G

Ответы33316

22 июля, 23:55 163 1233285

>>1233245
asio header-only библиотека, ее не нужно компилировать (а вот ее зависимости нужно).
https://www.boost.org/doc/libs/1_67_0/doc/html/boost_asio/using.html

95 Кб, 1920x1080
23 июля, 00:02 164 1233289

>>1233241
>Он вообще на винду ставится или нет?
Ставиться, ставиться. Разве что под WinXP не все части собираются.
>он реально так долго ставится
У него дофига заголовочных файлов. Если винт тормозной, то не удивительно.

Ответы33316

23 июля, 00:54 165 1233316

>>1233255
Спасибо, собралось VCPKG. Оно советует буквально следующее
>simply need to add it onto your CMake command line as -DCMAKE_TOOLCHAIN_FILE=[vcpkg root]\scripts\buildsystems\vcpkg.cmake
А куда это — не понимаю. У меня в папке с CMake файлов нет, в подпапке bin есть Cmake.exe, Cmake-gui.exe, cpack.exe, ctest.exe и cmcdelps.exe
Все кроме гуя запускаются на долю секунды. В гуе копировать эту строку особо некуда. (В configure попробовал, заругало)
Что это он хочет?

>>1233289
Таки-да, 10246 какой-то херни установило, когда Я Ctrl+C нажал, 102 не успело установить. Брюс Уиллис, ёба. Пофиг, удалил.

Ответы3332033327

23 июля, 00:58 166 1233320

>>1233316
Теперь тебе нужно разбираться с cmake хе-хе. Если ты работаешь в vs погугли как создавать cmake-проекты в вижуал студии.

Ответы33321

23 июля, 01:14 167 1233321

>>1233320
О, господи, нахера?
Я зазубрил 1.5 команды написания CMakefile как раз чтобы ни с чем не разбираться да, зря, видимо, получается, vcpkg мне что-то там на тему симейка предлагает только на случай, если мне захочется в симейке делать, на остальные случаи это не повлияет?

А зачем мне вообще может понадобиться симейк в MVS? Я понимаю, вместо MVS: написал себе эти все CMakeLists.txt, запустил cmake -H. -Bbuild потом им же построил типа как cmake --build build и сидишь довольный, а в среде он нахрен сдался, если среда сама всё построит?

Ответы33332

23 июля, 01:38 168 1233327

>>1233316
Если твой проект на симейке - сделай то, что дядя сказал.

Если твой проект - студийный солюшен, то все автоматом подсосется. Ты же сделал vcpkg integrate, как на гитхабе написано, да?

Ответы33336

23 июля, 01:52 169 1233332

>>1233321
>А зачем мне вообще может понадобиться симейк в MVS?
Ну типа писать портируемый проект в mvs со всеми удобствами ide. Под невиндой ты его открываешь в каком-нибудь QtCreator и также уютненько продолжаешь писать.

23 июля, 02:10 170 1233336

>>1233327
Конечно сделал, сейчас результаты такие же, как в самом начале: autocomplete видит boost/asio.hpp, но собираться проект с ним не хочет. Если поменять на какой-то boost/regex.hpp как в примере Getting Started, то всё нормально собирается. В чём дело?
Из командной строки тоже не видит, может чего дописать надо или еще доинсталлировать?

Ответы33337

23 июля, 02:13 171 1233337

>>1233336
Пересоздал новый проект, та же херня.
1> ... error MSB3030: не удалось скопировать файл ...\boost_system-vc141-mt-gd-x32-1_67.dll - файл не найден.
1>Сборка проекта "Boost — still does not work.vcxproj" завершена с ошибкой.

23 июля, 02:25 172 1233338

38 Кб, 992x35588 Кб, 1113x714

Я уже психанул и стал копировать вручную эту сраную дллку, нашел ее в папках VCPKG, скопировал, захожу туда, где MVS ее „не видит“ — и что же оказывается? Да она там есть и так.
boost_system-vc141-mt-gd-x32-1_67.dll

Какого хера он ее в упор не видит?

Ответы33341

23 июля, 03:01 173 1233341

>>1233338
Не знаю, что ты делаешь, но проверь разрядность и debug/release, а также попробуй прописать путь к используемой dll через настройки проекта. Может она тянет за собой соседей и её просто так нельзя копировать.

Ответы3334433345

23 июля, 03:40 174 1233344

>>1233341
Ещё vcpkg по-умолчанию компилирует 32-битные библиотеки, может он пытается использовать их с 64-битным приложением?

23 июля, 03:44 175 1233345

>>1233341
Спасибо за идею, проверил. Подобавлял везде папку с vcpkg (корень ведь, правильно?). Но не помогло ни хрена.
Вручную покопировал это boost_system-vc141-mt-gd-x32-1_67.dll во все внутренние папки решения, похуй, не видит в упор.
В файлы ресурсов в солюшнэкспройлере добавил уже зачем-то, один и тот же результат.

Я сдаюсь. В пдзу пргармирвоне

Ответы333463334733350

23 июля, 03:48 176 1233346

>>1233345
Лучше перекатывайся в C#. Там в .NET-мирке нет подобной ёбли со сборкой проекта в отличии от плюсов.

Ответы33348

23 июля, 04:00 177 1233347

>>1233345
Пути к dll сразу для всех студийных проектов указываются в project->properties->vc++ directories->Library Directories. Для отдельных проектов Linker/Librarian->general->additioanl library directories.
Cам путь можно вбить туда абсолютный (ну типа c:\vcpkg\ или где там dll лежит). Если заработает, то потом запилишь константы и через $() переделаешь.

Ответы33655

23 июля, 04:04 178 1233348

>>1233346
Это да. И цепляние сторонних либ через InteropServices там комфортное.

23 июля, 04:27 179 1233350

>>1233345
Да ладно тебе, ты ж только начал. Впереди не менее увлекательные задачи портирования и развёртки твоей laba2.cxx.

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

Ответы33377

23 июля, 08:52 180 1233377

>>1233350
ох бля, писал программу две недели и еще две недели писал под нее инсталлятор, проверяя ее на различном оборудовании, пиздец, из ldd просто не вылезал, весь по уши в bash и pituhon, ебля нон стопом, рили хард!

23 июля, 10:10 181 1233401

>>1231810
Спасибо.

23 июля, 11:41 182 1233449

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

Ответы33541

23 июля, 14:35 183 1233541

>>1233449
> Кто-нибудь сейчас пилит что-нибудь на гите?
Штоу?

Ответы33542

23 июля, 14:36 184 1233542

>>1233541
Упражнения дай, ёпта.
Сайтики с упражнениями, я знаю, они есть.

Ответы33544

23 июля, 14:39 185 1233544

238 Кб, 595x417203 Кб, 635x445401 Кб, 570x802

>>1233542

Ответы33545

23 июля, 14:45 186 1233545

>>1233544
Спасибо

23 июля, 17:22 187 1233604

>>1233209
Ну не скажи, для простого вебговна скорости хватает, для парсеров/брутфорсов тоже. А больше на питоне ничего и не пишут

23 июля, 17:38 188 1233615

Ребят, где практики набраться , типо как стажером, но даже не за еду, ради скиллов и информации только бы. Сам студент.

Ответы3361833630

23 июля, 17:39 189 1233616

Ребята, как мне в методе класса сделать вывод инстанса класса? Чтобы получать имя переменной по указателю this?

Ответы3362333627

23 июля, 17:40 190 1233618

>>1233615
Если ты знаешь стл буст алгоритмы потоки и tcp то можно идти юниором за нихуя.

23 июля, 17:59 191 1233623

>>1233616
чо?

Ответы33632

23 июля, 18:06 192 1233627

>>1233616
Если я тебя правильно понял, то что-то типа
std::string typename = typeid.name(*this);

23 июля, 18:10 193 1233630

>>1233615
>Ребят, где практики набраться , типо как стажером, но даже не за еду, ради скиллов и информации только бы. Сам студент.
>
всякие крупные компании предлагают позиции именно стажёров на неполную занятость. либо они организуют различные курсы для студентов на лето.

23 июля, 18:15 194 1233632

>>1233623
Блять, торопился, соре. как мне в методе класса сделать вывод имени инстанса класса?

Ответы33641

23 июля, 18:43 195 1233641

>>1233632
class Ass {
public:
std::string name;
void println_name() { std::cout << name << '\n'; };

int main()
{
Ass ass { "ass" };
ass1.println_name();
}

Ответы3364233644

23 июля, 18:44 196 1233642

>>1233641
Проебаал скобку после определения класса...

23 июля, 18:51 197 1233644

>>1233641
А без задания имени в конструкторе? С простой переменной можно это через макросы сделать,
#define GET_VARIABLE_NAME(Variable) (#Variable)
но как с указателем this я не знаю.

Ответы33649

564 Кб, 800x430
23 июля, 19:17 198 1233649

>>1233644
Лол, а что ты хотел? Чтоб компилятор каждому инстансу класса придумывал своё имя?
И фамилию (от базовых классов), и историю с неожиданной развязкой: Светила полная луна, итератор инвалидировался после реаллокации контейнера...

Используй cout << this, указатель у каждого уникальный

23 июля, 19:21 199 1233655

>>1233347
Всё проверил, везде абсолютный путь на папку vcpkg.
Проблема в другом: когда нажимаю собрать проект, в папочку с Debug подтягивается boost_system-vc141-mt-gd-x32-1_67.dll, но сам линковщик при этом ничего не собирает и кричит, что boost_system-vc141-mt-gd-x32-1_67.dll в этой самой папке не найден.
В чем проблема? в MVS? в VCPKG? в Boost? в прокладке между табуреткой и компом?

23 июля, 19:54 200 1233666

Собеседовался щас по скайпу в яндекс, пиздец я проебался на задаче
найти медиану из 3х чисел, которые могут идти в любом порядке и повторяться.
аля :
int median(int a, int b, int c)
{
// ...
}

Я короче сначала сделал, через тупой перебор всех возможных комбинаций типа
#define med(a,b,c) if(a <= b && b <= c) return b;

med(a,b,c)
med(c,b,a)
med(b,c,a)
med(a,c,b)
...

Он попросил оптимизировать, я написал половину а дальше затупил.
Короче сидел наверное час решал эту хуйню, он даже добавил дополнительное время мне, но полностью не решил.

Еще был вопрос каково будет время вставки N элементов в вектор через push_back
Я ответил n log(n), т.к n элементов и т.к. вектор увеличивается в 2 раза если не хватает места, то получается вроде log n, так что общая сложность n log n. Но я не уверен.

Ответы3367933706339003420234227

23 июля, 20:16 201 1233679

>>1233666
На задаче проебался, зато в треде трипл выбил.

По медиане я только что такую хуйню придумал, лень гуглить нормальное решение:
int median(int a, int b, int c)
{
return (a + b + c) - min(a, min(b, c)) - max(a, max(a, b));
}

Вставка в конец вектора в среднем О(1). Хотя размер реаллокаций растет экспоненциально, они происходят во столько же раз реже.

Ответы336813368233684336993411834202

23 июля, 20:17 202 1233681

>>1233679
>max(a, max(b, c))
фикс

23 июля, 20:20 203 1233682

>>1233679
я так и не понял, что такое медиана. Но про вектор худшее время вставки это N, т.к. в зависимости от выбранного аллокатора - реаллокация может идти каждый раз. О - худшее время

Ответы3369233712

23 июля, 20:23 204 1233684

>>1233679
Будет UB при переполнении в сложении.
Вряд ли это ожидается от функции.

Ответы33902

23 июля, 20:24 205 1233686

Аноны, помоги, у меня есть массива в байтах и есть размер пакета в байтах, сколько нужно пакетов что бы уместить туда массив
я считаю вот так
> if (!body.size() % packet_length ) {
>packets_num = body.size()/packet_size;
>}
>else {
> packets_num = body.size()/packet_size + 1;
>}
Бля, в общем мне надо одно число на другое поделить и если результат не ноль округлить его до большего.
т.е. если пакет 3 байта, а массив 20, делим 20/3 и получаем 7 пакетов

Ответы33703

23 июля, 20:30 206 1233692

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

112 Кб, 736x736
23 июля, 20:37 207 1233699

>>1233679
int median(int a, int b, int c)
{
if (a < b) swap(a, b);
if (b < c) swap(b, c);
if (a < b) swap(a, b);

return b;
}

Ответы33710

23 июля, 20:42 208 1233703

>>1233686
Вот держи: ((((int)размер_массива / размер_пакета) + 1) * размер_пакета)

Ответы33718

23 июля, 20:43 209 1233706

>>1233666
отсорировать значения и взять второе
как-то так:
int& refs[3] = {a,b,c};
if(ref[0]>ref[1]) swap(ref[0], ref[1]);
if(ref[0]>ref[2]) swap(ref[0], ref[2]);
return (ref[1]<ref[2]) ? ref[1] : ref[2];

Ответы3371033711

23 июля, 20:48 210 1233710

>>1233699
Ах тыж шустрая жопа.
>>1233706

23 июля, 20:51 211 1233711

>>1233706
Чо, бывают массивы ссылок?

Ответы33720

23 июля, 20:53 212 1233712

>>1233682
С помощью достаточно мудацкого аллокатора можно и O(N) получить и мамку твою выебать, кто ж спорит.
Вопрос-то наверно был не про параллельные вселенные, а про стандартный вектор. На cppreference для push_back написано amortized constant.

23 июля, 20:55 213 1233718

>>1233703
чет как-то непонятно
размер пакета 5 байт
размер массива 10 байт
((int)10 / 5 ) + 1) * 5
мы вам перезвоним...

Ответы33860

23 июля, 20:56 214 1233720

>>1233711
Ну тогды просто массив интов.

23 июля, 20:59 215 1233724

Я охуеваю чета от местных. Тока работы у меня все равно нет.

23 июля, 21:29 216 1233744

помню меня спросили прям по телефону про размер вектора при аллокации или размер аллокатора вектора, в общем я до сих пор ответа не знаю (хотя размер вектора вроде 0) кто такой этот аллокатор?

Ответы33758

23 июля, 21:51 217 1233758

>>1233744
https://ru.cppreference.com/w/cpp/memory/allocator

Ответы33764

23 июля, 21:58 218 1233764

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

Ответы33766

23 июля, 22:03 219 1233766

>>1233764
>ru
Первое, что в гугле открылось. Самого бесит, что нужно вручную юрл поправлять.

Ответы33773

23 июля, 22:12 220 1233773

>>1233766
Просто ты не смог в настройку хрома.
Settings->Languages
Order languages based on your preference -> English

Ответы33804

23 июля, 22:28 221 1233784

Определить, является ли целое число степенью двойки.
bool isPow2(int v) { / code / };

Ответы3379341499

23 июля, 22:45 222 1233793

>>1233784
https://ideone.com/gDWSDK
Вместо ctz(v) можно написать (31 - clz(v))

Алсо, для msvc надо будет использовать другие интрисики.

Хотя хуй его знает насколько это оптимально. Возможно сейчас байтоёбы придумают что-нибудь попирформансней.

Ответы33799

23 июля, 22:51 223 1233799

>>1233793
И, кстати, мой вариант для отрицательных чисел работать не будет. Пичаль, беда.

Ответы33834

16 Кб, 612x517
23 июля, 22:55 224 1233804

>>1233773
Как-бы у меня фирефокс, и как бы всё настроено. Просто сам гугл выдаёт результат уже с ru.
>inb4 почему гугл, а не DuckDuckGo
Не знаю

Ответы33807

23 июля, 22:57 225 1233807

>>1233804
about:config
покажи
browser.search.region
browser.search.countryCode

Ответы33836

23 июля, 23:20 226 1233834

>>1233799
Отрицательные степенью двойки быть не могут, так что можно заменить v!=0 на v>0. А без ынтрынсыков решение выглядит так:
bool isPow2(int v) {
return v > 0 && (v & (v - 1)) == 0;
}

23 июля, 23:21 227 1233836

>>1233807
US стоит

Ответы33843

23 июля, 23:25 228 1233843

>>1233836
Используй DuckDuckGo.

24 июля, 00:11 229 1233854

https://www.youtube.com/watch?v=9mWWNYRHAIQ

24 июля, 00:27 230 1233860

>>1233718
У меня округление с шагом в большую сторону, если рамерности вот уже хватет впритык все равно делается +1 шаг. Чтоб пофиксить въеби проверку размера буфера под размер пакетов.

Ответы34098

24 июля, 02:56 231 1233900

>>1233666
Люблю задачки.
Медиана:
std::vector<int> v{a,b,c}; std::stable_sort(v.begin(), v.end()); return v[1]; // это добро работает O(nlogn) по сортировке (stable для предсказуемого худшего случая)

Время вставки: амортизированная сложность бэкинсертера O(1), в худшем случае O(n), от тебя скорее всего ждали ответ O(n), т. е. сложность вставки кол-во элементов, ясен фалос берем амортизированную. Про мультипликативную реаллокацию ты был прав, хотя оптимально и не ровно вдвое, но это очень близко и на практическом уровне точнее значение не нужно.
(Положим, пи равно трём. Инженерная поговорка)

Ответы339073390934202

24 июля, 02:59 232 1233902

>>1233684
Почему переполнение? Разве внутри выражения в скобках эта байда не приведется к unsigned --> unsigned long --> long long --> unsigned long long по неявному приведению?

Ответы33905

24 июля, 03:09 233 1233905

>>1233902
>Почему переполнение?
Потому что оно может быть при определённых значениях параметров.

> Разве внутри выражения в скобках эта байда не приведется к unsigned --> unsigned long --> long long --> unsigned long long по неявному приведению?

С чего оно будет приводиться так?

24 июля, 03:26 234 1233907

>>1233900
Ну чо ты STL'ем то по воробьям. Срамота то какая.

24 июля, 03:58 235 1233909

>>1233900
Зачем вектор для статически известного числа элементов?

Ответы34099

24 июля, 10:38 236 1234035

Аноны, стоит ли K&R изучить что бы ловчей по си++ собесы проходить, глупо конечно звучит, но на сях программил 10 лет назад где-то полгода, в то время даже особой разницы между си и си++ не видел.

Ответы3403737288

24 июля, 10:45 237 1234037

>>1234035
А зачем тебе для плюсов книга, предназначенная для обучения сям?

24 июля, 12:43 238 1234088

>>1230544
До сих пор в ахуе, и что самое хреновое свой тред репортнуть нельзя

24 июля, 12:55 239 1234098

>>1233860
обоснуй за округление в большую сторону? Кроме того вообще формула неверное, так-то получается по твоему алгоритму 15. Я вот такую хуету накодил пока
[code]
auto res = std::div(mBody.size(), PACKET_SIZE);
int packets_number = res.rem ? res.quot + 1 : res.quot;
[/code]

24 июля, 12:58 240 1234099

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

Ответы3411434118

24 июля, 12:58 241 1234100

Есть ли какая-нибудь книга, где описывается работа с памятью?(то есть фрагментация, стратегии аллокации итд).

Ответы34103

24 июля, 13:01 242 1234103

>>1234100
(((( бля где-то прям здесь статью видел про это дело

24 июля, 13:27 243 1234114

>>1234099
>что бы мудаки-говноеды за его размер не вышли, в векторе есть проверка за выход за индекс, а в массиве нет.
??????
А это что https://en.cppreference.com/w/cpp/container/array/at ?

24 июля, 13:32 244 1234118

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

Многие узнавшие понятие "преждевременная оптимизация" не знают/забывают, что есть понятие "преждевременная пессимизация".

Динамическое распределение памяти вектором это преждевременная пессимизация.

Кстати, ты узнавал, можно ли функции median кидать исключения? Вектор может кидать исключения. Так что ты, как ананас с UB >>1233679 , нарушаешь контракты своим решением с вектором.

Ответы34142

24 июля, 14:26 245 1234142

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

Ответы34144

24 июля, 14:29 246 1234144

>>1234142
>тут критерии не указаны
Указаны критерии (требования) "найти медиану".
Вылетевший bad_alloc — это не найденная медиана.
Это сложно понять?

Ответы34172

24 июля, 14:36 247 1234147

Пачаны, скоро иду на собес. Что надо знать про сокеты и всё такое?

Ответы3415034174

24 июля, 14:42 248 1234150

>>1234147
>Что надо знать про сокеты и всё такое?

Какие именно сокеты?

TCP/IP сокеты?

Unix Domain сокеты?

Сокеты беркли?

Ответы3415934162

24 июля, 14:55 249 1234159

>>1234150
Сокеты Добрый и сокеты Я. Собес на программиста Агушу.

24 июля, 15:01 250 1234162

>>1234150
Да-да, вот про это всё говно. Что об этом нужно знать приличному программеру и где можно прочесть джентльменский минимум в максимально сжатом виде? Я хочу самую общую картину схватить, совсем незнаком с вопросом.

Ответы34165

24 июля, 15:08 251 1234165

>>1234162
Ричард Стивенс, "TCP/IP в подлиннике".

24 июля, 15:18 252 1234172

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

Ответы34231

24 июля, 15:22 253 1234174

>>1234147
Нахуя? Иди в веб

Ответы34211

24 июля, 16:11 254 1234202

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

У меня вышло так:

void cmp_swap(int& a, int& b)
{
if(a > b) {
int t = a;
a = b;
b = t;
}
}

int median(int& a, int& b, int& c)
{
cmp_swap(a,b);
cmp_swap(a,c);
cmp_swap(b,c);

return b;
}

>Хотя размер реаллокаций растет экспоненциально, они происходят во столько же раз реже.
Ну да по идее получается log2(n) реалокейтов, поэтмоу общая сложность n log n.

>>1233900
Бля, из всех предложенных тут вариантов, твой самый ущербный. Ты представляешь на сколько это будет медленно работать?

>>1233666 - анон

24 июля, 16:11 254 1234202

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

У меня вышло так:

void cmp_swap(int& a, int& b)
{
if(a > b) {
int t = a;
a = b;
b = t;
}
}

int median(int& a, int& b, int& c)
{
cmp_swap(a,b);
cmp_swap(a,c);
cmp_swap(b,c);

return b;
}

>Хотя размер реаллокаций растет экспоненциально, они происходят во столько же раз реже.
Ну да по идее получается log2(n) реалокейтов, поэтмоу общая сложность n log n.

>>1233900
Бля, из всех предложенных тут вариантов, твой самый ущербный. Ты представляешь на сколько это будет медленно работать?

>>1233666 - анон

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

24 июля, 16:37 255 1234211

>>1234174
Так а это что, не веб?
>>1234202
Я могу лучше: то же самое, только с forward_list и еще в шаблон обернуть, добавить там проверок всяких на is_integral, проверить отдельно лидирующий ноль, можно еще шизонуться и написать многоэтажный свич или иф, можно стать воздушным асом, можно Можно стать воздушной планетой. И будешь уверен, что эту планету примут по учебнику. Значит, на пользу физики пойдет одна планета. Величина — оторванная в область медианы — дает свои колебания на всю медиану.

Ответы34218

24 июля, 16:44 256 1234212

>>1234202
>cmp_swap(b,c);
return (b < c) ? b : c;

Ответы34218

24 июля, 17:00 257 1234218

>>1234211
Ты какой-то поехавший.

>>1234212
Так твое возвращает значение, а мое меняет.
Я просто еще смотрел на выход отсортированного массива с разных комбинаций.

Ответы3422334225

24 июля, 17:09 258 1234223

>>1234218
>Так твое возвращает значение, а мое меняет.
Третий свап не нужен. Первые два записывают в a минимальный элемент. Значит медиана это минимум из b и c.

Ответы34277

24 июля, 17:11 259 1234225

>>1234218
Кстати, передавая всё по ссылке, ты портишь входные данные.

24 июля, 17:13 260 1234227

>>1233666
Вот вам ответ:
return std::max(std::min(a,b), std::min(a,b))
При желании max и min поменять местами.
Вообще же задача простая, кто хочет посложнее — возвращайте не медиану, а моду

Ответы3422934270

24 июля, 17:16 261 1234229

>>1234227
>std::min(a,b)
std::min(b,c)
поспешишь - проиграешь

Ответы3423334270

24 июля, 17:16 262 1234231

>>1234172
Ты дебил? Вообще понял кому и на что отвечаешь?

24 июля, 17:18 263 1234233

>>1234229
Конечно, тут опечатка. Идея-то очевидная. Сработает даже на 4 аргументах.

Ответы34236

24 июля, 17:24 264 1234236

>>1234233
>на 4 аргументах
На 4 аргумента обычно дают задачку о пересекающихся интервалах (найти общую часть).

Ответы34238

24 июля, 17:33 265 1234238

>>1234236
А есть где-то запротоколированный пак моднейших задачек?

Ответы3424134243

24 июля, 17:42 266 1234241

>>1234238
Любой сборник задач по олимпиадной математике для школьников.

24 июля, 17:48 267 1234243

>>1234238
leetcode.com

24 июля, 18:51 268 1234262

Чуваки, что нужно знать, чтобы попасть на стажировку куда-нибудь? А то я читаю вот такую хуйню:
https://career.ru/vacancy/25924198
>Опыт объектно-ориентированного программирования
А придешь, окажется, что надо иметь опыт минимум 10 коммерческих проектов, гитхаб с >1000 фоловеров, написать по памяти реализацию вектора а стл, иметь мягкий анус и глубокую глотку.
Что точно надо иметь в портфолио?

Ответы34268

24 июля, 19:22 269 1234268

>>1234262
Так там же на 1С придётся "программировать".
Что касается опыта для стажёра - обычно достаточно рассказать про курсовую или лабу в которой ты использовал ооп. Потом тебя поспрашивают про основы языка и дадут задачку на смекалку. Всякую еботень типа написания своего sqrt или потокобезопасного контейнера с тебя не спросят.

24 июля, 19:27 270 1234270

>>1234227
>>1234229
Че-то нихуя твой способ не работает.

[1 1 1] median = 1
[1 1 2] median = 1
[1 2 1] median = 1
[2 1 1] median = 1
[1 2 3] median = 2
[3 2 1] median = 2
[2 1 3] median = 1
[3 1 2] median = 1

Ответы342843428534292

24 июля, 19:38 271 1234277

>>1234223
В общем, да, но (b < c) ? b : c; это один хуй операция сравнения, единственное, что на 1 копирование меньше.

Ответы34282

24 июля, 19:47 272 1234282

>>1234277
На 3 копирования и вызов функции, если компилятор не сделает её inline.

Ответы34288

24 июля, 19:55 273 1234284

>>1234270
Ну так и требуется.

24 июля, 19:56 274 1234285

>>1234270
А вижу, в трех случаях пососал.

24 июля, 20:03 275 1234288

>>1234282
Ясен хуй он сделает ее inline она в 1 строчку. Более того, он скорее всего даже заоптимизирует и уберет лишнее копирование.

24 июля, 20:13 276 1234292

>>1234270
Ты код вместе с моей опечаткой перепечатывал?

Ответы34322

24 июля, 20:47 277 1234322

>>1234292
Нет конечно, я исправил.
Вот, я даже написал тест кейс для этой задачи.

int median(int a, int b, int c)
{
return std::max(std::min(a, b), std::min(b, c));
}

void test_median(std::function<int(int, int, int)>&& f)
{
std::array<int, 3> p1 = {1, 1, 1};
std::array<int, 3> p2 = {1, 1, 2};
std::array<int, 3> p3 = {1, 2, 3};

std::array<std::array<int, 3>, 3> w = { p1, p2, p3 };

for(int i = 0; i < 3; i++)
do
{
int a = w[0];
int b = w[1];
int c = w[2];

std::cout << "[" << a << " " << b << " " << c << "]";

int m = f(a, b, c);

if(m == 2)
std::cout << " median = " << m << std::endl;
else
std::cout << " median = " << m << " WRONG!" << std::endl;

} while(std::next_permutation(w.begin(), w.end()));
}

int main()
{
test_median(&median);
}

Вот вывод:
[1 1 1] median = 1 WRONG!
[1 1 2] median = 1 WRONG!
[1 2 1] median = 1 WRONG!
[2 1 1] median = 1 WRONG!
[1 2 3] median = 2
[1 3 2] median = 2
[2 1 3] median = 1 WRONG!
[2 3 1] median = 2
[3 1 2] median = 1 WRONG!
[3 2 1] median = 2

24 июля, 20:47 277 1234322

>>1234292
Нет конечно, я исправил.
Вот, я даже написал тест кейс для этой задачи.

int median(int a, int b, int c)
{
return std::max(std::min(a, b), std::min(b, c));
}

void test_median(std::function<int(int, int, int)>&& f)
{
std::array<int, 3> p1 = {1, 1, 1};
std::array<int, 3> p2 = {1, 1, 2};
std::array<int, 3> p3 = {1, 2, 3};

std::array<std::array<int, 3>, 3> w = { p1, p2, p3 };

for(int i = 0; i < 3; i++)
do
{
int a = w[0];
int b = w[1];
int c = w[2];

std::cout << "[" << a << " " << b << " " << c << "]";

int m = f(a, b, c);

if(m == 2)
std::cout << " median = " << m << std::endl;
else
std::cout << " median = " << m << " WRONG!" << std::endl;

} while(std::next_permutation(w.begin(), w.end()));
}

int main()
{
test_median(&median);
}

Вот вывод:
[1 1 1] median = 1 WRONG!
[1 1 2] median = 1 WRONG!
[1 2 1] median = 1 WRONG!
[2 1 1] median = 1 WRONG!
[1 2 3] median = 2
[1 3 2] median = 2
[2 1 3] median = 1 WRONG!
[2 3 1] median = 2
[3 1 2] median = 1 WRONG!
[3 2 1] median = 2

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

24 июля, 20:49 278 1234323

>>1234322
Кстати еще, на выходах типа 1 1 2, функция должна возвращать 2, а не 1.

24 июля, 22:12 279 1234369

>>1234322
Если в median написать std::min(a, std::max(b,c))?

Ответы3437934553

24 июля, 22:25 280 1234379

>>1234369
то это будет TDD

Ответы34554

25 июля, 04:00 281 1234485

>>1234322
>[1 1 1] median = 1 WRONG!
У тебя в проверке ошибка. Проверяет на 2 и пишет WRONG когда 1!=2 (почему не 3, не 265, не 1812, например?)

Ответы34735

25 июля, 10:17 282 1234553

>>1234369
Окей. Сейчас попробовал
return std::min(std::max(a,с), std::max(b,c));

Ответы3455434563

25 июля, 10:18 283 1234554

>>1234379
>>1234553

25 июля, 10:29 284 1234561

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

Ответы34564

25 июля, 10:41 285 1234563

>>1234553
Нет, все равно не работает. Самое лучшее решение(оно не работает при 1 1 2 и других подобных сочетаниях )это
if(a < b)
swap(a,b);
return std::min(a, std::max(b,c));

25 июля, 10:41 286 1234564

>>1234561
>откуда прога знает определения используемых функций
Стандартные библиотеки по умолчанию линкуются. Можешь отключить флагами как libstdc++, так и libc.

Аноним 25 июля, 13:07 287 1234638

>>1230522 (OP)
>Эта книга предназначена для тех. кто еще никогда не программировал
первая страница книги Страуструпа, а уже разочарование
Двач, если я знаю си и питон, то какую книгу мне читать ? В шапке такого нет вроде практизы читать нет смысла, так как ц++ довольно сильно отличается от питона и си, но читать что такое переменная мне не оч хочется

Ответы3464134811

25 июля, 13:12 288 1234641

>>1234638
Так читай сразу про классы да шаблоны. и пили задачи.

Ответы34644

Аноним 25 июля, 13:22 289 1234644

>>1234641
Есть название книги ? Best practices с шапки ?

Ответы34652

25 июля, 13:37 290 1234652

>>1234644
http://www.r-5.org/books/computers/all/

Ебитес.

25 июля, 16:23 291 1234735

>>1234485
Я знаю, что ошибка, просто лень было допиливать.
Проверяет на 2, т.к. из из набора 1 2 и 1 2 3, должна быть 2ка на выходе. надо пофиксить, чтоб из набора 1 была единица.

25 июля, 18:15 292 1234811

>>1234638
Как ни странно, TCPL

25 июля, 23:34 293 1235066

Сап, ананасы.

Мимо-джун.

Хочу запилить десктопный клиент для вконтактика на Qt, чисто на поиграться.

Как думаете, взлетит?

Ответы35082351293537535570

26 июля, 00:20 294 1235082

>>1235066
Уже есть vk messeger

26 июля, 02:22 295 1235129

>>1235066
делай что угодно, главное делай

26 июля, 14:20 296 1235375

>>1235066
Лучше клиент к дваче сделай.
Года 2-3 назад один анон делал в /s/

26 июля, 16:57 297 1235502

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

Ответы3550835530

26 июля, 17:02 298 1235508

>>1235502
1. Understanding and Using C Pointers: Core techniques for memory management
2. http://alumni.cs.ucr.edu/~pdiloren/C++_Pointers/

Ответы35543

26 июля, 17:37 299 1235530

>>1235502
Может лучше личностные тренинги на тему "Как не обосраться от волнения"?

26 июля, 17:52 300 1235542

Делаю алгоритм Ахо Корасика.
Не понимаю, чому не работает первый тест не находит "pen" и по 2 раза находит строки?

https://ideone.com/t0ynyV

Ответы35689

26 июля, 17:52 301 1235543

>>1235508
Прочитал первое, вроде все знаю.

26 июля, 18:10 302 1235557

Аноны. Есть буфер с путем винды "C:\some.exe"
Бывает что там и дохуя слешей.
Скармливаю этот путь WinExec. Он ничего не делает. Методом проб и ошибок я установил, что проблема в том, что надо удвоить слэши.
Собственно сабж, как сделать это более мудро?

Ответы355593557735650

26 июля, 18:13 303 1235559

>>1235557
s/\//\/\//g

Ответы35561

26 июля, 18:15 304 1235561

>>1235559
Чет твой вариант не оч.
Ну просто городить несколько циклов по-моему пиздец.

Ответы35563

26 июля, 18:18 305 1235563

>>1235561
Почему не очень?
Кстати там ошибка, я по привычки юниксовые слеши написал, а тебе надо другие, тогда будет так: s/\\/\\\\/g

Ответы35565

26 июля, 18:20 306 1235565

>>1235563
Окей. Скажем так, у меня VS2010 . регялрочки как ты знаешь подвезти успели в с++11

Ответы3556735576

26 июля, 18:24 307 1235567

>>1235565
Ставь буст, ёпта.

26 июля, 18:27 308 1235570

>>1235066
Делай лучше клиент двача на qt, что-то вроде dashchan, только на пеку.
Думаю, взлетит

26 июля, 18:37 309 1235576

>>1235565
Тогда
echo "C:\\path\\prog.exe" | sed -e "s/\\\/\\\\\\\/g"
или
echo "C:\\path\\prog.exe" | perl -pe "s/\\\/\\\\\\\/g"

26 июля, 18:38 310 1235577

>>1235557
Друг, я искренне сомневаюсь, что проблема в этом.

Может ты путаешь экранирование слэшей с чем-то другим? Или строку изначально неправильно задаешь?

Ответы35583

26 июля, 18:44 311 1235583

>>1235577
Смотри. Я подаю tchar который я получил из GetModuleFileNameW, обрезал до слэша и добавив нужный мне .exe, скармливаю строку WinExec с (LPCSTR)(path), SW_SHOW ничего не происходит. Кормлю строкой с одинарными слэшами - пусто, даю с двойными - все норм. Хотя возможно проблема с приведением типа.

Ответы35726

48 Кб, 552x539
26 июля, 18:57 312 1235605

Сап, антоны.
Подскажите в чем проблема.
Накатил Qt Creator. Поставил Qt, к нему Qt Web Engine, Qt стоит версии 5.9.2.
Для Web Engine нужен компилер MSVS 2017, оке. Поставил. Сажусь ваять свои нетленочки - и вот какую хуйню выдаеи компилятор в ошибках.

Собственно, как починить эти ебучие кракозябры?

Ответы3561435650

26 июля, 19:06 313 1235614

>>1235605
Извечная проблемма. Компилер выдаёт текст в 866 кодировке по умолчанию в консоли стоит, а креатор воспринимает ее как 1251. Попробуй в китах поставить галку для вывода в utf-8.

Ответы3562235643

26 июля, 19:13 314 1235622

>>1235614
Посмотрел где эта галка находится. А у меня ее там нет. Лол

26 июля, 19:16 315 1235628

Нахуя плюсам нужно два файла чтобы запустить один класс?

Ответы3564535650

26 июля, 19:16 316 1235630

Анончики, нашел почти альтернативный вкат в кресты:

If I were new to C++, I would not start learning C++ with this book. Rather, I would use these below three steps and the relevant books in this order:

1. Accelerated C++ by Andrew Koenig & Barbara Moo -- Read and practice example code and exercises from this book first.

2. Programming: Principles and Practice Using C++ (2nd Edition) by Bjarne Stroustrup -- Chapters 5,6, and 7 are gems in this book. You can in fact use this book in parallel with the Accelerated C++ book and

3. (a) The C++ Programming Language (4th Edition) by Bjarne Stroustrup, -- Definite reference book to have.
3. (b) The C++ Standard Library: A Tutorial and Reference (2nd Edition) by Nicolai M. Josuttis, -- Clear examples and very methodical
3. (c) C++ Templates: The Complete Guide by David Vandevoorde -- What can I say! This is simply a classic.

добавите же в шапку? :3

Ответы3565035697

26 июля, 19:33 317 1235643

106 Кб, 719x49215 Кб, 727x217

>>1235614
Анон помоги
http://doc.qt.io/qtcreator/creator-targets.html
тут у этих пидоров есть галка
у меня этой галки нет

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

Ответы3565035705

26 июля, 19:35 318 1235645

>>1235628
ты про интерфейс и реализацию чтоли?

Ответы35666

26 июля, 19:36 319 1235647

Госпаде, вкатач, с какими же хуесосами приходится собеседоваться.

Прям такие дохуя умники сидят, лол, растопырив пальцы перед джунчиком. Хотя, вроде и ясно говоришь, что я вроде как только вкатываюсь. Но нет, блядь. Хуесос технический специалист прям устраивает с тобой ДУЭЛЬ блядь интеллектуальную. А если на чем-то подловит, то пизда, УХ БЛЯ, там ТРИУМФ, ваши знания СИ ПЛЮС ПЛЮС В ОБЩЕМ-ТО НИКАКИЕ.

Какие уебки, блядь.

Ответы35650

100 Кб, 2048x1024
26 июля, 19:38 320 1235650

Пиздец я ахуеваю с треда.
Задал вопрос по алгоритмам - хуй кто ответил.
Зато блять полный тред даунов-вкатывальщиков типа этих:
>>1235557
>>1235605
>>1235628
>>1235630
>>1235643
>>1235647

Ответы35659356623568835691

26 июля, 19:40 321 1235659

>>1235650
Пошел на хуй

26 июля, 19:40 322 1235662

>>1235650
А чё ты ожидал? Схуяли кто-то должен знать ответ на твой вопрос и расписывать решение? Гораздо очевиднее что отвечать будут на то, что лучше понимают и что знает множество людей.

Ответы35678

26 июля, 19:41 323 1235666

>>1235645
Да. Почему .h и .cpp, а не просто .cpp ?

Ответы35678

26 июля, 19:49 324 1235678

>>1235662
Потому что это блять С++ тред, в котором по идее должны сидеть умные люди с образованием и пониманием CS, а не горстка выблядков "ВОЙТИВАЙТИ", засирающих тред своими тупорылыми вопросами, на которые сука в гугле находятся ответы за 2 секунды.

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

Иди нахуй от сюда в /b/ и создавайте там треды как вкатиться в айти.

Вот этот >>1235666 даун меня вообще выстегивает, сука ну почему ты настолько имбецил, что тебе блять в падлу загуглить вопрос, я даже не говорю о том, чтоб ты почитал книжку и нашел там ответ, т.к. заранее знаю, с твоим уровнем развития ты там большую часть слов не поймешь и не пройдешь дальше предисловия, но сука загуглить то можно, уебище? И так без тебя этот вопрос тут постоянно задают бесчисленные орды макак вкатывальщиков, которые думают щас они хело ворд из инета скапипастят и сразу пойдут устроятся Сеньором в яндекс на ЗП 400к в сек.
Просто блять эпик дауны.

Ответы3569935729

26 июля, 19:56 325 1235688

>>1235650
Ну ладно, ладно. Вот решение на коленке.
const std::string sample("\\"), value("\\\\");
size_t pos = 0;
while ((pos = str.find(sample, pos)) != std::string::npos)
{
str.replace(pos, sample.length(), value);
pos += value.length() + 1;
}

Ответы3568935738

26 июля, 19:58 326 1235689

>>1235688
Нахуй ты мне это говно высрал?

Мой вопрос был по алгоритму Ахо Корасика >>1235542

Ответы35700

26 июля, 19:59 327 1235691

>>1235650
>даунов

Один ты у мамы умный.
А знаешь что. Иди-ка ты на хуй отсюда. Со своими алгоритмами. В очко их себе загони петущара :3

26 июля, 20:03 328 1235697

>>1235630
это троллинг

Ответы35703

26 июля, 20:03 329 1235699

>>1235678
>засирающих тред своими тупорылыми вопросами, на которые сука в гугле находятся ответы за 2 секунды.

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

Спасибо.

Ответы35707

26 июля, 20:03 330 1235700

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

Ответы35707

26 июля, 20:04 331 1235703

>>1235697
:)

26 июля, 20:06 332 1235705

>>1235643
Бля, ну не знаю, может кретор древний. И зачем юзать GDB если есть нативный виндовый дебагер?

Ответы35706

26 июля, 20:07 333 1235706

>>1235705
>древний.

Криейтор как раз последний

26 июля, 20:07 334 1235707

>>1235699
Всем похуй на твой сраный креатор. Это не относится к сабжу треда.

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

Ответы3571135725

26 июля, 20:09 335 1235711

>>1235707
В книжке алгоритм посмотри. Ебанашка

Ответы35715

26 июля, 20:11 336 1235715

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

Ответы35719

26 июля, 20:13 337 1235719

>>1235715
Что-то тебе не сильно-то это помогло, читатель залупный :3.

Пиздуй отсюда, чорт ебаный.

Ответы35731

26 июля, 20:17 338 1235725

>>1235707
Начни с мнемонического названия переменных (v,c,t,i,k,u - вот это вот всё говно что у тебя там), затем перейди к инициализации агрегатов (строки 39-46), потом почитай про чистый код (таб = 4 символа, мусор 136-144 нахуй). Тогда можно будет прочитать, где ты обосрался с реализацией алгоритма.

Ответы35733

26 июля, 20:19 339 1235726

>>1235583
чёт вообще срал и ебал этот виндоуз, ещё раз этот чувак подойдёт, чтоб я его прого доделал, то я ему щи переломаю.
https://pastebin.com/pS09B68q
Вот куски кода, что отвечают у него за функцию.

Я почитал про эти TCHAR и прочее, и слава богу что код под окна с оконными функциями я писал года 4 назад.

В общем, какая тут может быть проблема? Я так понимаю, либо в приведении к LPCSTR, либо таки в слэшах, так как буфер получает их одиночными.

Ответы3573835747

26 июля, 20:21 340 1235729

>>1235678
чёт ты токсичный, может ты школьник, который тоже хочет быть воннаби нормис? Алгоритм же книжный, вот и подгляди в книгах, подумай что у тебя не так? Книги по чистому коду читал? про рефакторинг знаешь? А стандарты кода читал?

Ответы35741

26 июля, 20:23 341 1235731

>>1235719
Ты реально аутист или тролишь тупостью?
Хотя что тебе остается, ведь ты очередная манюнька мечтающая вкатиться в ойти и получать 200к/нс, ты стал изучать С++ т.к. слышал, что все крутые дядки и хакеры используют его и решил, что ты тоже станешь таким с твоей нулевой базовой подготовкой и ты реально думаешь, что алгоритмы и прочий матан вовсе не нужен сейчас, когда все можно спрашивать на форумах и копипастить со стековерфлоу. Ты думаешь, как только ты изучишь как работают циклы и условные переходы, ты сразу сможешь устроиться на высокооплачиваемую работу в ДС, ходить с важным видом по офису, потягивать смуззи, громко обсуждать различные модные айтишные темы используя максимальное количество заумных слов, чтоб все слышали какой ты умный.
Но спешу тебя разочаровать: всего этого не будет и твой максимальный уровень это laba1.cpp.

Так что пошел нахуй с моего треда, где должны сидеть только истинные задроты.

Ответы35775

26 июля, 20:25 342 1235733

>>1235725
Нахуй иди со своими пидорскими названиями переменных и чистым кодом.
Там и так все понятно.

Цитата одного известного человека:
>C is a Spartan language, and so should your naming be. Unlike Modula-2 and Pascal programmers, C programmers do not use cute names like ThisVariableIsATemporaryCounter. A C programmer would call that variable tmp, which is much easier to write, and not the least more difficult to understand.

Ответы35737

26 июля, 20:27 343 1235737

>>1235733
Ты тредом ошибся. Это CPP тред, да и стандарты кода, а так науки о коде не просто так высирали, а чтобы за тобой кто-то что-то мог прочитать, а главное ты.

Ответы35745

26 июля, 20:27 344 1235738

>>1235726
А там нечего приводить:
An LPCSTR is a 32-bit pointer to a constant null-terminated string of 8-bit Windows (ANSI) characters.

This type is declared as follows:

typedef const char* LPCSTR;

Просто замени слэши.
>>1235688

Ответы35766

26 июля, 20:29 345 1235741

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

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

Ответы357433574535755

26 июля, 20:30 346 1235743

>>1235741
>при прототипировании это обычно не используется
При прототипировании говном мажут экран и улюлюкают?

Ответы35748

26 июля, 20:32 347 1235745

>>1235737
А ничего что ЦПП и Си очень близкие друг другу языки с многими общими областями применения.
А ты в курсе, что можно писать на ЦПП как на Си?
Это первое.

Второе:
>>1235741
>>чистый код
>>рефакторинг
>>стандарты кода
>Вот это все выдает в тебе макакена.
>Я знаю про все это, но при прототипировании это обычно не используется.

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

26 июля, 20:33 348 1235747

>>1235726
>WinExec
Смотрим мсдн:
Note: This function is provided only for compatibility with 16-bit Windows. Applications should use the CreateProcess function.

Нахуя ты юзаешь этого динозавра? Под виндовс 3 пишешь?

Ответы35751

26 июля, 20:33 349 1235748

>>1235743
Если для тебя тот код кажется чем-то совсем непонятным, то у меня для тебя плохие новости.

26 июля, 20:36 350 1235751

>>1235747
ты не поверишь, но там WinExec с этой программой, что он использует запускает какую-то утилиту Windows, которая работает из консоли. Как я понимаю, ему важно, чтобы когда он её врубает, то у него было SW_HIDE. SW_SHOW уже поставил я.

26 июля, 20:37 351 1235755

>>1235741
ты после прототипирования сделал одну хуйню, знаешь какую? Показал код другим.

Ответы35759

26 июля, 20:39 352 1235759

>>1235755
И что?
Ты зайти на любой сайт по алгоритмам, такой спартанский стиль это обычная практика.

Ответы35765

26 июля, 20:43 353 1235765

>>1235759
https://github.com/heineman/ algorithms-nutshell-2ed

зашёл, где?

Ответы35769

26 июля, 20:45 354 1235766

>>1235738
так, оба.
Ты же видешь, что у него там наверху ifdef с юникодом?
потом он эту строку приводит к c_str()
а потом указывает пойнтер на ANSI?

Это точно нормальная практика программировать окна?

Ответы35797

26 июля, 20:47 355 1235769

>>1235765
>Java
Ты реально дебил?

Вот известный сайт по алгоритмам откуда я взял часть кода:
http://e-maxx.ru/algo/aho_corasick

>inb4: ПИДАРАШИЙ ГОВНОКОД РЯЯЯЯ
Ладно вот держи расово верный англосаксонский вариант:
https://www.geeksforgeeks.org/aho-corasick-algorithm-pattern-searching/

Ответы35772

26 июля, 20:50 356 1235772

>>1235769
This directory contains the C and C++ code solutions as coded in the
O'Reilly book "Algorithm in a Nutshell", Second Edition, by George
Heineman, Gary Pollice, and Stanley Selkow, (C) 2016.

Во всей книге си, а ты нашёл там в директории ПИТОН ДЖАВА и закукарекал

Ответы35777

26 июля, 20:54 357 1235775

>>1235731
Опять портянку высрала порватка.
Ну хватит :3.

лабу 1 я уже сделал.

26 июля, 20:57 358 1235777

>>1235772
Ладно, я понимаю, что ты троллишь, но подыграю тебе:
Открываем первое попавшееся на С
https://github.com/heineman/algorithms-nutshell-2ed/blob/master/Code/Sorting/Ints/modifiedQsort.c

И что мы видим? Говнокодик с непонятненькими названиями переменных?
А где же ThisVariableContainTheSizeOfTheArrayWhichWeUsedToCountWorldInTheClassSortedWhichInhiritsClassBasInOutFouthLessonInMyPriviousBookWhichIwroteWhenIWas21AndMyDickCouldStillBeHard = 21?

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

Ответы35780

26 июля, 21:03 359 1235780

>>1235777
похоже у тебя реально проблемы.
Там таки понятный код, потому что переменный не похожи друг на друга, а книги по рефакторингу или стандарты ты не читал.

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

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

Ответы35809

26 июля, 21:04 360 1235781

И всё-таки какого хуя я не могу написать всё в .cpp файле? Зачем нужен этот сраный .h?

Ответы3578335815

26 июля, 21:06 361 1235783

>>1235781
ускоряет процесс компиляции

Ответы3578535787

26 июля, 21:07 362 1235785

>>1235783
Проиграл

26 июля, 21:08 363 1235787

>>1235783
Блять, когда уже кто-нибудь запилит современный язык с функционалом си?

Ответы35878

26 июля, 21:20 364 1235797

>>1235766
с_str() это получение указателя на внутренние данные в соотвествии с типом строки. если #def unicode то у него строка wstring и будет const wchar_t. иначе string и const char_t.
В свою очередь LPCTSTR = const char or const wchar_t depending on _UNICODE, то есть там тривиальное приведение из char в char и wchar_t в wchar_t без преобразований. Другое дело, что UINT WinExec(LPCSTR , UINT ); не приспособлена для wchar_t*.

Но всё равно скорее всего дело в '\\' и в '\"'. Видимо он парсит строку как строковый литерал:
WinExec("\"C:\\Program Files\\MyApp.exe\" -L -S", ...)

Ответы36173

26 июля, 21:34 365 1235809

>>1235780
Боже, что за поток создания ты высрал?
Боже, как таким идиотом вообще возможно быть?

1. У тебя что фикс на чистоте кода? Ты недавно прочитал Чистый Код и теперь пытаешься блеснуть своими знаниями в любом разговоре? Так вот знай, я читал чистый код и прочие книги по рефакторингу и скорее всего даже получше тебя в этом разбираюсь и знаешь что? Я ебал твою чистоту кода в ротешник. Как тебе такое? Если ты даун и не можешь понять что t[v] это доступ к вершине, что функция go это функция переходов конечного автомата по состояниям и out это функция перехода на листья в дереве, то это твои проблемы, ибо почти во всех источниках именно так этот код и выглядит в плоть до названия переменных.

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

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

26 июля, 21:44 366 1235815

>>1235781
Скоро сможешь. К 23 году (если повезёт в 2020) обещают добавить модули.

26 июля, 21:55 367 1235828

>>123580
Я тебе сказал, у тебя не та вариация. Такой алгоритм какой тебе нужен называется по другому. И ты даун, чтобы в банках делали поиск по списку? Там паттерн матчинг

Ответы35864

26 июля, 22:40 368 1235864

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

Я просто в ахуе с тебя.

Ответы35877

26 июля, 22:55 369 1235877

>>1235864
Ты заебал.
У тебя косяк в методе check. Это к вопросу об однобуквенных именах.

Ответы35879

26 июля, 23:00 370 1235878

>>1235787
Rust?

26 июля, 23:05 371 1235879

>>1235877
Бля точняк, спасибо бро.

27 июля, 02:04 372 1235931

Пацаны, вот скажите. Допустим я хочу написать модульное приложение, которое состоит из .exe файла и dll-ек(абстрактно, оно кроссплатформенное) под qt и я хочу чтобы в exe рисовалось основное окно, а каждая dll отвечала за вкладку. Как я это сделаю?

Единственное что мне приходит в голову - передавать qml как строку.
Но это плохая идея. А как лучше?

Ответы3593935941

27 июля, 03:07 373 1235939

>>1235931
> я хочу чтобы в exe рисовалось основное окно, а каждая dll отвечала за вкладку. Как я это сделаю?
Главный вопрос.
Зачем?

Ответы35940

27 июля, 03:20 374 1235940

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

27 июля, 03:25 375 1235941

>>1235931
> Но это плохая идея.
Чем она плохая? Qt так и делает, только сначала достаёт строку из ресурсов, а потом передаёт парсеру.

Ответы35943

27 июля, 03:32 376 1235943

>>1235941

Ну, для этого нужен таки парсер qml. А как парсить qml?

Ответы35944

27 июля, 03:35 377 1235944

>>1235943
http://doc.qt.io/qt-5/qqmlcomponent.html

27 июля, 04:08 378 1235947

У меня есть массив интервалов типа [0-3][0-8][4-8][4-11][9-11][12-16]
Мне нужно сделать из него множество всех комбинаций без пересекающихся интервалов, типа
[0-3][4-8][9-11][12-16]
[0-8][4-8][9-11][12-16]
[0-8][4-11][12-16]
[0-3][9-11][12-16]

Как сделать лучше?

Ответы359573657636662

27 июля, 05:51 379 1235957

>>1235947
У тебя во 2 и 3 комбинациях есть пересечения. Напиши полный вывод для данного примера.

Ответы36138

27 июля, 11:38 380 1236055

>>1230522 (OP)
Есть ли вообще смысл использовать new вместо new [1]?
Зачем было так делить операции? Чтобы потом кто-то пердолился, думая, есть там [] или нет?
Да ещё и результат не определён в случае ошибки.
Каков здравый смысл?

Ответы36057

27 июля, 11:41 381 1236057

>>1236055
Впрочем, понял, можно же конструктор не по умолчанию юзать для не-[]

27 июля, 11:44 382 1236060

мне SIZE_MAX и и функуция max_size вектора charов выдают одно и то же число, 18446744073709551615. Что оно значит и откуда берется? Я прочитал что это максимальное значение объекта типа size_t и соответственно максимальное количество элементов которое может хранить вектор чаров. Но ведь даже если разделить это число на 1024^3 останется число с 11 цифрами, какое то невероятное количество гигабайт, откуда оно берется?

Ответы36063

27 июля, 11:57 383 1236063

>>1236060
а ясно, это просто 2^64-1. Зависит от разрядности ос

27 июля, 13:21 384 1236138

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

Input: [0-3][0-8][4-8][4-11][9-11][12-16]
Output:
1 -[0-3][9-11][12-16]
2- [0-8][9-11][12-16]
3- [0-3][4-11][12-16]
4- [0-3][9-11][12-16]

Типа как-то так.

Ответы3643236605

27 июля, 13:51 385 1236173

>>1235797
Дело было в том, что он не тот метод юзал. У него ничего не вызывалось изначально ( а приложение которое он мне дал реально было 16-бит), и оно вызывалось, поэтому я отловить не мог( особенно когда я переключал сборку на юникод). Переделал код под криэйтпроцесс и тепеоь работает все.

Пойду дальше писать свои драйвера.

27 июля, 14:49 386 1236232

>>1230522 (OP)
Порекомендуйте сборник задач/задачник по программированию.

Ответы3636137245

27 июля, 17:20 387 1236361

>>1236232
Посмотри на какие-нибудь online judges, вроде https://codesignal.com/ и https://codewars.com.

46 Кб, 1850x480
27 июля, 18:59 388 1236432

>>1236138
Короче решил делать бектрекингом, но я настолько туп, что не смог это в голове реализовать без графа.

Ответы364433645836599

27 июля, 18:59 389 1236433

какая разница между

Rational Rational::operator+(Rational p)
{
numerator = p.denominator;
p.numerator = denominator;
numerator += p.numerator;
denominator = p.denominator;
return this;
}

и

Rational& Rational::operator+(Rational p)
{
numerator = p.denominator;
p.numerator = denominator;
numerator += p.numerator;
denominator = p.denominator;
return this;
}

27 июля, 19:11 390 1236443

>>1236432
Только теперь проблема, найти максимальные уникальные последовательности. То есть чтоб на последнем выходе не было 1 элемент (12-16). Может я граф не правильно построил?

27 июля, 19:36 391 1236458

>>1236432
Тоесть по твойму последовательности типа:
Root -> (0-8) -> (4-8) -> (4-11) -> (9-11) -> (12-16)
это нормальные непересекающиеся интервалы?

Ответы36467

27 июля, 19:46 392 1236467

>>1236458
Нет, это дерево для бектрейса, то есть мы идем от root -> (0-3) x-> (0-8) ->x, на (0-3) мы смотрим что (0-8) пересекается и уже не идем дальше отбрасывая все поддеревья с (0-8) и переходим в root -> (0-3) -> (4-8) -> ...
и так далее.

27 июля, 21:20 393 1236517

Увидел тут ссылку на этот сайт. Начал там делать задачи, щас пришло уведомление что скоро начинается еженедельный контест. Планирую поучаствовать.
Есть еще тут народ участвующий там?

Вот ссылка
https://leetcode.com/contest/weekly-contest-95/

27 июля, 21:43 394 1236529

Ку, поясните дорогие, что значит выучить STL, как определить степень своих знаний, типо читал-видел достаточно, или надо как то обширно наизусть все знать вот это вот все, благодарен

Ответы36575

27 июля, 21:48 395 1236536

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

Ответы36575

27 июля, 23:55 396 1236575

>>1236529
Да сделай свой список или вектор с
блекджекомитератором и мемным аллокатором, почитай про мапы, хеш мапы, сеты и прочую поебень, изучи std algorithms, хули там.
>>1236536
Есть же такая хрень, как std::setprecision(определена в iomanip), которая позволяет задать произвольную точность вывода чисел с плавающей запятой.

Ответы36655

27 июля, 23:59 397 1236576

>>1235947
Само заебато такие вещи делать при помощи префиксного дерева(trie).

Ответы36599

28 июля, 02:09 398 1236599

>>1236576
Что трай-то даст?

>>1236432
Короче бля при больших N это начинает пиздецово медленно работать, что не проходит по времени в задании.
Вот код
https://ideone.com/XZe2It

Кто знает как ускорить можно?

Ответы36602

28 июля, 02:22 399 1236602

>>1236599
Я бы это задание делал через матрицы смежности. Над алгоритмом думай сам.

28 июля, 02:56 400 1236605

>>1236138
В чем проблема отсортировать отрезки а потом перебрать?https://ideone.com/BFrMSU
Тут все равно лучше чем 2N не получится, если конечно надо выписывать все непересекающиеся множества.

28 июля, 10:30 401 1236655

>>1236575
Спасибо

28 июля, 11:26 402 1236662

>>1235947
Система непересекающихся множеств поможет тебе.

28 июля, 17:22 403 1236830

аноны, подскажите, какой геометрический смысл данного кода?
https://acmp.ru/article.asp?id_text=170

Ответы368583690036944

28 июля, 18:08 404 1236848

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

Ответы36853

28 июля, 18:19 405 1236853

>>1236848
boost asio

Ответы36872

28 июля, 18:36 406 1236858

>>1236830
бамп

Ответы36859

28 июля, 18:38 407 1236859

>>1236858
ты тредом ошибся, паскаледед

28 июля, 19:02 408 1236872

>>1236853
Какой же я даун нихера не понимаю, как вообще вкатываться в сетевое программирование?

Ответы36891

28 июля, 20:14 409 1236891

>>1236872
Читаешь таненбаума и вперед

28 июля, 20:23 410 1236900

>>1236830
Ну тип классическая задача и классическое решение. Два отрезка пересекаются, если их концы лежат по разные стороны от линий, которые они задают.

28 июля, 21:39 411 1236944

>>1236830
Там векторные произведения: v1 = B1B2 x B1A1, v2 = B1B2 x B1A2 - если точки A1 и A2 лежат по разные стороны от отрезка B1B2, то векторные произведения будут иметь разный знак, соответственно их произведение v1*v2 будет отрицательным. Потом то же самое проверяется для отрезка A1A2.

29 июля, 14:48 412 1237241

Посоветуйте материал по оценке алгоритмов (выч. сложность/расход памяти/сходимость). Вот эти вот все o(n), O(n), амортизированные константы и проч. Желательно книжечку или какой-то бложик с последовательным изложением.

Ответы3753237536

29 июля, 14:59 413 1237245

>>1236232
codeforces.com

29 июля, 16:47 414 1237288

>>1234035
Нет. Нет, блядь, нет!!!111

1. С != С++
2. Там где С пересекается с С++, в плюсовых стандартах происходит одно, а в сишных другое.
3. K&R написан вообще в достандартную эпоху.

Короче K&R это вредный совет в 2018 году, честное слово.

Ответы37313

29 июля, 18:02 415 1237312

Как сделать аллокатор с несколькими шаблонными параметрами? Чтоб соответствовал концепту Allocator.
Для allocator_traits написано, что "rebind_alloc = Alloc::rebind<T>::other or if Alloc is A<X,...> then A<T,...>" Но я где-то проебался и оно не хочет компилироваться именно на том месте.
https://ideone.com/evpXbL
Полдня сижу над этой пиздой.

29 июля, 18:04 416 1237313

>>1237288
Бля, я зря что ли из шапки книги читаю?

Ответы37361

29 июля, 19:28 417 1237361

>>1237313
Читай ассемблер абеля для общего развития. Остальное приложится.

30 июля, 00:50 418 1237517

Суп, двуч. Вопрос по qt. Пишу на qml окно, есть объект

ApplicationWindow
{
//
//

Grid {
//
}

}

Каким образом я могу описать grid в другом файле qml и заинклюдить чтобы было типа Grid : myGrid? А то сам грид большой и отдельнго файла требует

30 июля, 02:13 419 1237532

>>1237241
Ну же, ну, где советы?

30 июля, 03:42 420 1237536

>>1237241
Седжевика почитай. Можно Кормена, но это оверкил.

132 Кб, 1280x853
30 июля, 05:06 421 1237538

Решил написать вектор который работает не через ебучие аллокаторы, которые не умеют в realloc и не умеет быстро копировать через memcpy.
Особо не тестил, только вот написал.
Можете постестить, буду признателен за выявленные баги.
А я пока пойду спать.

https://ideone.com/MAuUis

Дают немного нефти заранее.

Ответы3754238022

30 июля, 07:29 422 1237542

>>1237538
откуда у тебя такие охуенные картинки бро? Поделись плс соусом и паком!!!

30 июля, 13:39 423 1237651

Где стихи в шапке? 2 года назад они были, а сейчас где?

Ответы37835

30 июля, 13:55 424 1237652

Аноны кто что скажет за Codelite + mingw?
Стоит ли юзать? подводные камни?

Ответы37655

30 июля, 14:01 425 1237655

>>1237652
>mingw
Под виндой есть смысл только в CLion + mingw, либо vs community ну и qt creator. Остальное ненужно и почти не развивается

Ответы37661

30 июля, 14:12 426 1237661

>>1237655
Первый платный, второе говно.
А я задал ведь конкретный вопрос)

Ответы3766537668

30 июля, 14:18 427 1237665

>>1237661
Хорошо, отвечу. Codelite - что-то вроде текстового редактора с подсветкой синтаксиса и глуповатым автокомплитом. Примерно на уровне vim/emacs с парой плагинов. Лучше уж взять codeblocks. Он тоже говно, но умеет гораздо больше чем codelite.
Можешь посмотреть на vs code, может понравится.
Но вообще везде используют студию или clion, может еще qt creator. Это единственные 3 человеческие ide для крестов.

Ответы3768238015

30 июля, 14:20 428 1237668

>>1237661
Почему второе говно, гений?

Ответы37683

30 июля, 14:35 429 1237682

>>1237665
Во, спасибо тебе

30 июля, 14:36 430 1237683

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

Ответы3768637687

30 июля, 14:39 431 1237686

>>1237683
Нормально работает, все изкоробки.
Ну если не нравится, на торрентах clion ищи.

30 июля, 14:41 432 1237687

>>1237683
>Потому что пока не поставишь 100500 ненужных библиотек
Что ты несешь вообще?

Ответы37693

30 июля, 14:47 433 1237693

>>1237687
Давай считать:
1. Kernel.dll
2. .net
3. Обязательный пакет расширения для винды, обязательные компилы для линуховых
4. Для эмуляции, обязательно поддержка гипервизора
5. Powershell если пишешь под мобильники
6. Еще 10 штук пакетов Visual C++ от времен бородино до 2018.

И все это что бы нормально установить и работать в какой то сраной IDE.

Нахуй?

Ответы3769637704

30 июля, 14:51 434 1237696

>>1237693
1. Что это вообще такое?
2. Установлен
3. Это нормально. В линуксах кернел-хедеры.
4. Не обязательно
5. Может быть
6. ставится один, текущий. Тем не менее - если ты пекой пользуешься, они уже стоят.

Какая-то _ОЧЕНЬ_ странная аргументация, если честно. У тебя ССД на 32 гигабайта, или что?

Ну и да, ИДЕ не сраная, а де-факто стандарт индустрии.

Ответы37705

30 июля, 15:03 435 1237704

>>1237693
Что ты несешь?
1. Это и так в винде есть, дебич
2. .net - по дефолту в 10 винде уже он есть
3. Для линукса - да. Про пакет расширения никогда не слышал.
4. Не обязательно
5. По дефолту есть в 10 винде
6. Ставится 2017, никаких других не надо

Ответы37706

30 июля, 15:04 436 1237705

>>1237696
Нормальная аргументация. Хотя судя по первому пункту с тобой даже говорить не о чем. Максимум с чем ты работал это очередной форк или hw.

Ответы37708

30 июля, 15:04 437 1237706

>>1237704
> 10 винда
Спасибо блеванул

30 июля, 15:11 438 1237708

>>1237705
Не проецируй, гений доморощеный.

30 июля, 16:07 439 1237736

>>1231748
Какая версия?

30 июля, 18:30 440 1237781

>>1231748
Я не уверен на все сто(компилятора под рукой нет проверить), но есть вот такая штука: https://en.cppreference.com/w/cpp/iterator/data
Могут перекрываться области видимости, из-за чего твой массив видится как эта функция.
Хотя чуйка мне подсказывает, что дело не в этом

30 июля, 20:11 441 1237835

>>1237651
Чулочника заебал сосач. Оно и к лучшему, тут и так клоунов хватает.

30 июля, 20:22 442 1237842

Подскажите детские книжки по C++, которые интерактивные и прикольные, для таких даунов как я.
Есть такая по руби и js, есть ли аналог для спп?

Ответы3784537867

30 июля, 20:25 443 1237845

>>1237842
>Есть такая по руби и js
Я почему-то не удивлен, особенно по JS. Во истину язык для даунов.

Захуй те ЦПП, если ты даун? Один хуй либо не осилишь, либо останешься на уровне хелоу вордов.

30 июля, 20:53 444 1237867

>>1237842
книги уровня "С++ для даунов" не существует

Ответы37868

30 июля, 20:54 445 1237868

>>1237867
Уже нашёл несколько. лел

30 июля, 23:04 446 1237985

Есть у кого впечатления от средства C++11 <threads>?
Перескакиваю, по сути, с pthreads на него. Говорят, что функционала меньше, но зато кроссплатформенность. Да и нативные средства по-прежнему можно вызывать.
С вас по сути только "отзыв", особенно если с другого API вкатились, как в сравнении оно...

30 июля, 23:50 447 1238010

13 Кб, 576x26413 Кб, 577x264

Господа, помогите разобраться. То ли у меня мозги стухлись на ночь глядя, то ли я нифига не понимаю.
На 1.png код при n = 10000000 выполняется за 470 мс. Ключи, как видно, предварительно запихнуты в вектор(или в массив, не важно, пробовал и так и так).
На 2.png код при таком же n выполняется за 1991 мс. Здесь вектор не используется, а ключи берутся непосредственно из счетчика цикла for.
В чем подвох?

Ответы3801138059

30 июля, 23:52 448 1238011

>>1238010
>В чем подвох?
Индирект, лишнее обращение к памяти.

Ответы38020

30 июля, 23:56 449 1238015

>>1237665
>Примерно на уровне vim/emacs
Сейчас во всех редакторах LSP для автокомплита. Тот же самый, что в VS Code.

249 Кб, 1278x1082
31 июля, 00:07 450 1238019

Ваши оправдания.

31 июля, 00:08 451 1238020

>>1238011
Прости, можешь объяснить поподробнее?
Я так понимаю, ключ все равно передается по ссылке и unordered_map использует его только для вычисления хеша. Так какая разница откуда мы передадим значение по ссылке?

Ответы3802438032

31 июля, 00:09 452 1238022

>>1237538
Будет работать только с POD типами. Если у объектов есть конструкторы-деструкторы, то твой вектор устроит тебе большой и неприятный сюрприз.

31 июля, 00:12 453 1238024

>>1238020
um[v] - тут непрямое чтение из памяти пидорасит кэш процессора, из-за чего падает производительность.

31 июля, 00:24 454 1238032

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

Ответы3804238043

31 июля, 00:37 455 1238042

>>1238032
Ну, вообще по логике так, да. Только, во-первых, в массиве и векторе соседние элементы лежат рядом, то есть вероятность того, что соседние элементы вектора есть где-то в кеше, тоже довольно большая. А во-вторых, что самое интересное, все с точностью наоборот к твоим словам. Ты перепутал скриншоты. По ним видно, что в случае вектора(скрин 1) доступ быстрее, чем линейный(скрин 2).
И, если подумать, последовательные ключи 1,2,3... будут иметь совсем разные хеши, т.е. могут лежать далеко друг от друга и попадание одного элемента в кеш не означает попадание туда соседа. Но все равно какая-то хуйня, я запутался.

Ответы38060

31 июля, 00:37 456 1238043

>>1238032
>бинарный поиск в um
Но это же хэштэйбл. Доступ по ключу за константное время.

Ответы38056

31 июля, 00:50 457 1238056

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

Ответы38059

31 июля, 01:01 458 1238059

>>1238056
>для небольших массивов
>>1238010
>n = 10000000
Плез. Тут происходит амортизация того, о чём ты говоришь. Иди баиньки уже.

31 июля, 01:01 459 1238060

>>1238042
>Ты перепутал скриншоты
Тогда странно получается, да. Запости целиком прогу.

31 июля, 18:02 460 1238416

Аноны, такая проблема:
Работал в визуалке 2017 года, работал с символьными динамическими массивами. На визуалке "программа" работает некорректно. Выводятся вообще рандомные символы. Как я понял, неправильный адрес берется компилятором. Скопировал код в Dev C++ и C++ Builder - все нормально. Как фиксить парашу от микрософта?

Ответы3842738430

31 июля, 18:33 461 1238427

>>1238416
Вангую дело в кодировке

31 июля, 18:36 462 1238430

>>1238416
Как фиксить свои кривые руки от андифайнед бихевиора, ты хотел сказать?

Ответы38691

31 июля, 22:13 463 1238536

Доброй ночи. Я тут сходил на собес, паттерны по банде четырех вроде нормально знаю, но теперь спрашивают, а скажи мол, дорогой, по GRASP паттернам. Я же вообще ни в зуб ногой, че это за хрень такая. Домой как вернулся, гуглить — только статьи в хабровикипедиях понаходил. А литература какая-то есть на эту тему, что посоветуете?

Ответы3856538570

59 Кб, 540x643
31 июля, 22:53 464 1238565

>>1238536
>Паттерны
>C++
Ты кем устраиваешься? Формошлепом каким-то что ли?

Ответы38571

31 июля, 22:57 465 1238570

>>1238536
А есть ещё вот такие:
https://books.google.ru/books/about/Patterns_for_Parallel_Programming.html?id=LNcFvN5Z4RMC&redir_esc=y&hl=en
Этих паттернов понапридумывали ояебу сколько. Если ты на кодера собираешь устраиваться, то просто забей. На практике ты их все увидишь не раз, только названия знать не будешь.

Ответы38573

31 июля, 22:58 466 1238571

>>1238565
Всем без разбору, где требования к языкам только C++. Я даже C знаю очень неуверенно, а о питонах всяких и речи не идет. Хочу уже куда-то устроиться, а не все сидеть и „вкатываться“. Так что с ГРАСПом-то?

31 июля, 23:00 467 1238573

>>1238570
Спасибо, буду хоть морально готов, что на ГРАСПЕ оно не заканчивается.

40 Кб, 273x398
1 авг, 00:10 468 1238634

8 лет прогал под линукс, дома последние лет 5 тоже линукс стоял как основная система + винда для игорь на другом диске.
Теперь появилось такое желание попрогать под виндой.
Раньше сказать, я ненавидел С++ под виндой, ибо WinApi это просто пиздец, корявое уебище по сравнению с красивым и удобненьким linux api + Студия говно, но я нашел Resharper C++ попробовал его вроде годно.
Единственное, что до сих пор смущает - это отсталый компилятор у студии, в котором мало того, что много чего из новых стандартов не реализованно, так еще и нету всяких санитайзеров, что просто киллер-фитча, который я постоянно пользуюсь в gcc, которая позволяет находить различные сложные баги. Плюс вывод ошибок у студии уебищный и не понятный по сравнению с gcc который прямо очень точно указывает, что не так да еще и цветом выделяет, студия выплевывает какую-то несуразную хуиту по которой вообще не понятно в чем проблема.
Зато у студиии дебагер вроде как получше.
Еще бесит у студии флаги компилятора уебанские и совсем другие, чем у gcc, clang, intel и проч.
Еще не понятно, что у студии с CMake'ом.

Так вот что скажите, если ли какие-то обходные пути?

Ответы38640386433864938999

1 авг, 00:22 469 1238640

>>1238634
> отсталый компилятор у студии
Полная поддержка С++17 завезена уже

Ответы38656

1 авг, 00:23 470 1238643

>>1238634
Ты делать то что собрался, болезный?

Ответы38656

1 авг, 00:41 471 1238649

>>1238634
Я бы посоветовал тебе Eclipse вместо VS. В нём сбываются все красноглазые мечты.

Ответы3865639036

1 авг, 01:08 472 1238656

>>1238640
А что на счет санитайзеров, адекватного вывода компилятора, CMake, и прочего?

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

>>1238649
Ой не, я Eclipse траил много лет под линуксом, за все эти годы переодических попыток, я так и не разобрался как там скомпилировать что-то. Эклипс это просто кусок говна.
Юзал QtCreator долгое время, потом пересел на CLion с его появлением.
Но Clion до сих пор не особо со студийным компилером работает, а отладчик его вообще не поддерживается.

На gcc под виндой, половина фишек типа санитайзеров не работает.

Ответы38667

1 авг, 01:34 473 1238667

>>1238656
>На работу щас устраиваюсь
This is the third thread you've been applying for a job. So sad reading this. But its a fair price for being a linux c/c++ developer. Red-eyed guys have to suffer.

Ответы38670

1 авг, 01:44 474 1238670

>>1238667
>This is the third thread you've been applying for a job. So sad reading this. But its a fair price for being a linux c/c++ developer. Red-eyed guys have to suffer.
Лол. Это паста или нахуя ты на англ. написал?
Вообще по линуксу дохуя всего, просто так попалось, что мне понравился проект, платят норм, и есть перспективы съеба с пидарахи.
А так на линуксе намного больше по плюсам вакансий, чем на винду.

Ответы38676

1 авг, 02:05 475 1238676

>>1238670
If we go to a local job-placement site like hh.ru and check your statement about development under different operation systems we will find out that its totally wrong. There are only 1k positions marked both "c++" and "linux" against 3k positions marked with "c++" in total. What would you say in opposition to this fact?

Ответы3888838895

1 авг, 05:41 476 1238691

>>1238430
>андифайнед бихевиора
Ты о чем?
мимо закончил первый курс

Ответы38694

1 авг, 05:57 477 1238694

>>1238691
Да.

Ответы38696

1 авг, 06:00 478 1238696

>>1238694
Ааа

1 авг, 13:23 479 1238888

>>1238676
>being a pretentious cunt wallowing in his basic ability to write English
Seems ta me yer peen is hoora wee, innit?

Ответы38963

1 авг, 13:35 480 1238895

>>1238676
>operation systems
o, vy iz anglii?

>against 3k positions marked with "c++" in total.
И где доказательства, что из этих 2к на винду больше тысячи?

Ответы38963

1 авг, 15:58 481 1238963

>>1238888
>to write English
"in English" actually

>>1238895
>o, vy iz anglii?
Mistakes are made.

>И где доказательства, что из этих 2к на винду больше
тысячи?
We cant get the certain numbers from the inquiry. In my experience if an employer doesn't point out "linux" in a description then its a windows-based position, though.

Ответы3897039459

20 Кб, 700x700
1 авг, 16:20 482 1238970

>>1238963
>"in English" actually
Не обязательно.

Ответы39009

32 Кб, 521x400
1 авг, 17:14 483 1238999

>>1238634
QtCreator + MSVC компилятор, ежжи.
З.Ы. Только креатор предпоследний бери. Из ГУИ на выбор как с++ Qt виджеты, так и QML JS фигня с пробросом с++ функционала, забавная вещь.

1 авг, 17:29 484 1239009

>>1238970
Maybe somewhere in India it is.

1 авг, 18:00 485 1239036

>>1238649
ты совсем сумасшедший? Эклипс это худшее, что существует в мире IDE

Ответы39039

1 авг, 18:05 486 1239039

>>1239036
Чем оно худшее, дебич? В разы проще и интуитивнее, чем MS VS.
Выведено всё, всё, блядь, что можно.

Ответы39088

1 авг, 19:38 487 1239088

>>1239039
Земля тебе пухом

9 Кб, 480x360
1 авг, 19:55 488 1239094

Решил собрать свой "кроссплатформенный" проект, который я писал и тестил под линуксом, в студии.

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

Во-вторых, я хуй знает как, но блять файловые стримы под виндой работают в 100 раз медленее. Мое приложение много работает с файлами, и я долбоеб, почему-то решил использовать плюсовые стримы, хотя знал что это кусок говна, но не ожидал, что настолько. В общем, идея там простая: я задая фиксированный буффер через rdbuf()->pubsetbuf() и уже пишу/читаю потом. Короче на линуксе чтение/запись работает очень быстро типа файл в 10 мегов, пишется из памяти через с++ стримы в районе пары мс, под виндой эта хуйня занимает по 3-4 СЕКУНДЫ!!!! Я сначала не понимал, почему мое приложение так медленно работает, потом запустил профайлер и ахуел, что это файловый стрим так тормозит, заменил его на Сишные стримы все стало нормально. Но это просто эпический пиздец.

В-третьих, как меня заебала студия своим уебищным UI, при компиляции поднимается окошко с логом компиляции и ошибками и СРАЗУ ЖЕ закрывается, я блять ахуеваю просто, постоянно надо нажимать туда чтобы посмотреть ошибки, а держать его открытым постоянно - это место занимает. Короче пиздец.

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

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

Ответы390963910539130391413914539161

1 авг, 19:57 489 1239096

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

1 авг, 20:01 490 1239105

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

почему это кусок говна?

Ответы39107

1 авг, 20:03 491 1239107

>>1239105
Потому что медленные как пиздец.

1 авг, 20:25 492 1239130

>>1239094
Для винды по опыту считывание около мб оптимально. Больше или меньше медленнее. И при чем тут плюсы, если за стрим ОС отвечает?

Ответы39150

1 авг, 20:33 493 1239141

>>1239094
1. Да
2. Делает хуйню
3. Неосилятор
4. Неосилятор
5. Неосилятор

> РРРРРРРРРРРЯЯЯЯЯЯЯЯЯЯЯЯЯЯ СТУДИЯ ГАВНО МАМ

Ответы39150

Вопрос на миллион Аутист 1 авг, 20:34 494 1239142

Зачем C++ ввёл ссылки? ну правда, были указатели, они могут быть шаблонными типами, с ними не возникнет этих сраных ссылочных проблем, которые ещё и варьируются со стандартами.
"Ссылка просто предоставляет нам более простой интерфейс по сравнению с указателями. Теперь не надо постоянно разыменовывать." - Примерно так пишут в учебниках.
На деле:
> семантика переноса
> ссылки rvalue, lvalue, универсальные ссылки
> Ой, у вас тут std::move отваливается, замените на std::forward
> Ой, вы думали, что тут rvalue, но он как аргумент, конечно, rvalue, но формальный параметр есть lvalue по природе своей. Не ешь, подумой
> Здесь у вас кусок говна получился с копированием, мы же хотели прямую передачу
> Вы что, не знаете, как сворачиваются ссылочки?
И это притом, что:
> Указатели неплохо смотрятся в шаблонах.
> Указатели прозрачны в плане модели памяти и вообще довольно наивны. Ни у кого в голове не будет сомнений по поводу природы указателя, в то время как изучающие C++ без С могут спустя года не понимать, что компилятор все ссылки в конечном счёте сводит к указателям как естественным носителям информации "где".

Ответы39190

1 авг, 20:39 495 1239145

>>1239094
Добро пожаловать в мир разработки по, клован. Нехуй было 8 лет сычевать под одной осью и дрочить в один и тот же инструментарий.

Ответы39150

1 авг, 20:42 496 1239150

>>1239130
Я вроде ясно написал, что СИшные стримы работают нормально, когда я ими заменил плюсовые. При чем тут ОС?

>>1239141
Просто обоссал и убил твою семью, большего ты не заслуживаешь.

>>1239145
>"Мир разработки ПО"
Лел.
Вообще я думал ваш мир намного более продвинутый, но сейчас понимаю, что линукс в этом плане идет впереди лет на 20.

Ответы3915139155

1 авг, 20:43 497 1239151

>>1239150
Попробуй сменить компилятор. По сути из твоего жирного поста проблема-то только в медленной работе. Серьёзная.

Ответы39159

1 авг, 20:44 498 1239155

>>1239150
>СИшные стримы
наркоман?

Ответы3915739185

1 авг, 20:45 499 1239157

>>1239155
stdio.h
Слышал о таком?

Ответы39166

1 авг, 20:46 500 1239159

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

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

Ответы39163

1 авг, 20:47 501 1239161

>>1239094
Да, тебе один намекнул, но зачем ты полез КАЧАТЬ ВИЗУАЛ СТУДИО ПОСЛЕ МНОГИХ ЛЕТ ОБЖИМАНИЯ/ПИНУСА?
Есть mingw, MSYS, pacman доставит утилиты!

Ответы39173

1 авг, 20:48 502 1239163

>>1239159
> кроссплатформенная
Не кросскомпиляторная. Вообще, если ты нигде не обосрался и не написал какой-то код с undefined behaviour в редких ситуациях, то тебя долбать судьба твоей обёртки системных вызовов волновать не должна.
Не нравится - пиши ifdef'ы и разные вызовы для разных осей, лул.

Ответы39173

1 авг, 20:50 503 1239166

>>1239157
>Слышал о таком?
Слышал, причем здесь стримы?

Ответы3917039185

1 авг, 20:53 504 1239170

>>1239166
FILE * это указатель на стрим, если что.
> The fopen() function opens the file whose name is the string pointed
to by pathname and associates a stream with it.
Вы уже забываете свои корни

Ответы39181

1 авг, 20:55 505 1239173

>>1239161
Да я пару постов назад писал, что хочу попробовать на студии пописать. Тем более я там же писал, что у всяких gcc под виндой половина фитч не работает, типа санитайзеров.

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

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

>std::basic_istream::read
>When using a non-converting locale (the default locale is non-converting), the overrider of this function in std::basic_ifstream may be optimized for zero-copy bulk I/O (by means of overriding std::streambuf::xsgetn)

>std::streambuf::xsgetn
> Reads count characters from the input sequence and stores them into a character array pointed to by s. The characters are read as if by repeated calls to sbumpc().

Короче стримы сами по себе медленное говно.
Жаль в плюсы не завезли мемори мапинг.

Ответы39182

1 авг, 20:58 506 1239181

>>1239170
>это указатель на стрим
У тебя кресты головного мозга

Ответы3918339185

1 авг, 20:59 507 1239182

>>1239173
В догонку топик по сабжу

https://stackoverflow.com/questions/26095160/why-are-stdfstreams-so-slow

Ответы39191

1 авг, 20:59 508 1239183

>>1239181
Чего?

1 авг, 21:00 509 1239185

>>1239155
>>1239166
>>1239181
Вкатывальщик не палится.

Ответы39188

1 авг, 21:01 510 1239188

>>1239185
Вообще, да.
Он упоротый какой-то.

1 авг, 21:01 511 1239190

>>1239142
Bump, ваши идеи.
Оправдывайтесь, крестодауны

Ответы39201

1 авг, 21:02 512 1239191

>>1239182
Чем выше уровень абстракции, тем меньше производительность. Очевидно же. Ты бы ещё производительность raw и smart указателей сравнил.

Ответы39199

1 авг, 21:05 513 1239198

>>1230522 (OP)
> CPP тред
Зачем вам отдельный тред для препроцессора языка C?

Ответы39200

1 авг, 21:06 514 1239199

>>1239191
Абстракции абстракциями, но если бы ты почитал тот тред дальше, то увидел бы, что разработчики gcc почему-то позаботились о быстрой реализации этих стримов для больших блоков данных, а в студии похуй. Хотя это даже хорошо, а вообще лучше бы из С++ удалили файловые стримы, и оставили бы только стринг стримы, для удобного форматирования.
Ну или хотя бы завезли какие-нибудь классы для работы с большими бинарными файлами.

Ответы39202

1 авг, 21:07 515 1239200

>>1239198
>Зачем вам отдельный тред для препроцессора языка C?
Что бы поток байтов называть стримом

Ответы3920639459

1 авг, 21:07 516 1239201

>>1239190
Ну что ты пристал? Никто уже не помнит зачем ссылки ввели. А && ввели, потому что хомяки новый функционал клянчили. Мол вон в питухоне ещё инструментария навалили и какие там всякие приколюхи - нам это тоже пиздец как надо.

Ответы3920339204

1 авг, 21:08 517 1239202

>>1239199
Ебать, ты помимо того что нытик, так еще и ни хуя не понимаешь

Ответы39205

1 авг, 21:09 518 1239203

>>1239201
>Ну что ты пристал?
Я просто представил, как на меня будут смотреть, если я не буду их в коде юзать вообще.
И есть дикое желание, если честно...

Ответы39216

1 авг, 21:09 519 1239204

>>1239201
>А && ввели
Чем крестодибилам указатели помешали?

Ответы3920639219

1 авг, 21:10 520 1239205

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

Ответы39207

1 авг, 21:10 521 1239206

>>1239204
>>1239200
Хватит уже толстить

1 авг, 21:11 522 1239207

>>1239205
>где я не прав
В стримах

Ответы39209

1 авг, 21:14 523 1239209

>>1239207
Все пошел на хуй, не беси меня.

Ответы39211

1 авг, 21:15 524 1239211

>>1239209
>Я в скинни джинсах, и я прыгаю на сцене
ясно

1 авг, 21:20 525 1239216

>>1239203
Да всем пофиг на самом деле. Писать на c++ это как жить в Китае или Индии - вроде язык общий и традиции, однако отдельные этносы друг друга нихуя не понимат.
Вот как у нас тут челик из Южной Индии мира линухов не может найти себя - так и по всей отрасли.

Ответы39220

1 авг, 21:25 526 1239219

>>1239204
>Чем крестодибилам указатели помешали?

А их никто и не трогал. Оставили как есть. Хочешь использовать && - используй. Не хочешь - можешь написать то же самое на указателях как в бородатом 98м.

Ответы39221

1 авг, 21:25 527 1239220

>>1239216
>Писать на c++ это как жить в Китае или Индии - вроде язык общий и традиции
У крестоблядков ООП головного мозга, что и порождает проблемы, можно так же посмотреть питухонщиков.

Ответы39225

1 авг, 21:27 528 1239221

>>1239219
> Хочешь использовать && - используй. Не хочешь
Но зачем? Зачем это говно нужно?
>как в бородатом 98м.
Я уже школу закончил как два года.

Ответы39232

1 авг, 21:33 529 1239225

>>1239220
Эффективные менеджеры требуют многа и за быстро и чтоб вчера и чтоб сразу в продакшн. Отсюда ооп, питухон, аджаил и прочее говно.

1 авг, 21:41 530 1239232

>>1239221
>Но зачем? Зачем это говно нужно?
Это костыль для случаев, когда можно избежать глубокого копирования.

Ответы39239

1 авг, 21:43 531 1239237

Сейчас подключил SFML и открыл дефолтный пустой проэкт в Code:Blocks. Всё делал по ультрапростому туториалу, и врятли мог ошибиться. Но выдаёт кучу ошибок будто не подключена вообще SFML, ide тем не менее видит классы, хотя не знаю смотрит ли она в хэадере или это встроеное.

Ответы39335

1 авг, 21:47 532 1239239

>>1239232
>глубокого копирования
Копирования чего?

Ответы39242

1 авг, 21:53 533 1239242

>>1239239
Например данных, которые хранятся в объекте по указателю и подразумевают единоличное владение.

Ответы39246

1 авг, 21:56 534 1239246

>>1239242
>Например данных
Ну я же знаю их формат и могу их скопировать от руки, зачем это все переносить в язык?

Ответы39329

1 авг, 23:14 535 1239329

>>1239246
Ну любители c, например, пердолятся с хранением указателей на функции в структурах, чтобы имитировать объект с методами. В c++ это встроено в язык, хотя в большинстве случаев это не нужно.

Попробуй написать код для вот такой ситуации без &&.
class A {B* m_p;};
A f();
A a1 = f();
A a2 = a1;

1 авг, 23:21 536 1239335

>>1239237
> Code:Blocks
Почему. Почему. Почему постоянно ньюфаги упоминают этот кусок дерьма. ЗАЧЕМ? Почему нельзя поставить Студию\Шлион\Культикреатор. Почему ставить этот высер сифозной макаки?

Ответы39337

1 авг, 23:22 537 1239337

>>1239335
>Студию\Шлион\Культикреатор

Ответы39341

1 авг, 23:24 538 1239341

>>1239337
>тормозноеговно\Шлион\анальныйзонд

Ответы39355

1 авг, 23:40 539 1239355

>>1239341
Обнови свой Пентиум 4 уже, не позорься. Тормозное говно у него

Ответы3935639359

1 авг, 23:46 540 1239356

>>1239355
Тормозное блять. В игры играю а студия вылетает и грузит две буквы 10 секунд.

Ответы39358

1 авг, 23:49 541 1239358

>>1239356
Thief и квака уже не стоят на грани компьютерной графики, анон.

1 авг, 23:54 542 1239359

>>1239355
Так у него ЛевЪ на Java писанный работает. Пациент просто копротивляется. А может это дистрибьютер JetBrains свои копеечки отрабатывает.

2 авг, 00:00 543 1239361

Блять, да VS глючная что пиздец. Я такого никогда не видел, чтоб текстовый редактор виснул настолько часто и долго.

Ответы39648

2 авг, 01:04 544 1239396

VS говно, его пользователи дауны.

Ответы39648

2 авг, 05:16 545 1239442

Двач, почему в C++ компиляторы обнуляют указатели в структурах?
Можно ли это отключить как-то?
В c они это тоже делают, причём везде, но только с включением оптимизации.

2 авг, 07:23 546 1239459

>>1238963
>In my experience
But you have no experience.

>Mistakes are made.
>get the certain numbers
Ви продолжаете, может таки лучше остановиться?

>>1239200
>поток байтов
Но ведь стрим это и есть поток. В чём шутка?

Ответы39505

2 авг, 10:23 547 1239489

Могучие местные крестовики не знают, что плюсовые стримы могут иметь такую-же или большую скорость, если отключать проверки.
Виндовый компилятор медленее в дебаге, т.к. имеет 100500 проверок на безопасность, многие вещи пролетающие в гцц как по маслу, в винде падают с абортом, т.к. код ансейф. Попробуй с -Ox на винде, и каким-то -Ofast на гцц.
Плюс в винде многие небезопасные оптимизации выключены вообще и нужно ручками все указывать, тот же strict_aliasing например.
Вообще в современном мире компилировать код чем-то кроме clang+llvm моветон

Ответы39544

2 авг, 10:56 548 1239498

>>1230522 (OP)

Пацаны, код годный? Стоит за ними повторять?

https://github.com/CRYTEK/CRYENGINE/tree/release/Code/CryEngine

2 авг, 11:22 549 1239505

>>1239459
>But you have no experience.
Everyone who have ever applied for a job has such experience.

>Ви продолжаете, может таки лучше остановиться?
Any explanations are welcome.

Ответы39560

2 авг, 12:27 550 1239544

>>1239489
Слушай, я сегодня напишу специально тест для стримов С++ и сишных, нативных ОС файловых функциях и мемори маппед файлов.
Так вот ясен хуй я компилировал с максимальными оптимизациями при проверке. Просто сами плюсовые стримы так сделаны хуево по крайней мере в студии.

Ответы39592

2 авг, 12:47 551 1239551

Объясните как подключать библиотеки. У меня MinGW. Засунул .a файлы в \lib, хэдеры в \include. Ещё есть dll, куда его? Почему не подключается библиотека?

Ответы39656

2 авг, 13:07 552 1239560

>>1239505
>applied for a job
Which you have not.

>Everyone who have
has. And probably "anyone" fits better.

>Any explanations are welcome.
I don't like "the" there, doesn't seem right. Perhaps the word "certain" is throwing me off a bit, of course. More importantly, your sentence sounds like there are some numbers (out of many) that you can't get, while what you were trying to say is you can't get specific or accurate numbers [of windows-only jobs].
I know it has a kind of similar definition in the dictionary, but see these, for example:
https://english.stackexchange.com/questions/252054/difference-between-certain-specific-and-particular
https://english.stackexchange.com/questions/291113/what-is-the-difference-between-certain-and-specific

Oh, and it should be "the description" in the next sentence.

2 авг, 14:03 553 1239592

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

2 авг, 16:23 554 1239647

Посоны! А у меня тут такой тупой вопросик.
А какая особая разница между функцией и классом с оператором()? Ну помоимо того что класс это ещё и всякие хуйни там можно понавешивать.
Нахуярить вместо функций классов и использовать безымянные объекты как функцию.

3 Кб, 170x127
2 авг, 16:24 555 1239648

>>1239361
>>1239396
Дурень, ты VS Code скачал?

Ответы39657

2 авг, 16:44 556 1239656

>>1239551
Бамп епт.

2 авг, 16:50 557 1239657

>>1239648
Нет, дефолтную студию. Она не синяя она фиолетовая и виснет что пиздец.

Ответы40105

2 авг, 17:56 558 1239683

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

2 авг, 18:09 559 1239692

Visual studio на самом деле это лучшее IDE.
Правда ещё есть Clion, он даже получше будет чем Visual studio, более того он кросплатформенный, но он стоит дохуища денег, 12000 в год.
Мне на линухе так вообще приходиться пользоваться "qtcreator", параша полная, но даже это лучшее из того что представлено на линухе из IDE (помимо вышеупомянутого Clion'a).

Ответы3969839813

2 авг, 18:12 560 1239698

>>1239692
А нет, Clion стоит 90$ в год (что собственно тоже не подъёмная сумма (для большинства русских))

196 Кб, 480x360
2 авг, 18:26 561 1239714

g++ -c -g -include /C/MinGW/include/SDL2/SDL.h -MMD -MP -MF "build/Debug/MinGW-Windows/main.o.d" -o build/Debug/MinGW-Windows/main.o main.cpp

main.cpp:15:17: fatal error: SDL.h: No such file or directory
#include <SDL.h>

Памагите пожалуйста

ИДЕ NetBeans

Ответы40357

2 авг, 19:09 562 1239740

Ну почему у меня никогда ничего не работает?

2 авг, 20:49 563 1239791

Помогите написать Hello World. Это вообще возможно?

Ответы39811

2 авг, 21:16 564 1239811

>>1239791
Да, записывай:
#include <iostream>
int main(){std::cout << "Hello faggot" << std::endl;}
Компилируй: g++ main.cpp

Ответы3981939904

2 авг, 21:16 565 1239813

>>1239692
>Платить самому за софт
Орнул с тебя.

Ответы39815

2 авг, 21:18 566 1239815

>>1239813
Хули ты орёшь дебил? Тебе дурку вызвать?

Ответы39817

2 авг, 21:25 567 1239817

>>1239815
Пернул тебе в глаз, омеганище.

Ответы39821

200 Кб, 416x400
2 авг, 21:32 568 1239819

>>1239811
Не получилось. Укатился обратно в питон.

Ответы39820

2 авг, 21:34 569 1239820

>>1239819
Туда тебе и дорога.

2 авг, 21:36 570 1239821

>>1239817
Ты в монитор пёрнул чмошник омеганский.

Ответы39823

2 авг, 21:44 571 1239823

>>1239821
>Перефорс
И это все что ты можешь, жалкий девственник?

Ответы39825

2 авг, 21:48 572 1239825

>>1239823
Могу дурку тебе вызывать чтобы не орал по ночам, чмошник омеганский.

Ответы39828

2 авг, 21:50 573 1239828

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

Дааа, не завидую...

3 авг, 01:17 574 1239903

А что, правда сейчас уже зашквар писать int, long, short и т. д., а надо строго int32_t, uint8_t и т. д.?

Ответы399394090040945

3 авг, 01:19 575 1239904

>>1239811
return 0; // ты забыл

Ответы40358

3 авг, 06:18 576 1239939

>>1239903
Так тоже зашквар. Нынче auto

Ответы4083540945

3 авг, 11:23 577 1240094

Объясните тупому.
OpenGL - это просто спецификация, так. Реализация спецификации сделана в драйверах GPU.
Тогда что я подключаю #include <GL/glut/glew/GL.h>. И если я не закину dll в проект, то говно не скомпилируется. В спецификации написано, что это >OpenGL Loading Library
Нихуя не понимаю блять

Ответы40361

3 авг, 11:41 578 1240105

>>1239657
Какая версия винды и студии? Может тебе просто мать пропылесосить?

3 авг, 13:40 579 1240184

Нужно нарисовать граф с посчитанным расположением вершин. Интерфейс на Qt, позавчера в первый раз читал доки. Есть ли способ избежать отрисовки примитивов? Что-то вроде QChartView, но с рёбрами.

Ответы4019440550

3 авг, 13:56 580 1240194

>>1240184
Или лучше скопипастить сделать что-то типа этого?
http://doc.qt.io/qt-5/qtwidgets-graphicsview-elasticnodes-example.html

3 авг, 17:41 581 1240317

Щито это такое?
if (i 1ll i <= n)

Ответы40322

3 авг, 17:47 582 1240322

>>1240317
if (i 8 1ll 8 i <= n)
Где восьмерки там умножение
fix

Ответы40419

3 авг, 18:38 583 1240357

>>1239714
> ИДЕ NetBeans
> MinGW
Помоги себе сам сначала

3 авг, 18:38 584 1240358

>>1239904
по стандарту можно не писать в main()

3 авг, 18:41 585 1240361

>>1240094
OpenGL в винде предоставляет возможности программирования только на OpenGL 1.1. Для того, чтобы писать на чем-то поновее, нужно загрузить нужные расширения из системы. Т.е. сама винда загружает только 1.1, надо дозагруживать

3 авг, 20:01 586 1240419

>>1240322
Очевидно говнокод. А по делу, если i это int, то, как мне думается, автор пытается избежать переполнения при умножении.

Ответы4047140494

3 авг, 21:49 587 1240471

>>1240419
А может это фрагмент из йоба метода по типу метода Кармака для обратного корня.

3 авг, 22:49 588 1240494

>>1240419
Спасибо, я просто даун

3 авг, 23:44 589 1240531

Блять, как вкатиться в коммерцию? Я уже бог этого говна. Еще чуть-чуть, и пойду учить жс.

4 авг, 00:05 590 1240550

>>1240184
Заюзаю MathGL

4 авг, 18:03 591 1240835

>>1239939
Где это auto?
auto main(auto argc, auto argv) что ли?

Ответы40853

4 авг, 18:32 592 1240853

>>1240835
auto main(auto argc, auto argv)
{
std::vector<std::basic_string<decltype(argv)>> v;
for(auto i = decltype(argc)(); i < argc; ++i)
{
v.emplace_back(argv);
}

...

}

4 авг, 19:35 593 1240900

>>1239903
все эти инты и шорты обычно у студентиков в лабах остаются

4 авг, 20:55 594 1240945

>>1239939
>>1239903
Плюсы не для auto, они для кроссплатформенного софта. И там и с int16_t приходится пердолиться, и свои аналоги выдумывать.

5 авг, 01:05 595 1241045

Вы че ахуели, кто отвечает за перекат треда?
Пили новый, ты, чорт.

5 авг, 10:41 596 1241124

В ньюфаг треде не ответили, пишу сюда:

Сап,
В некой программе создается виртуальная область памяти и виртуальный регистр.

У регистра есть методы get и set, которые наследуются из другого класса. Нужны для того чтобы читать из регистра и писать, регистр может иметь атрибут RO, RW, WO, в зависимости от этого мы определяем можно ли вызвать get или set.

Задача: мне нужно реализовать маппинг этого регистра к памяти по определенному адресу, чтобы вызывая get объекта, я выполнял логику get или set регистра.

У класса Memory я делаю метод map в него подается адрес на который я хочу замапить регистр и сам регистр.

void Memory::map(int addr, Register ✼reg_m) {
int64_t tempAddr = (int64_t)(int✼)reg_m;
....
}
Здесь я получил адрес регистра, т.е. адрес объекта, но теперь вопрос:
Как у этого объекта вызвать метод зная только его адрес?
Грубо говоря:
0xdeadc0de.get()

А сама программа будет работать так:
Register Reg0(8, RW); //создали регистр
Memory memspace(0x00, 0x60); //создали область памяти размером 0x60

memspace.map(0x53, &Reg0); //мапим регистр на 0x53
memspace.read(0x53); //тут уже будем читать из регистра, проходя логику проверки аттрибута регистра, и принимаем решение, можно ли с него читать или нет

5 авг, 10:41 596 1241124

В ньюфаг треде не ответили, пишу сюда:

Сап,
В некой программе создается виртуальная область памяти и виртуальный регистр.

У регистра есть методы get и set, которые наследуются из другого класса. Нужны для того чтобы читать из регистра и писать, регистр может иметь атрибут RO, RW, WO, в зависимости от этого мы определяем можно ли вызвать get или set.

Задача: мне нужно реализовать маппинг этого регистра к памяти по определенному адресу, чтобы вызывая get объекта, я выполнял логику get или set регистра.

У класса Memory я делаю метод map в него подается адрес на который я хочу замапить регистр и сам регистр.

void Memory::map(int addr, Register ✼reg_m) {
int64_t tempAddr = (int64_t)(int✼)reg_m;
....
}
Здесь я получил адрес регистра, т.е. адрес объекта, но теперь вопрос:
Как у этого объекта вызвать метод зная только его адрес?
Грубо говоря:
0xdeadc0de.get()

А сама программа будет работать так:
Register Reg0(8, RW); //создали регистр
Memory memspace(0x00, 0x60); //создали область памяти размером 0x60

memspace.map(0x53, &Reg0); //мапим регистр на 0x53
memspace.read(0x53); //тут уже будем читать из регистра, проходя логику проверки аттрибута регистра, и принимаем решение, можно ли с него читать или нет

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

5 авг, 11:12 597 1241136

>>1241124
>Как у этого объекта вызвать метод зная только его адрес?
>TvoyClass✼ obj= reinterpret_cast<TvoyClass✼>(obj_addr);
>return obj.get();
?

Методы они не у адресов, они у объектов. Ну или я не понял, что ты вообще делаешь. Если ты в map() передаёшь указатель на Регистр, нахуя ты его в безликий адрес переводишь-от, почему бы этот же указатель и не сохранить? Потом reg_m->get() вызовешь да и всё.

Ответы42735

5 авг, 11:45 598 1241145

ПРИХОДИШЬ НА СОБЕСЕДОВАНИЕ ПО КРЕСТАМ
@
НАЧИНАЮТ ЕБАТЬ ЧИСТО СИШНЫМ ГОВНОМ И НИЗКОУРОВНЕВОЙ ЗАЛУПОЙ

это нормально, котаны?

Ответы4116741532

5 авг, 12:29 599 1241167

>>1241145
Насколько низкоуровневой? Про что спрашивают?

Ответы41174

5 авг, 12:32 600 1241174

>>1241167
просили поволохать битьы - поволохал.
срезался на ололофункциях с мемсетами мемцпай ЧТО ВЫВЕДЕТ ПРОГРАММА НА ЭКРАН ЧТО ЗНАЧИТ НЕ БУДЕТ РАБОТАТЬ ПОЧЕМУ ИМЕННО НЕ БУДЕТ РАБОТАТЬ ЧТО ИМЕНО ВЫВЕДЕТ

Ответы41177

5 авг, 12:36 601 1241177

>>1241174
А в чем пример был, в чем фишка? Мемсет, мемсру, и что? Там какие-то мегаподводные мегакамни?

Ответы41190

5 авг, 13:17 602 1241190

>>1241177
там был кусочек ебанутого кода.
и в общем было ясно что там в определенный момент память потечет, и еще куски какой-то ебанины.
я постарлся указать на то что там потечет памятть и нет смысла смотрю ту ахнинею, что есть еще. но ЭТО ОКАЗАЛОСЬ ОЧЕНЬ ВАЖНО

Ответы41196

5 авг, 13:35 603 1241196

>>1241190
Короче ты просто не знал, что будет и предположил, что потечет память потмоу что используются сишные функции?

Ясно.
Мы вам перезвоним.

Ответы41248

5 авг, 14:46 604 1241248

>>1241196
ты даун?

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

я обозначил - тут потечет память, а тут - даже голову ломать не буду.

они такие - хуяк. ну тут потечет, а тут что будет. а я говорю - да какая разница в общем-то

Ответы41524

5 авг, 19:43 605 1241499

>>1233784

static constexpr inline bool IsPowerOf2(const int32 Value) noexcept
{
return (Value & (Value - 1)) == 0;
}

Ответы42355

5 авг, 20:16 606 1241524

>>1241248
Пиздец ты даун.
Еще удивляется почему его нахуй послали.

5 авг, 20:36 607 1241532

>>1241145
Ну да. Те же тестовые ингда требуют написать без использования STL. Зачем? Чтобы кандидат мог ковырять легаси говно или заниматься оптимизацией.

5 авг, 21:04 608 1241551

Ребята, учу Python, а после хочу продолжить изучать с++, какие подводные и какие плюсы я с этого получу? В СИпп знаком с переменными, циклами, условиями, а потом дропнул тк начал глубоко изучать ассемблер для кр555

Ответы41659

5 авг, 22:53 609 1241659

>>1241551
Охуешь и выйдешь в окно от того, сколько нюансов держать надо в голове.

Ответы41678

5 авг, 23:13 610 1241678

>>1241659
Не выйду, в ассемблере же разобрался

Ответы41722

6 авг, 00:11 611 1241722

>>1241678
Ассемблер - это детская игрушка по сравнению с С++, в асм нету ничего сложного, единственные что может вызвать там затруднения - это понимание работы памяти и аккуратное ее использование, а так хули там есть инструкция есть 1-3 операнда, которая она принимает, сам по себе язык очень примитивный, а вот С++ это пиздец, кроме того же понимания работы памяти, там надо понимать и знать еще кучу вещей, кучу разных нюансов, знать кучу различных подводных камней.
Поверь мне, я знаю и х86 асм и плюсы уже 10 лет и то я не могу сказать про себя что я гуру в плюсах, до сих пор иногда нахожу вещи в них, которые я не знал или не понимал.

Ответы41728

6 авг, 01:07 612 1241728

>>1241722
Да это то все понятно, я к тому, что трудности меня не пугают. Да и дрочу я на си, еще на 2 курсе как узнал об языке, так и влюбился
Все можно гуглить, все можно смотреть в справочниках
Мне интересно, я стану богом со связкой python и cpp?

Ответы4172941730

6 авг, 01:15 613 1241729

>>1241728
А что есть бог для тебя? В некоторых конторах без знания определённых областей матана ты будешь делать сосамба писюрелла.

Ответы41731

6 авг, 01:18 614 1241730

>>1241728
Да как вы заебали. Выучу - стану богом. Калькуляторов. Язык это просто детский лепет. 95% нужной инфы не программирование. А дискретная математика, теория информации, линейная алгебра, матан, статистика, теория вероятностей, алгоритмы, структуры данных, протоколы. В зависимости от области применения. Вот мне ебучию криптографию и телекоммуникационную начинку побоку начем писать. Хоть да яваскрипте, только оно не влезет и памяти не хватит. В последнюю очередь мне были важны нюасы языка, а вот статистические данные и вероятностная модель в первую

Ответы4173241766

6 авг, 01:19 615 1241731

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

Ответы4173441736

6 авг, 01:20 616 1241732

>>1241730
Ты еблан, пруфов не будет

Ответы41733

6 авг, 01:22 617 1241733

>>1241732
Основную теорему теории информации хоть назовешь, умник?

Ответы41735

6 авг, 01:23 618 1241734

>>1241731
Ну тогда будешь формошлёпить на qt и пилить автоматизацию сборки/тестирования на python.

Ответы41737

6 авг, 01:25 619 1241735

>>1241733
Кодирование источника. А что ты подучишь с моего ответа? Всего лишь потешишь свое самолюбие

Ответы41739

6 авг, 01:26 620 1241736

>>1241731
Тогда зачем тебе плюсы?

Ответы41738

6 авг, 01:26 621 1241737

>>1241734
Че так жестко? Можно много крутых проектов сделать не знаб глубин матана, а если прямо прижмет, то всякие стаки, хабы и просто f9 try наше все

6 авг, 01:29 622 1241738

>>1241736
А знаешь, я не знаю. Ну сервер написать на нем, всякую дрянь типа шифровальщиков, хуков. Язык многогранен и он не только для решения " в чем смысл жизни? -7"
Или как там было, в теории большого взрыва?

Ответы41739

6 авг, 01:31 623 1241739

>>1241735
Просто понять, слышал человек что-то про теорию связи или нет
>>1241738
Этого говна и так навалом. И проще это сделать не на плюсах. А за шифровальщик и присесть можно

Ответы417424174441745

6 авг, 01:34 624 1241742

>>1241739
Теорию информации конечно. Теория электросвязи отдельный пиздец. Быстрофикс

6 авг, 01:36 625 1241744

>>1241739
Бро, я не знаю этой теории, но щас зайду в гугл и ознакомлюсь.
А почему бы и не на си это писать? На питоне тоже можно, я и писал на нем, но доверять всяким py2exe это пиздец и объем файла становиться пиздец огромным из-за зашивания в ехе интерпретатора py

Ответы41748

6 авг, 01:37 626 1241745

>>1241739
А да, на си я собираюсь читы для игр писать и инжекторы.

Ответы41748

6 авг, 01:50 627 1241748

>>1241744
Ну ознакомишься. А вот полноценную начинку цифрового тракта по всем 7 уровням модели osi написать после ознакомления не сможешь. И выдрочив весь стандарт тоже не сможешь. И обосновать, почему надо именно так не сможешь. Суть в этом. Есть много областей, где знания только языка недостаточно.
>>1241745
Ну вот и ответил. А то ну не знаю, ну прост, шоб было))) тогда да, плюсы и архитектура ос. Может быть ещё сети

Ответы41749

6 авг, 01:53 628 1241749

>>1241748
Osi знаю, как же блядь заебало писать на парах про эту хуету, если надо будет всегда конспекты открыты.
Да и зачем мне все это знать на старте, все приходит с опытом, кругозор увеличивается И так далее итп

Ответы41751

6 авг, 01:57 629 1241751

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

Ответы4175241753

6 авг, 01:58 630 1241752

>>1241751
>На листочке уровни с прикладного по физический

6 авг, 01:59 631 1241753

>>1241751
Я так то учился на компьютерных системах и комплексах, есть понимание как чаго почему. Диплом сдал на 5, на защите хуярили прямо
Электротехника аппает невероятно в этом

Ответы41755

6 авг, 02:01 632 1241755

>>1241753
Ну тогда понимаешь, что это с кодом никак не связано. И таких областей достаточно

Ответы41756

6 авг, 02:05 633 1241756

>>1241755
Да, но для себя я выбираю именно то, что можно делать программно. Хватит с меня всей поеботы, хватило за 4 года, хоть и было интересно

6 авг, 03:47 634 1241766

>>1241730
Да все в рот ебали тебя и твои теории автоматов.
Нормальные парни пишут на React и Node, попивают крафтовое пивко в барах, и носят андеркаты, добираясь на работу на гироскутере, пока такие чмошники, как ты стоят в сторонке и молча завидуют.

6 авг, 06:49 635 1241776

Допустим, у меня есть некая последовательность функций, которые нужно вызвать, но при этом как только любая из них вернёт false, дальше идти не надо.
Есть ли какой-то красивый способ такое организовать, кроме оборачивания каждого вызова в if(!funcN()){return;} ?

Ответы4186441959

6 авг, 13:06 636 1241864

>>1241776
func1() && func2() && ... && funcN();
Если хочется, можно еще показать, что возвращаемое значение не нужно.
(void)( func1() && ... );

6 авг, 16:43 637 1241959

>>1241776
тебе нужны rangesv3

6 авг, 17:02 638 1241970

[code]
Бля почему С++ такой ущербный язык, что Foo f(&i) вызывает конструктор по ссылке из-за того, что он не может неявно скастовать int в const int
[/code]

https://ideone.com/L1rcW8

Ответы42000

6 авг, 17:35 639 1242000

>>1241970
Што?

Ответы42011

6 авг, 17:39 640 1242011

>>1242000
Я говорю почему С++ такой ущербный язык, что Foo f(&i) вызывает конструктор по ссылке из-за того, что он не может неявно скастовать указатель на int в константный указатель на int.

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

Ответы42034

6 авг, 17:51 641 1242034

>>1242011
>он не может неявно скастовать указатель на int в константный указатель на int.
Он всё может. Просто байнд к ссылке лучше, чем qualification conversion

Ответы42040

6 авг, 17:56 642 1242040

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

Ответы42048

6 авг, 18:02 643 1242048

>>1242040
И чем она правильнее? Передача массивов с enable_if хреновее, например.

Ответы42055

6 авг, 18:07 644 1242055

>>1242048
>Передача массивов с enable_if хреновее, например.
Обоснуй

Ответы42061

6 авг, 18:14 645 1242061

>>1242055
Обосновал тебе за щёку.

Ответы42067

6 авг, 18:18 646 1242067

>>1242061
>Манятеоретик слился
Ясно

Ответы42069

6 авг, 18:21 647 1242069

>>1242067
Слился горячей струёй тебе за щёку.

Ответы42086

6 авг, 18:35 648 1242086

>>1242069
Ты из вкатавальщиков-тред протек? Вот и пиздуй туда.

Ответы42087

6 авг, 18:37 649 1242087

>>1242086
Судя по твоим нулевым знаниям overload resolution ты протёк из ньюфаг-треда.

Ответы42099

6 авг, 18:47 650 1242099

>>1242087
Я из гугла тоже могу копипастить в тред типа ебать я эксперт. Ведь ты именно так и сделал, загуглил вопрос и пришел сюда кукарекнул с ебать видом эксперта, а потом, когда я попросил тебя обосновать конкретную вещь, ты тут же слился, ибо сам нихуя в этом не понимаешь.

/обоссан

7 авг, 05:06 651 1242355

>>1241499
static constexpr inline noexcept
Но Холмс, зачем?
Это должно быть на рефлексе как правило хорошего тона или тут есть какой-то смысл именно для этой задачи?

Ответы43320

7 авг, 06:14 652 1242362

Такая байда хоть где-то применяется?
https://www.justsoftwaresolutions.co.uk/cplusplus/shared-ptr-secret-constructor.html

Ответы43178

7 авг, 11:51 653 1242439

Стандарт языка С++ содержит сколько страниц? Я за все время учебы в институте столько страниц не выучил.

Язык должен быть интуитивно понятен. Вы берете молоток и сразу видите, куда и как бить — вам не надо читать 300-страничную инструкцию к нему.

В общем мир окончательно рпзделился на тех, кто успел выучить C++, пока он был относительно простым и тех, кто не выучит его никогда!

Ответы42558

7 авг, 17:09 654 1242558

>>1242439
Стандарт не надо читать. Достаточно знать некий сабсет и бест практисы

Ответы42706

153 Кб, 600x303
7 авг, 21:36 655 1242706

>>1242558
>Стандарт не надо читать. Достаточно знать некий сабсет и бест практисы

Ответы42722

7 авг, 22:10 656 1242722

>>1242706
Сам то читал его, постер картиночек?
Может ты даже знаешь, что на самом isocpp написано, что стандарт не является средством для изучения языка и тд?

Ответы42726

7 авг, 22:24 657 1242726

>>1242722
Читал.

7 авг, 22:53 658 1242735

>>1241136
Спасибо за подсказку! Анон, надеюсь ты еще здесь...

В безликий перевожу, потому что каждая ячейка mem-space`а имеет поле mapped[addr], где addr - адрес ячейки в этой области памяти, в это поле, собственно, и пишется указатель на то что замаплено, а там может и быть и ПОРТ, и РЕГИСТР, и ШИНА и даже ROM. И они реализованы в будущем будут по разному. Еще это нужно будет мне чтобы отрисовывать дерево маппингов.

Когда я создаю регистр, он наследует свойства (или как правильно) класса Device, в котором есть все что касается всех устройтв без исключения (hard_reset, value, и т.д.). Так же конструктор ставит в специальное поле Device->type флаг, кторый и обозначает тип этого устройства (defines ниже).

Далее когда происходит read\write из ячейки mem-space`а, программа смотрит, что замаплено? Сначала смотрит dev_m->get_type(), и если это порт то приводит указатель к классу Port и вызвает Port::read(), если там регистр то Register::read() и т.д.

В общем, подумал, подумал я и сделал все вот так, в map передается класс Deivce:

#define DEV_REGISTER 1
#define DEV_MEMSPACE 2
#define DEV_PORT 3
#define DEV_BUS 4

class Device
{
protected:
....
int type = 0;

public:
.....
int get_type() {
return type;
}
;

};

void Memory::map(int addr, Device ✼dev_m) {
int64_t tempAddr = (int64_t)(int✼)dev_m;

switch (dev_m->get_type()) {
case DEV_REGISTER: {
printf("Mapping Register to %d\r\n", dev_m->address);
Register✼ obj = reinterpret_cast<Register✼>(tempAddr);
break;
}
case DEV_PORT: {
printf("Mapping Port to %d\r\n", dev_m->address);
Port✼ obj = reinterpret_cast<Port✼>(tempAddr);
break;
}
.......
}
obj->map(addr);
space[addr] = tempAddr;
mapped[addr] = 1;
}

Работает так:

Register R0(8, RW);
Port Port0();
Memory memspace(0x00, 0x60);
memspace.map(0x53, &R0);
memspace.map(0x55, &P0);

Теперь вот 2 вопроса:
1. Не сильно ли я зарылся в абстракции?
2. Вот этот switch выше так же будет и в read, write, map, unmap. Можно ли как-то его в функцию засунуть? Я думал, думал, но пока не пойму что она должна возвращать? А то везде switch, получается написан... И много выходит повторяющегося кода.

7 авг, 22:53 658 1242735

>>1241136
Спасибо за подсказку! Анон, надеюсь ты еще здесь...

В безликий перевожу, потому что каждая ячейка mem-space`а имеет поле mapped[addr], где addr - адрес ячейки в этой области памяти, в это поле, собственно, и пишется указатель на то что замаплено, а там может и быть и ПОРТ, и РЕГИСТР, и ШИНА и даже ROM. И они реализованы в будущем будут по разному. Еще это нужно будет мне чтобы отрисовывать дерево маппингов.

Когда я создаю регистр, он наследует свойства (или как правильно) класса Device, в котором есть все что касается всех устройтв без исключения (hard_reset, value, и т.д.). Так же конструктор ставит в специальное поле Device->type флаг, кторый и обозначает тип этого устройства (defines ниже).

Далее когда происходит read\write из ячейки mem-space`а, программа смотрит, что замаплено? Сначала смотрит dev_m->get_type(), и если это порт то приводит указатель к классу Port и вызвает Port::read(), если там регистр то Register::read() и т.д.

В общем, подумал, подумал я и сделал все вот так, в map передается класс Deivce:

#define DEV_REGISTER 1
#define DEV_MEMSPACE 2
#define DEV_PORT 3
#define DEV_BUS 4

class Device
{
protected:
....
int type = 0;

public:
.....
int get_type() {
return type;
}
;

};

void Memory::map(int addr, Device ✼dev_m) {
int64_t tempAddr = (int64_t)(int✼)dev_m;

switch (dev_m->get_type()) {
case DEV_REGISTER: {
printf("Mapping Register to %d\r\n", dev_m->address);
Register✼ obj = reinterpret_cast<Register✼>(tempAddr);
break;
}
case DEV_PORT: {
printf("Mapping Port to %d\r\n", dev_m->address);
Port✼ obj = reinterpret_cast<Port✼>(tempAddr);
break;
}
.......
}
obj->map(addr);
space[addr] = tempAddr;
mapped[addr] = 1;
}

Работает так:

Register R0(8, RW);
Port Port0();
Memory memspace(0x00, 0x60);
memspace.map(0x53, &R0);
memspace.map(0x55, &P0);

Теперь вот 2 вопроса:
1. Не сильно ли я зарылся в абстракции?
2. Вот этот switch выше так же будет и в read, write, map, unmap. Можно ли как-то его в функцию засунуть? Я думал, думал, но пока не пойму что она должна возвращать? А то везде switch, получается написан... И много выходит повторяющегося кода.

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

1,4 Мб, 1280x720
7 авг, 23:20 659 1242745

>>1230522 (OP)
Сап /pr/, вкатывальщик 16 лвла ищет книгу чтоб не было много ебли с основами программирования
Я знаю си и питон, шарю в байты хуяйты и тд, какую книгу мне читать ?
Пикрандом

Ответы4275242767

7 авг, 23:50 660 1242752

>>1242745
Ты куда вкатываться то собрался? Чтение ради чтения пустая трата времени.

Ответы42754

7 авг, 23:56 661 1242754

>>1242752
В С++
Хачю работать штобы 20к грывень в месяц
Хочу разобраться как работает язык, стандартные библиотеки и какойта фреймворк чтоб на хлеб с маслом хватало Я просто люблю программирование

Ответы4276442771

8 авг, 00:18 662 1242764

>>1242754
> Хочу разобраться как работает язык
Страуструп в треде, все в std

8 авг, 00:29 663 1242767

>>1242745
Вы блять вообще шапку читаете в треде?
Там блять целая простыня с книгами и подробно разжованно с чего начинать и куда двигаться

8 авг, 00:44 664 1242771

>>1242754
>Я просто люблю программирование
Больше похоже, что ты читать любишь. Ну тип нормальная мотивация - я хочу делать то-то и то-то (и для этого мне нужен c++), а не наоборот.

Ответы42796

8 авг, 03:21 665 1242796

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

8 авг, 05:13 666 1242809

>>1242735
Тебе может на полиморфизм глянуть? Виртуальные функции там и всё такое. Если твои регистры и прочие наследуют от Device'а, в интерфейсе которого есть нужные тебе read, write и т.д., то и не нужны никакие касты. Храни массив указателей на Device (записывая туда адреса объектов твоих сабклассов), а потом просто вызывай space[addr]->read(), который вызовет нужный метод у настоящего объекта.

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

Ответы43172

qt 8 авг, 12:19 667 1242905

Как вкатиться в qt?
Реквестирую книги/курсы\ролики на ютубе.

Ответы42916

8 авг, 12:29 668 1242916

>>1242905
Макс Шлее

8 авг, 16:09 669 1243090

Вечер в хату. Интересует один тонкий момент.

1. Имеется абстрактный класс с чисто виртуальной функцией.
class examp;

У него есть protected-поле:
T t;
В конструкторе работает код типа
t = set_t(const T& _t);
где
T examp::set_t(const T& t)
{
t = _t;
return t;
};
Однако, когда в конструкторе вызываешь функцию типа такой:
void examp::set_t(const T& _t)
{
t = _t;
};
поле t никак не инициализируется, чому так?

8 авг, 16:09 669 1243090

Вечер в хату. Интересует один тонкий момент.

1. Имеется абстрактный класс с чисто виртуальной функцией.
class examp;

У него есть protected-поле:
T t;
В конструкторе работает код типа
t = set_t(const T& _t);
где
T examp::set_t(const T& t)
{
t = _t;
return t;
};
Однако, когда в конструкторе вызываешь функцию типа такой:
void examp::set_t(const T& _t)
{
t = _t;
};
поле t никак не инициализируется, чому так?

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

8 авг, 19:21 670 1243168

Перекот пилите уже, тред утоп.

8 авг, 19:24 671 1243170

>>1243090
1. При чем тут чисто виртуальная функция?
2. Имена переменных просто заебись нет
2. t = set_t(const T& _t); - что это за хуета?
3. T examp::set_t(const T& t)
{
t = _t; <----- константной переменной присваиваешь значение, как так-то?
return t;
};
Короче, я нихуя не понял.

8 авг, 19:25 672 1243172

>>1242809
Спасибо, анон! Почитаю про полиморфизм

8 авг, 19:42 673 1243178

>>1242362
Да.

8 авг, 19:52 674 1243182

>>1243090
Это особый тип извращенства, что ли, использовать сеттер внутри самого класса?

Покажи целиком код, где что-то не работает, желательно на repl'е или ideone'е.

8 авг, 20:04 675 1243189

>>1243187 (OP)
>>1243187 (OP)
>>1243187 (OP)
>>1243187 (OP)
>>1243187 (OP)
>>1243187 (OP)

9 авг, 00:09 676 1243320

>>1242355
именно для этой не нужен, за статик сорри, копировал из своего говнокода, там это был публичный метод класса.constexpr сам знаешь зачем. inline - потому что раньше пихал его везде и страдал синдромом forceinline'а, просто осталось. noexcept вроде как ускоряет время компиляции (хотя я понимаю, что это ничтожнофункция никакого прироста не даст)

Ответы43356

9 авг, 03:16 677 1243356

>>1243320
Тогда, если подправить еще пару мелочей, должно быть так?

constexpr bool IsPowerOf2(const int32_t Value) noexcept { return !(Value & (Value - 1)); }

noexcept, ЕМНИП касается гарантий и, пиша это слово, ты ручаешься, что не бросит ни при каких обстоятельствах. И это то, что раньше было throw(), т. е. nothrow гарантия. Я так понял, что из всех вариантов throw() только она и осталась, а остальные из языка поубирали без вариантов на замену.

constexpr до конца не понимаю, зачем. Ну напишу его, и что дальше? Илья Муромец вырасти должен?

Ответы4366443702

9 авг, 12:03 678 1243445

Поясните за std::move, пожалуйста. Имеет ли смысл его использовать, если у меня ~100кб данных раскидано на кучу небольших векторов (~300)?
Сначала получается вектор даблов, потом его надо переделать в инты и записать в атрибут класса (который имеет лишь конст гетер, так что не могу напрямую в него из трансформа писать). Хочется точно не копировать данные без необходимости лишний раз.

Попробовал как-то так, но почему-то с мувом даже медленнее выходит — https://repl.it/repls/FullMildMiddleware с мувом в push_back'е, подозреваю, тоже не всё правильно.

Хотя вот тут, где практически то же самое и написано, вроде бы, мув в разы быстрее — https://repl.it/repls/ItchyCornsilkError

Где я обосрался?

Ответы43478

9 авг, 13:23 679 1243478

>>1243445
В тестах ты не инициализируешь start

Ответы43621

9 авг, 16:30 680 1243621

>>1243478
Блин, точно, хреново скопировал. Спасибо.

9 авг, 17:48 681 1243664

>>1243356
написав constexpr, при известных на этапе компиляции значениях, функция выполнится на этапе компиляции

т.е. написав где-то (к примеру) if(IsPowerOf2(5)), компилятор выполнит функцию и на выходе будет if(false). Как-то так

9 авг, 18:35 682 1243702

>>1243356
Я сам себе отвечу шикарным примером. Вдруг и другим пригодится:

template<int... vals>
constexpr int sum() { return (vals + ...); }

Как есть сейчас, можно использовать для, например, int array_of_size[sum<1,-2,3>()]; // и всё компилируется
Стоит убрать constexpr, пойдут ошибки компиляции.
Хотя функция-то и так и так возвращает значение во время компиляции. Непонятно, зачем еще от пользователя какие-то словечки. Но факт остается фактом, так это работает.

10 авг, 00:31 683 1243909

>>1233140
Sigmentation fault

10 авг, 12:57 684 1244137

>>1233140
Значение оператора sizeof() для указателя на функцию? Как и для любого другого указателя.

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

Тред утонул или удален.
Это копия, сохраненная 16 сентября 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