Под покровом ночи звезднойДремлет код крестовый;Весь рантайм и все багиБелым снегом замело…И шаблоны там, по коду,В семь гигов при компиляцииПоджигают ваш пукан.На огонь бежит сугробомСо звездой толпа нюфагов,Под оконцами стучатся,И «Слава Бьярне» напевают.«Крестобляди! Крестобляди!»Раздается там и тут.И в нестройном блядском хореТак таинственна, чиста,Так отрадна весть святаяО рождении стандарта…Шапка: https://github.com/sosachbot/cppthreadhat/wikiПрошлый: https://2ch.hk/pr/res/892147.html
Не тонем.
Нелегитимный.
Подскажите, с чего начать изучение С++?Алсо, знания javascript будет ли обеспечивать какой-то плюс в изучении?
>>904184С того чтоб сесть и подумать надо ли оно тебе.
Ваша зарплата, динозавры.
>>9041901200 рублей
Есть какие-то гайды, что нужно знать джуну на собеседовании(в приличную компанию)?https://habrahabr.ru/post/117996/Вот это изи.Но нужно что-то поновее
>>904194Саттера
>>904196Есть вроде такого, но с с++11\14?
>>904202Последние книги Саттера, лол. К тебя осталось мало времени, скоро новый стандарт выйдет, и будешь его драфты зубрить, так что поспеши.
Пойдёт ли Страуструп для начинающего в С++ веб-макакера? Или лучше выбрать другую книгу?
>>904212Выбири Дваву
>>904181>урюрю
Буль
>>904212>лучше выбрать другую книгу
День добрый!Посоветуйте альтернативу libevent для написания простейшего http-сервера на C++ (libevent как я понял не дружит с win х64, что меня не устраивает).Есть еще libuv и libеv, но там вроде бы "из коробки" в 10 строчек кода веб-сервер не запустишь - нужно писать свои велики. Есть что-то еще?
>>904695Он почти в 10 строк пишется и на сокетах/epoll/kqueue.Именно из плюсовых — boost.asio (очень многословно и оверинжинирнуто), casablanca (очень няшно, на последних плюсах, советую), ещё какой нибудь libsocket.
>>904695>libevent как я понял не дружит с win х64Что именно не дружит? У меня конпелировалось и работало в x64.
>>904695Адекватного и такого же минималистичного нету. Я использовал для подобных задач libev.
>>904165 (OP)1 то что сети нет - это не баг, а фича2 модули у силанга и студии есть.3 корутины давно уже есть.
>>9041905000 рублей в месяц и талоны в столовкузавтра вот пюрешка с сосисками будет :3
Нужно в map как значение хранить несколько типов(int и string). Как это провернуть?
Почему зарезервированное место памятью массива, пусть даже и неиспользованное хранится на жестком диске, а не в оперативной памяти? Размер выходящего файла при таком коде - 93мб.
>>904746Некоторые компиляторы записывают нулевые байты в исполняемый файл. Вот и причина такого размера.Пример: шланг 3.5 https://godbolt.org/g/gFRcuKгсс 5.1: https://godbolt.org/g/GvQwBZ
>>904746>>Long intДа?
>>904699>>904702>>904704Плюнул на использование либ. Взял за основу пример на сокетах https://code-live.ru/post/cpp-http-server-over-sockets/В чем я сосну?
>>904746У тебя же данные которые должны сохранятся между запусками программы. Следовательно они должны быть записаны в сегменте данных. Дальше зависит от оптимизаций компилятора. Твой вариант - оптимизирована скорость запуска за счет размера программы (в статической памяти хранится полностью весь массив в "готовом" состоянии). В одном из вариантов продемонстрированным аноном выше оптимизирован размер программы за счет скорости запуска - хранится только имеющая смысл часть массива (нулевые байты отброшены), а полностью массив будет создан и подготовлен уже в рантайме.
>>904774>>Твой вариант - оптимизирована скорость запуска за счет размера программы (в статической памяти хранится полностью весь массив в "готовом" состоянии)Я конечно новичок и писать программы толком не умею, но с каких это пор копирование в памяти стало более медленным чем чтение с диска?>>сохранятсяХотя всё ясно
>>904718Ты дурак? Зачем ты эту хуйню пишешь?
>>904771Во всём. По жизни.
>>904211А что у него достойного, кроме 2 exceptional книг?
>>904774>>904755>>904754Я вернулся. Так вот еще чего могу добавить. Это случается, когда я делаю двумерный массив. То есть с обычным такого не происходит. Все равно, спасибо за ваши версии)
>>904875Все.
>>904771Какая связь? libevent это про обработку событий, а не про сокеты.
>>904887Это случается не из-за того что ты делаешь двумерный массив. Это случается из-за того, что ты образуешь огромный литерал задавая первые его элемент.Когда ты напишешь char value[max] = { 'a', 'b', 'c' } размер файла будет пропорционально велик. Дело в том, что задавая таким образом массив ты говоришь: хочу литерал, первые три байта которого - 'a', 'b', 'c', остальное заполните нулями. Это будет статический блок памяти, который должен быть загружен при запуске программы. Храниться он в data-блоке. https://en.wikipedia.org/wiki/Data_segment
Есть некий банковский софт на джаве, насколько есть смысл его переписывания на С++ и переезд на опенсоурс стек? Вывод интерфейсов нужен на веб и гуй. В результате перехода понизится стоимость поддержки, т.к. стоимость джависта и С++ разные, тем более ничего изобретать не нужно будет после переписывания, мелкие изменения и дополнения. На порядок повысится производительность системы. Интересно что скажете по делу.
Теперь понял. Спасибо за объяснение.
>>905036С плюсовиками которые будут стоить меньше джавистов перформанс только упадет, из каждой пизды будут лезть баги и скорость разработки упадет ниже твоего айсикью.
>>905042>из каждой пизды будут лезть баги проблема пиздотечей все еще так остро стоит?
>>905052Когда ты набираешь лоу квалифаед шит готовый работать за еду и твой язык не подтирает им зад — это вообще меньшая из проблем, учитывая что раньше все работало на жаве и рамы хоть жопой жри.
>>905055>лоу квалифаед шит готовый работать за едукто сказал что за еду?
>>905060Ну, ты же на полном серьезе считаешь что стоимость программиста зависит от языка, а не решаемых задач, и что плюсовики обойдутся дешевле. Так вот те что обойдутся дешевле — никогда не отобьют даже сотой части денег вложенной в ту же жвм, которая тебе достается халявно.
>>905060Потому что под нижней планке зарплаты работать пойдут разве что байтоебы с заводов (та самая часть рынка плюсов, которая опускает показатель средней зп), у которых развитие остановилось на "ой бля битмаска битмаска не выровнять сука блять блять классы это оверхед нахуй rtti я все наебашу на юнионах всего-то за пару дней".
>>905036Учитывая популярность джавы я сильно сомневаюсь, что джавист дороже равного по скилу плюсовика. Рыночек насыщен.
>>905036>банковский софт>транзакции, базы, CGI, веб, хуеб>c++Чтобы это работало и не рассыпалось придется искать плюсовиков значимо более дороже средних жава-сеньеров. Плохая затея. Но перфоманс вырастет, да, в теории.
Анончики, такой вопрос встал. Уже достаточно долгое время упарываюсь программированием на крестах на работе, естественно, окромя СТЛ наигрался уже с кучей фреймворков, но, мне кажется, что меня эта рутина уже конкретно доебала. Думаю начать оттачивать архитектурные навыки (ну знаете, архитектура программного обеспечения и все такое, молодое направление и вся хуйня). Стоит ли оно того, анончики, или нет. Я понимаю, всяко эта хренотень впоследствии окажется полезной (рассматривать структуру ПО сверху, уже прикидывать что и какой "скелет" (слеш) паттерн можно применить), но стоит ли в нее прямо таки упарываться (читать хуевы кучи книг и разбирать примеры), или все-таки это лажа в роисси мало популярная?
>>905757> архитектура программного обеспечения и все такое, молодое направление и вся хуйняС каких пор оно молодое? Думаю стоит почитать банду четырех, рядовому программисту точно пригодится, проектировщику наверное тоже.На счет популярности профессии не скажу, в крупных компаниях с большими проектами точно есть.
>>904695хули вы сразу асинхронку пишите когда вам нужен "простейший" http сервервам же не осилить это говно
Анон, установил Mingw, например: *.cpp у меня находится в C:\folder, это мне нужно в консоле путь прописывать? А как в линукс? просто в директории /houm сырцы оставлять? или тоже прописывать путь? Подскажите книгу чтобы в ней про Gcc ключи и про утилиту make можно было почитать, на русском
>>904695asio
>>905811Про паттерны начитался уже, в том числе эту книгу тоже. Думаю, грызть или нет уже более специфичные области проектирования (конкретно разбиение на системы, подсистемы, виды, документирование и прочее и прочее), несмотря на то, что это полезно в любом случае, не хотелось бы тратить свое время впустую.
>>906205На линуксе тебе никаких MINGW устанавливать не нужно. Там GCC и G++ идут по дефолту при установке. В том же /home. создаёшь папку, например ~/home/workspace/cpp. Далее выбираешь в консоли эту папку (необязательно, но удобно), на Ubuntu команда cd /workspace/cpp. И компилируешь g++ main.cpp
>>906205Не слушай этого >>906312, он пиздит. Либо специально, либо нихуя не знает.
>>906312>>906325Разобрался, в основном встречал gcc, интуиция подсказывает использовать его
>>906329Хотя Торвальдс критиковал версию 4,9, на линуксе стоит 4,9,2 на винде 5,3, вот если можно было обновить в линуксе до более новой версии как например youtube-dl -U, было бы здорово
>>906331Пиздец, как ты в линукс забрался с неумением компилировать. Там тебе достаточно один аргумент указать при конфигурации (а именно --prefix, чтобы не серануть мимо) и собрать гусей. Что может быть сложнее-то?!
>>906331> на линуксе стоит 4,9,2Поставь себе дистрибутив посвежéе.
2 вопроса. Вопрос первый: слева на картинке 2 ситуации. Почему ситуация Б легальна, а ситуация А уже сообщает об ошибке памяти. Я попробовал сделать new int [26], тогда максимальное число значений массива стало 29. Компилятор gсс/g++.Второй вопрос: можно ли другим способом динамично добавлять объекты во время работы программы? То чем я сейчас пользуюсь на картинке справа.
>>906359Ужас какой-то. Используй std::vector например
>>906365Я по книжке учусь, векторы после new и delete идут. Вроде говорят, что векторы умнее массивов, но я пока с ними даже не сталкивался.
>>906366А вот про ситуации А и Б можно тут почитать http://ru.stackoverflow.com/questions/297649/%D0%9C%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D1%8B-%D0%BD%D1%83%D0%BB%D0%B5%D0%B2%D0%BE%D0%B9-%D0%B4%D0%BB%D0%B8%D0%BD%D1%8B
>>906371Спасибо. Проверю другим компилятором.
>>906359>Почему ситуация Б легальна, а ситуация А уже сообщает об ошибке памяти.Нипочему, просто повезло с Б. Оба примера могут падать на другой машине/другом компиляторе. Тебе мама разве не говорила, что чтение/запись за границы маасива это UB?
Часик в сладость. Есть ли тут великие и добрые люди, которые пояснят мне, тупому студентику, как реализуются в С++ такие концепции ООП как композиция и наполнение.
>>906417http://e-learning.bmstu.ru/moodle/pluginfile.php/235/mod_page/content/17/OOP2.pdf
>>906417>> наполнениеВпервые слышу, может ты перевел что не так>> композицияЭто же паттерн
>>906427у меня в лекции написано так:Наполнение - количество объектных полей может меняться от нуля до достаточно больших значений (реализуется с помощью списков)
>>906425спасибо, чекну
>>906432Странные названия. Я больше знаком с агрегированием и композицией. Только в твоих терминах агрегирование - композиция, а композиция - наполнение ("мои" термины перед дефисом). Если кратко, композиция подразумевает такую связь объектов, при котором один объект (родитель) становится владельцем другого или других (дочерних). При уничтожении родителя уничтожаются все дочерние объекты.При агрегации один объект (родитель) лишь хранит другие (дочерние), но не является их хозяином, то есть при уничтожении родителя дочерние объекты не уничтожаются, в отличии от агрегирования.Подробнее можешь посмотреть тут:https://ru.wikipedia.org/wiki/Агрегирование_(программирование)
>>906436Бля не то написал, видимо. ЩАс читанул пару абзацев из той методички и понял, что ошибся с терминами.
>>906413Говорила. После того как это заработало я полез в гугл. Потом сюда. На винде это не заработало совсем. Ну раз так неправильно, то делать так наверное не стоит.
Почему у меня программа вылетает с ошибкой, если я вызываю delete[] для массива посреди main(), не вылетает при вызове того же в другой функции, не вылетает при delete указатель?
>>906570Код в студию, предсказатели, гадалки и шаманы в отпуске.
Откуда взялся этот адрес? Рандом? Это адрес в виртуальной памяти? Ниже упомянут что для mov нужен адрес в реальной памяти. Разве есть какаята проблема с переводом из виртуальный в реальную? Нужно же просто знать таблицу страниц виртуальной памяти. Она всегла есть независимо от того какую программу запускать.
>>906587Пик забыл
>>906586Тут не в коде дело, но сделал наглядно: http://ideone.com/MEjyN0Тут даже видно, в какой момент всё ломается. Почему так?
>>906657delete можно применять только к указателям возвращенным new. Установить указатель на случайную ячейку памяти и заюзать туда delete нихуя не даст нормального.
>>906663int* arr = new int[3];Это, по-твоему, указатель на случайную ячейку памяти? Точно такой же указатель "на случайную ячейку памяти" есть в f(), только там он нормально удаляется.
Понял, в чём тут была ошибка. Мой косяк.
Чего не работает? Можно как-то в рунтайме тип переменной определить? Теперь де всякие авто есть и тому подобное. http://ideone.com/e2wQbn
>>906693У тебя переменной b не существует после выхода из if else. Можно сделать указатель на void, а в if else выделить память нужного типа но мнекажется эта хуйня какая-то
>>906696Всё. Понял как сделать. Код писать не буду т.к. с телефона.
>>906587>Откуда взялся этот адрес? Рандом?да, так линкер положил. но можно задрочить линкер, чтобы складывал по определенным адресам>Это адрес в виртуальной памяти?да, очевидно. адресами в реальной памяти заведует только меморименеджер в ядре>Ниже упомянут что для mov нужен адрес в реальной памяти. Разве есть какаята проблема с переводом из виртуальный в реальную? Нужно же просто знать таблицу страниц виртуальной памяти. Она всегла есть независимо от того какую программу запускать.wat
>>906927Ну там не совсем рандом. 0x8048 это не рандом
>>906587> Откуда взялся этот адрес? Рандом? Если ты про 0x8048470 то там (скорее всего) будет именно такое число, но само по себе оно взято произвольно. Возможно там есть какая-то кулстори почему получилось именно такое число - но по сути оно случайно.> Ниже упомянут что для mov нужен адрес в реальной памяти. Разве есть какаята проблема с переводом из виртуальный в реальную?С этим ебется ОС. Программа оперирует с виртуальной паматью, так как будто это реальная - определить что ей подсовывают именно виртуальную память она может только по косвенным признакам (например похожесть адресов выделенной памяти при каждом запуске).
>>906587>Откуда взялся этот адрес? Рандом? Аллах так пожелал.
Помогите.
>>907306> 2015> CD-ROMЯсно.
>>907306Скачай и установи
>>907306Попробуй Haskell Platform установить
>>907314
В шапке все ссылки протухли:(
>>907449Там написано что делать. А обновлять — мне лень, если есть желающие помочь покидайте свежих ссылок.
Хули тут так тихо?Когда 17 стандарт запилят?
>>908252В 2020 заходи.
>>908252ты сначала с лямбдами из 14 стандарта разберись
>>908329[]<>(){} разобрался.>14 в 2к17-мВ каком-нибудь gcc 8 уже наверное все потенциальные фичи реализованы
>>908340https://gcc.gnu.org/projects/cxx-status.html#cxx1zhttp://clang.llvm.org/cxx_status.htmlВ 7-м гцц уже все есть кроме 1-й фичи, а в последних шлангах почти все есть.
>>907314Будут ли в будущих стандартах выпиливать ненужное гавно?
>>908351>>908401
>>908401Бббудут!
Когда завезут модули?
>>908449>Когда завезут модулиникогда
>>906278Архитектура познаётся только на практике. Книжки грызть не имеет смысла, потому что в этой области они мало что имеют общего с реальность.
>>908448Нет.>>908449Не раньше стандарта двадцатого года. Именно потому что не хотят выкидывать старое говно.>>908532Ты что! А как же котик и собачка унаследованные от животного????
>>904724Ну, кто там жаловался, что работать за еду не будет?! Пюрешка с сиськами! Налетай!
>>908536Для рашки это хороший вариант для одиночки, если еще общагу прилагают.Если по еде и жилью обеспечен, то считай ты успешен. 5к как раз на одежду хватит.
>>908555Это скорее всего без жилья.Когда искал работу видел вариант за 4к - в местной областной больничке электротехником, лампочки менять, проводку, и т.п.Но 4к - этого даже на жилье не хватит, а свое жилье больничка не предоставляет. Не говоря уже о питании.И как там работать предлагают?Либо тратить 3к на еду и жить на улице, либо оплачивать коммуналку этими 4к и питаться святым духом.ИМХО дворником за 8 выгоднее - можно и квартиру оплатить и еду. Но на одежду уже не хватает.И вот как с такими ЗП выживать?
>>908560>И вот как с такими ЗП выживать?Очень просто
>>908567Дык это хымик. А чо делоть математику?
>>908536А я б за пюрешку с сосисками поработал. У меня как раз уровень знаний C++ подходящий: две прочитанные книги. А так хоть опыт какой.
>>908571Для матем атика есть биржи, где можно нехило намахинировать.Для экон омика есть черная бухгалтерия.И т.д.
>>908401В 17-м уже выкинули помеченное в 14-м бумажкой deprecated
Какие актуальные на данный момент GUI существуют?
>>908607Qt
>>908607Mate
>>908589Подробнее можно?
>>908778http://www.cplusplus.com/reference/memory/auto_ptr/deprecated видишь?
Когда завезут сериализацию?!
>>908778http://stackoverflow.com/a/38060437
>>908800Сразу после того, как деление на 0 и обращение по нулевому указателю станет defined behaviour
ПОСТАВИЛ CLION@УДАЛИЛ
>>908637GTK же.
>>908607Нет ни одной.
>>908607онли QT
>>909051>>908902
Нужно сделать стрим скриношотов, отправляя по TCP;Нужно это делать быстро, поэтому решающим фактором можно считать размер изображения, поэтому нужно сделать скрин, сжать его, засунуть в буфер и отправить;когда я использую https://msdn.microsoft.com/en-us/library/windows/desktop/dd183402(v=vs.85).aspx , на выходе получается 8 мб, причем если пересохранить любым редактором в .jpg размер будет 300 кб (!) без существенной потери читаемости. Нагуглил только класс CImage, который не включен в инклюды gcc.Все остальные предлагают пересылать все 8 мб.
>>909269Берешь ffmpeg, заворачиваешь стрим на него, он работает быстро, убирает избыточность, сильно снижает битрейт практически без потери качества. На другой стороне разворачиваешь стрим любым видеоплеером.Это выгоднее, чем пережимать покадрово в жипеги или стримить битмапы. И велосипеды не нужны - все уже готовое.
>>904165 (OP)Хочу перекатиться из пхп в си ++. Какой стек и какое приложение порекомендуете сделать в качестве хоум проекта для джуна?
>>909339это мамкин хакер, он очередной ратник пишет, а ты ему ffmpeg предлагаешь, кек
>>909387конпилятор
ЗАПИЛИТЬ КОМНАТНЫЙ СЕРВЕРНЫЙ ПОЛИМОРФИЗМКак на си или си++ реализовать полиморфизм кода, чтобы функции каждый раз компилировались по-разному? Есть ли для этого какие-то средства метапрограмминга? Например, чтобы вместо вызова NtMapViewOfSection генерировалось__asm nop__asm nop__asm xyntacall NtMapViewOfSection__asm govno
>>909413Шаблоны и макросы чем не подходят?
>>909339Заебатая хуйня, для вебки то, что нужно.То есть, за одну итерацию я беру битмап, хуярю однокадровое видео из этого битмапа, а с другой стороны воспроизвожу по одному видео за пакет? Это прокатит?>>909406Если все понимаешь - почему бы и не подсказать, я же не платину спрашиваю, а вполне конкретные вещи.
>>909425>ШаблоныКаким образом их можно использовать для того, чтобы сделать полиморфизм кода?
>>909456Самым прямым. Шаблоны - по определению полиморфизм. Ты объясни по-человечески, что тебе надо?
>>909515Он хакир и хочет самомодифицирующийся код, как под досом.
>>909518Пусть на форте пишет - там такое с полпинка делается.
Хочу в целях самообразования написать простенький тетрис. Какая библиотека лучше подходит для вывода простенькой графики а-ля разноцветные квадратики?
>>909603Если что-то нормальное нужно то SFML, например, там даже вроде книга есть с примером разработки игры. Если тебе совсем просто попробовать то можно прямо на форме рисовать в Qt или VS - но будет выглядеть как гавно, хотя у них там вроде как есть двойная буферизация, но даже тетрис они уже не тянут (так как не предназначены для этого). Но попробовать можно.
>>909523Проще снять защиту от записи со страниц с кодом, чем об стековое говно руки выкручивать.
>>909648>Проще снять защиту от записи со страниц с кодом, чем об стековое говно руки выкручивать.Тогда тебе придется выкручивать руки об голый асм-говно, а то и машкоды вручную пердолить. Форт гораздо удобнее.
>>909659>Форт гораздо удобнее.> стековая машина> удобнее регистровойСпс паржал.
>>909671Форт удобен как макроассемблер плюс маленький и простой рантайм. Стековая машина удобнее регистровой просто без вариантов, поэтому ее в каждую первую ВМ и пихают.
>>909675> Стековая машина удобнее регистровой просто без вариантов, поэтому ее в каждую первую ВМ и пихают.Код для этих ВМ пишут не руками, а компилятором.Для компилятора стековая машина удобнее, для человека — нет.
>>909681Ебанутая какая-то у тебя логика.Если так посудить - давно под все машины код пишут не руками, так какого хрена везде не стековые машины? Конпеляторам жи удобнее
>>909694>Ебанутая какая-то у тебя логика.Нет, у тебя.Питоновская VM писалась создателями языка чтобы им было проще компилировать в этот байт-код.Аналогично JVM затачивалась конкретным создателем компилятора под для упрощения компиляции определённого языка.И т.д.>Если так посудить - давно под все машины код пишут не руками, так какого хрена везде не стековые машины? Конпеляторам жи удобнееУнылое передёргивание.
>>909694>Если так посудить - давно под все машины код пишут не руками, так какого хрена везде не стековые машины? Конпеляторам жи удобнееОчевидно потому, что создатели реальных машин руководствуются удобством компиляции далеко не в первую очередь.
>>909681>Для компилятора стековая машина удобнее, для человека — нетАллокация регистров - NP-полная задача, на решение которой требуются вычислительные ресурсы, не важно машина их использует или мозг программиста. Плюс форт обычно не чистая стековая машина, почти во всех реализациях есть переменные. Кроме того стеков два, и использование стека возвратов для временного хранения значений значительно уменьшает стековую акробатику. Не говоря о том, что модель с двумя стеками предлагает гораздо более высокий уровень абстракции, к тому же легко воспринимаемый человеком, в отличие от асма с регистрами.Для компилятора удобнее не стековая машина, а SSA или CPS, по которым можно сразу делать кучу оптимизаций.
>>909722>Для компилятора удобнее не стековая машина, а SSA Спс паржал ещё!Если для компилятора удобнее SSA, почему же clang выплёвывает LLVM-код не в SSA-форме, а с кучей ячеек памяти, куда по 100 лишних раз пишутся и откуда читаются данные? Только mem2reg-пасс LLVM-а превращает этот ужас в SSA.Почитай http://llvm.org/docs/tutorial/LangImpl07.html , что ли.
>>909722>Аллокация регистров - NP-полная задача, на решение которой требуются вычислительные ресурсы, не важно машина их использует или мозг программиста. Прадалжаю дико ржать. Если неважно, использовать машину или мозг, зачем вообще машины используют для решения задач?
>>909753>почему же clang выплёвывает LLVM-код не в SSA-форме, а с кучей ячеек памятиПотому что clang и сишка. LLVMу-то полюбасу удобнее нормальный SSA принимать.>>909755>зачем вообще машины используют для решения задач?Ты тред читаешь вообще? Пельмень вверху >>909681 считает, что под регистровую машину (асм) человеку удобнее писать, чем под стековую (форт), что явная чепуха.
>>909780>Потому что clang и сишка.Итак, ты сам опроверг своё утверждение, что компилятору удобнее производить SSA-код.
>>909722> Плюс форт обычно не чистая стековая машина, почти во всех реализациях есть переменные. В большинстве VM есть переменные и инструкции вродеLOAD, которые снимают с вершины стека адрес и вместо него кладут значение.> Кроме того стеков дваНа асме можно написать библиотечку-реализацию стека и завести себе хоть 500 стеков.
>>909782Ты с логикой дружишь вообще? Объектный код делает LLVM, он компилятор, ему удобнее SSA. Clang - транслятор из сишки в формат LLVM, он делает как умеет, с аллокациями на стеке, в надежде, что LLVM дальше все разрулит.
>>909785>На асме можно написать библиотечку-реализацию стека и завести себе хоть 500 стековА на форте можно написать реализацию асма, и завести себе хоть 500 ассемблеров. Суть в том, что с двухстековой машиной работать ничуть не менее удобно, чем с регистрами в асме.
>>909786>Ты с логикой дружишь вообще?А ты, долбоёб? Речь шла про то, что создатели язычков высокого уровня запиливают под них стековые VM, т.к. под них крайне легко комилировать: высрать код для стековой машины можно просто правильным обходом AST (тут я слегка утрирую, конечно, но в общем это верно)Ты пришёл и начал тут пиздеть что высирать удобнее не код для стековой машины, а код в SSA-форме и за сей наглый пиздёж был немедленно обоссан.SSA удобнее для оптимизаций, но компилировать в SSA это pain in the ass. Понял, быдлан?
>>909792Я говорил, что компилятору удобнее с SSA или CPS работать на входе. Компилятор - тот, кто из промежуточного представления машинный код делает. Так ясно?Олсо разницы во что выводить, SSA или стековый язык практически нет - они переводятся друг в друга элементарно.
>>909722А вот это уже аргумент.Действительно, задача распределения данных по куче регистров - очень ресурсоемкая задача. Потому все эти gcc и тормозят.Для стековых машин конпеляция быстрая и простая - регистр всего 1-2, причем с накоплением, знай себе пихай да напихивай.Но это и минус: когда у тебя много регистров, можно совершить значительно больше оптимизаций.Регистр позволяет банально не выгружать данные во время операций, сохраняя нить исполнения (нить вычислений одних и тех же данных) в тактовой доступности (на больших чипах полтакта).Т.е. регистры позволяют быстро и дешево переключаться между несколькими нитями исполнения одного потока, не трогая кэши и память, работая таким образом сверхбыстрым буфером. А иногда и распараллеливая нити исполнения: многие операции работают сразу с несколькими регистрами параллельно, фактически параллельно выполняя операцию над несколькими нитями исполнения - тут вообще кратный рост скорости, если нити данных грамотно свести в такие регистры.Зависимость тут походу нелинейная: быстрая оценка говорит что каждый следующий регистр ускоряет код больше, чем предыдущий.Но регистры стоят очень дорого.За каждым регистром скрывается сотня переключателей и шин. Все это ест много энергии, снижая энергоэффективность, и понятно, сильно ограничивает тактовую частоту - шины получаются намного длиннее, чем необходимо в случае одного регистра.Стековые машины этих недостатков не имеют: они просты, миниатюрны, энергоэффективны, могут позволить себе бОльшие частоты, и к тому же дешевы. Их можно клепать тысячами на той же площади, куда влезает одна регистровая.Но уровень оптимизаций для них ограничен - код будет исполняться медленнее, чем на регистровых машинах.Т.е. тут война параллельного кода с последовательным: стековые машины хорошо работают с параллельным кодом, но плохо переваривают последовательный, за счет того что последовательный код для стековых машин сложнее оптимизировать и распараллелить.А т.к. большая часть кода таки последовательная, регистровые машины в большинстве ситуаций получаются более производительными, чем стековые. За счет этого и живут.А долгая и сложная конпеляция, дороговизна, сложность, низкая энергоэффективность - необходимая цена, которую приходится платить за производительность.Где важнее энергоэффективность, надежность, стоимость или много параллельного кода - там будут играть стековые машины.Но с определенного количества исполнительных устройств (операций), которые удлиняют шины, усложняют, удорожают, снижают частоты и энергоэффективность стековых машин, опять начинают играть регистровые машины.Т.е. стековые машины пригодны только там, где есть еще и ограничение по исполнительным устройствам, количеству команд.Для слишком большого количества команд пилить стековую машину неэффективно, и проще запилить регистровую, она выйдет примерно той же сложности +/-, зато появится возможность поднять уровень оптимизаций и ускорить код.В продаже есть вот какие вкусные стековые машины:http://www.linux.org.ru/forum/development/5472606https://geektimes.ru/post/133291/https://geektimes.ru/post/134057/20 баксов, 1Вт, 144 ведра, 96 миллиардов операций в секунду. Казалось бы: конфетка!Но! Оперативка и пзу по 64 ячейки на ведро, т.е. эффективность сильно ограничена, программы маленькие, а данные придется гнать потоком через все ведра, не задерживаясь - памяти ни подо что просто нет.Инструкций всего 32 - большинство операций придется расписывать как микрокод, разбивая на десятки и сотни шагов.Такая вот эффективность. 96 гигаопс/с идут коту под хвост: штука эта пригодна только для очень узкой группы потоковых алгоритмов, и только там, где нужна энергоэффективность - на большинстве алгоритмов эти 96 гигаопс/с выйдут медленнее чем 4 гигаопса десктопного одноядерного интела: интел имеет кучу регистров, кучу команд, кучу исполнительных устройств, кучу кэшей/оперативок/пзу, плюс для него оптимизации последовательного кода намного дешевле.Такие дела.>>909753>почему же clang выплёвывает LLVM-код не в SSA-форме, а с кучей ячеек памяти, куда по 100 лишних раз пишутся и откуда читаются данные?Потому что так дешевле и удобнее.Программа - это граф потока данных и команд, переменные - узлы.Конпеляция - сжатие графа. Попытка свести количество переменных к количеству физических регистров.Чтобы грамотно (оптимально) сжать граф по ширине, нужно перебрать миллионы конфигураций графа. Неграмотно можно сжать дешево, но толку от этого, понятно, ноль.И чем меньше регистров, тем дороже такое сжатие, труднее сделать это эффективно, чтобы не замедлить программу.Поэтому выгоднее сжать граф чуть-чуть - до сотен и тысяч регистров. Просто убрать избыточность, самыми простыми и быстрыми методами.А далее пережать уже к формату конкретной машины - не забывай что LLVM все сводит к формату виртуальной машины, который можно перегнать к любому формату физических машин.
>>909799Вот еще более наглядная ссылочкаhttp://www.kit-e.ru/assets/files/pdf/2011_11_111.pdf
Недавно узнал, что я писал не на C++, а на си с классами. Думаю, такие же как я все после вузов. Как мне быть в мейнстриме, тыкать stl, везде использовать шаблоны и всякий boost?
>>904737В мапе один аргумент - ключ, другой - значение . Можно сделать map<int, tuple<int, string, char, float>>
>>904737variant
Нужно ввести число. Потом нужно проверить, введено ли число вообще, и если нет - закончить алгоритм. Как это реализовать? Предполагаю, что через string, но как тогда перевести string в int?
>>910469Если что-то простое то читаешь через std::cin и проверяешь на failbit и badbit. Проблема с std::cin что если нет четких ограничений на ввод (например - или инт или нахуй) то нужно много попыток чтения делать. Если производительность важна, то там да, читаешь в строку потом парсишь. Есть atoi, atof и их друзья.
>>910494Все очень простое. Буквально два варианта: пустая строка или число. Если строка пустая, то алгоритм заканчивается, если там число - string переводится в int. Возможность букв не учитываем хотя они вроде все равно в int не сконвертятся. Получается, нужно написать getline(cin, stringname), потом сделать проверку на пробел на первой позиции int n=-1; n=stringname.find(' '); if (n>-1) break;, потом через atoi переводить строку в int. Правильно?Пойду гуглить atoi.
>>910502atoi при ошибке возвращает ноль, так что хуй поймешь ошибка там или просто ввели ноль. Бери stoi, оно исключение бросает.
>>910509Понял. А как запилить проверку на пробел? stringname.at(0)==' ' не детектит.
>>910513isspace
>>910494>>910509>>910515Спасибо, пошел разбираться.
Пичёт от CL.exeПростой кодец: http://codepad.org/GWbINr9gГцц компиляет нормально. А вот cl.exe Хуюшки:$ cl 1.cppОптимизирующий компилятор Microsoft (R) C/C++ версии 19.00.24215.1 для x86(C) Корпорация Майкрософт (Microsoft Corporation). Все права защищены.1.cpp1.cpp(14): error C2059: синтаксическая ошибка: ;НО, ЕСЛИ РАЗВЕРНУТЬ МАКРОС - ВСЁ НОРМ!!111Чё за дичь? cl.exe не умеет в многопроходность? Как научить?Кто нибудь сталкивался?
Где такой же экзамен сдать онлайн и бесплатно? Просто чтобы вписать в портфолио и показать что я кресты знаю.
>>910639Нахуй такое делать?
>>910709это код от Sun, я просто хочу собрать егоОни наркоманы
>>910639Це пиздец, но я пофексел: http://codepad.org/DMAwf0U1Банально вынес 0 в макрос и стало норм. Какой-то баг штудийного конпелятор -__-
>>910664https://www.upwork.com/tests/1012?pos=23
>>910776Где кнопочка начать?
>>910787На месте
>>910794Пикча отвалилась
>>910796В другом браузере её тоже нет. Адблок выключен. Зас попробую зарегаться. А это норм тест? Не слишком лёгкий? После прохождения можно будет хвастаться что я кресты знаю? А если я там зарегаюсь, тест пройду, а работать не буду? Результат не аннулируют?
>>910806> А это норм тест?> Не слишком лёгкий?> После прохождения можно будет хвастаться что я кресты знаю?> А если я там зарегаюсь, тест пройду, а работать не буду?> Результат не аннулируют?Хуй знает, пройди, расскажешькнопка появляется после регистрации
>>910811Плохой тест. Ответил не на все вопросы, время не вышло, а он завершился. Он ограничивает время одного вопроса двумя минутами. На некоторых вопросах где надо выбрать несколько вариантов можон выбрать только 1. В конце вопросов где надо поставить пропущенное слово в предложение он ставит знак вопроса из-за чего предложение теряет смысл. Вопросы тупо откуда-то скопипащены т.к. в начале одного из вопросов стоял его номер который не совпадал с тем что над постом и которого там не должно было быть. Есть не столько вопрос с неоднозначным ответом и примеры кода с неопределёным поведением. Были вопросы по си и по линуксу. В конце теста мне не дали сертификат. возможно из-за низкой оценки Пересдать можно через 10 месяцев. Детали посмотреть нельзя. Реквестирую другой тест.
Не до конца понимаю указатели. Ещё более-менее осознаю, что можно создать итератор по вектору, с каждой итерацией выдавая значение. itr указывает, например, на целочисленное, содержащееся в ячейке, но не само целочисленное. int p = &a, p указывает на адрес a.Но что мы делаем тут?struct A { double x;};const A a = new A{ 0 };Создаем структуру, а дальше идёт её объявление?
>>910845http://pastebin.com/iVDHptqLБлядь, имел ввиду вот это.
>>910845Динамическое выделение памяти. Не используй new, когда есть unique_ptr
>>910845>>910850Почитай о динамической памяти тут:http://itedu.ru/courses/cpp/cpp-dynamic-memory-allocationИ о умных указателях (с++11 и выше)http://archive.kalnitsky.org/2011/11/02/smart-pointers-in-cpp11/
>>910856Класс, спасибо.
У вас нет какого-нибудь чата с обсуждением где-нибудь?
>>910828Ну раз плохой тест, не прорабатывай заскриненные ответы, а жди пока подскажут хороший.
Какое нахуй кеширование строк в компайлтайме; ты сам то понял что высрал?Что за пиздец на 2 и 3 ОП-пике?
>>910828>Пересдать можно через 10 месяцевЧерез месяц же. Сдал его на 3.4 из 5. Считаю что для тупого ньюфага вроде меня это неплохой результат. Пойду еще какой-нибудь оттуда пройду.>>911026Это из прошлого треда
>>911026>Какое нахуй кеширование строк в компайлтайме; ты сам то понял что высрал?Я-то понел (что ето хэширование), а ты очевидно — ниет, вот и запеканус.>Что за пиздец на 2Отсылка к знаменитой цитате медведева, очевидно же.>и 3 ОП-пике?https://2ch.hk/pr/res/892147.html#903297
>>910664Бамп вопросу. Какие ещё тесты знаете?
>>911207http://www.quizful.net/job-role/junior-cpp-developer
Класс на аsio с сокета принимает пакеты. Нужно, чтобы пакеты сваливались в контейнер вне класса. Нормой ли в класс передать unique_ptr наверно указатель на контейнер? Или кривой подход? Как сделать правильно?
>>911830std::transform + std::back_inserterгыг
>>911830Передавать ссылки на какие-то внешние контейнеры не очень идея. Single responsibility же, вся хуйня. Если класс работает с сокетом, то он должен только работать с сокетом, а не управлять еще и масивом. Делаешь через наблюдение. Получив пакет класс рассылает своим наблюдателям сообщение что пакет получен, а они уже решают что с ним делать.Есть еще похожий на твой вариант, когда интерфейс реализован через внутренний контейнер. Тоесть у тебя асинхронный клиент (или сервер). В одном потоке твой класс принимает пакеты и складывает в свою внутреннюю (желательно не блокирующую) очередь. Рабочие потоки обращаются (через геттер, не напрямую) к очереди и вытаскивают оттуда пакеты. Но в таком случае на контейнер внутри класса, никаких внешних ссылок нет, внутренний контейнер просто используется для организации потокобезопасного интерфейса.Если тебе нужно что-то простое то твой вариант в принципе тоже ок. Только передаешь обычную ссылку на контейнер, и обзываешь это делегатом. Если в будущем функционала контейнера станет не хватать, то потом просто пишешь настоящего делегата с интерфейсом твоего контейнера (тех методов что реально вызываются в коде). Если все правильно делать, то прийдеться менять достаточно мало существующего кода. Смотря как написал конечно, если твой контейнер лезет со всех щелей приложения (потому что ты его всюду передаешь голого), то тогда настанут естественные пиздарики.
нахуй нужны d-поинтеры?
>>912156учись гуглить по ключевым словам типа "какая то хуйня use case"
>>912088а сишник сделает это все в одной функции через while со свичемкек
Ананасы, что лучше std::cout или printf?
>>912215printf(), причем по всем параметрам: от удобства и гибкости до, банально, скорости компиляции.
>>912156Для сохранения бинарной совместимости при изменении реализации.
>>912215http://fmtlib.net/
>>912241Чем оно лучше?
>>912241Щикарно. Что я делаю не так?
>>912263Предположу, что твой терминал должен быть определенного типа
>>912247Типобезопасность+удобная форматная строка>>912263Хлебаешь сперму.
>>912241fmt топчик, да
Аноны, на каком этапе обычно неосиляторы дропают с++?
Как обратиться к члену глобального объекта подобным образом?::(*object).variable;
>>912462::object->variable
>>912499Мне надо так как я написал.
>>912500*(::object).variable
>>912508Точнее так(*::object).variable
>>912509Работает, спасибо.
>>912263азаза
Пришло время разобрать говнокод.Говнокод сам себя не разберёт.Нужны знающие SFML и Box2DВ игре присутствует модель игрока. Суть в том, что при нажатии W игрок просто летит вверх. Эта проблема решилась просто проверкой вертикальной скорости y игрока перед следующим нажатием.if(evt.key.code == sf::Keyboard::W && playerBody->GetLinearVelocity().y == 0)А вот как решить проблему полёта при зажатии "A" или "D"? Проверять горизонтальную скорость не вариант. При зажатии кнопки, игрок просто летит в выбранном направлении.if(evt.key.code == sf::Keyboard::D)playerBody->SetLinearVelocity(b2Vec2(5.0f, 0.0f));А так же следующая проблема состоит в том, что при нажатии W+D или W+A игрок поднимается вверх, но влево-право не двигается.if(evt.key.code == sf::Keyboard::A && evt.key.code == sf::Keyboard::W)playerBody->SetLinearVelocity(b2Vec2(-50.0f, 50.0f));
>>912585Как уже говорилось в СЮ:в играх нажатия клавиш надо обрабатывать не в ивент хендлере, а в игровом цикле.Го в /gd/, там более уместно.
>>912585Держи структуру данных, где отмечаешь какие кнопки нажати (по инпут ивентам меняешь эту структуруру), в игровом цикле проверяешь структуру на предмет нажатых кнопок.
>>912585Ты неправильно работаешь с телами. Тебе, как правило, в ручную не нужно устанавливать скорости - с скоростями ебется движок, это его работа. Ты напрямую манипулируешь скоростями в редких случаях (например при инициализации объекта, если у него изначально должна быть определенная скорость). Ты должен работать с перемещением тел через ApplyForce и ApplyLinearImpulse/ApplyAngularImpulse. Если игрок должен подпрыгнуть - ты прописываешь ему импульс вверх. Движение влево/вправо - скорее всего сила направленная в нужное направление. Скорее всего потому что сила/импульс в некотором роде взаимозаменяемы - силу можно заменить последовательностью импульсов. Конкретный результат зависит и от параметров сцены, нужно пробовать разные варианты и смотреть что получается.
>>912633Спасибо анон. С помощью импульсов удалось решить последнюю проблему. Теперь осталась вторая, ведь персонаж летать влево-вправо не должен. Если вверх это решается простой проверкой вертикальной скорости, то как быть влево-вправо?
>>912738Что значит "персонаж летать влево-вправо не должен"?
>>912746Персонаж по нажатию W подлетает вверх (прыгает). И если зажать после прыжка A или D, то персонаж застынет в положении, и начнёт постоянно двигаться в сторону нажатой кнопки (A - влево, D - вправо), и по-чуть чуть падать на поверхность под действием гравитации.Мне нужно чтобы такого нельзя было сделать, так как так можно спокойно перелетать через дыры и препятствия, просто встав на самую высокую точку, на которую можно запрыгнуть.
>>912752Нужно с коллизиями разобраться. Нажатия кнопок A и D обрабатываешь только если персонаж стоит на поверхности. И застывать никто не должен, если ты не вручную скорость выставляешь. При нажатии A/D или силу прикладывай или периодически импульсами подталкивай.
Чем на машиином уровне отличаются невиртуальные/виртуальные/pure ? (сравнительно насколько много нужно сделать шагов для вызова функции)
>>912838Учиться надо во время семестра, а не на сессии.
>>912838Гугли v-table
>>912774Кстати вопрос: что лучше, ApplyForce или ApplyLinearImpulse? Последние доки по Box2D которые я нашёл были за 2013 год, и там даже нет упоминания булевого аргумента wake, который передаётся в этот метод.
>>912846Спасибо.Еще такой вопрос, возможно ли отслеживать вызовы из виндоконсоли и винапи функции?Знаю, что второе можно сделать http://www.rohitab.com/apimonitor , но не знаю как ? инжектить в виндодлл .Интересует именно момент между самим вызовом программы (или прямо перед ним) и местом, когда эта программа может почистить логи/прочее.>>912845Лол, если бы только мне подобные вещи рассказывали, а не как оптимизировать сборщик мусора.
>>912854Если тебе нужно постоянное воздействие на тело то используешь силу. Если короткое - импульс. А так-то они связаны между собой и фактически взаимозаменяемы (при дискретных расчетах). Сила - скорость изменения импульса точнее скорость изменения импульса равна сумме действующих сил. Силу можно представить как импульс который повторяется на каждом шаге. Импульс можно представить как силу которая действует только один шаг.
Вроде везде написано что альтернативные операторы (and, not, or...) в C++ уже доступны по умолчанию и не требуют включения заголовка <ciso646>, хотя у меня без включения заголовка альтернативные операторы не работают, можете что подсказать, у вас они работают?
>>913116>везде написаноГде написано?>уже доступны по умолчаниюГде доступны?И чем && || не устраивают?
>>913119В общем я думаю они только в Visual studio не работают.
Поясните зачем нужен виртуальный деструктор, вернее есть ли случаи когда его не делают?
Какую IDE юзать? VS не запускается, Dev-C++ имеет разъебанные заголовочные файлы, Code::Blocks не может найти компилятор при создании проекта. Присматриваюсь к Эклипсу, как он вообще?Что примерно я должен знать, чтобы хотя бы кодить джуном за еду?Заранее спасибо.
>>913161vim
>>913116>у вас они работают?Да.>>913119>И чем && || не устраивают?Ты бы ещё иероглифами писал.
>>913170>>913161Emacs на самом деле Qt Creator
>>913161Nano. Еще можешь посмотреть acme, оче годно.
>>913150> когда его не делаютЕсли при разработке класса решают что его не стоит наследовать (либо полиморфно использовать) то виртуальный деструктор не делают, чтобы сэкономить память и процессорное время. В STL много классов без виртуальных деструкторов - все контейнеры, например.
>>913171>Ты бы ещё иероглифами писал.Всю жизнь так писали и не жаловались.
Можно ли как-то сделать чтобы параметры функции могли принимать только чётные значения?
>>913203Нет. Проверять можно constexpr, а параметры ими быть не могут. Можно использовать параметр шаблона вместо параметра функции, но не думаю чт ов такой хуите может быть смысл.
Бля, аноны, выручайте. Уже час ебусь, понять, что тут за хуетень происходит, я не в силах:В общем, имеется кусок кода, вот по этой вот ссылочке http://pastebin.com/CNU0dZ4S . В общем-то, проблем, как мне кажется (во всяком случае, как мне казалось до этого времени), в нем возникнуть не может ну вообще никак. На обнуление указателя проверяю, в общем, вроде как, все ОК.Захожу, я значит, посмотреть, что тут, да как. И, вжух, получай SEGFAULT, петух (угадайте, пока что на какой строчке). В общем, если вы подумали про цифру 8, тогда я вас обрадую. Так оно и есть. Однако, меня беспокоит то, каким вообще макаром это произошло.Думаю, так так так, может какую хуйню творю (с чем черт ведь не шутит), захожу в отладчик. И что же я вижу там:>> layer : 0x16b7bf0>> m_terrainLayer : 0x16b7bf0Все как и положено, даже читает внутренние значения класса, однако, какая же великолепная картина предстоит перед моим взором - а вот вы хуй догадаетесь:>> tileSet : 0x1Какого черта. Почему она туда указывает?! Ладно, едем дальше, прохожу уже в этот самый "злополучный" метод, и что - а вот нихуя там, он просто возвращает protected-переменную. Все, ничего больше. Притом, что переменная внутри в нормальном состоянии, нихуя не 0x1, как это у меня пишется в отладчике каждый раз. Что за поебистика такая?! Или я в глаза ебусь...
>>913228Почему ты решил что проблема в языке? Может у тебя с фреймворком проблемы? Например ты неправильно проинициализировал переменную на которую указывает layer, и проинициализировал хуитой которую к текущему моменту уже удалили.
>>913233Нет. В том то и дело, что все нормально и в других местах у меня стоят ассерты на случай косяков обнулений.У кокоса автоматическое освобождение ресурсов в конце рабочего цикла при обнулении счетчика указателей на объект, но это все дело происходит еще до всевозможных чисток.Алсо, отладчик считывает область памяти, на которую указывает объект, в том числе и внутренние значения, только вот возвращается почему-то хуйня.
>>913235Вот лог GDB для понятности>>(gdb) step>>cocos2d::TMXLayer::getTileSet (this=0x1681a90) at /home/%USERNAME%/AndroidStudioProjects/Game/cocos2d/cocos/2d/CCTMXLayer.h:237>>237 TMXTilesetInfo getTileSet() const { return _tileSet; }>>>>(gdb) print _tileSet>>$3 = (cocos2d::TMXTilesetInfo ) 0x1681750>>>>(gdb) step>>PhysicsProcessorPrivate::setTerrainLayer (this=0x1679260, layer=0x1681a90) at /home/%USERNAME%/AndroidStudioProjects/Game/Classes/src/PhysicsProcessor.cxx:31>>31 if (tileSet) {>>>>(gdb) print tileSet>>$4 = (cocos2d::TMXTilesetInfo *) 0x1
>>913238Ну смотри. Я дописал к твоему коду еще хуйни, чтобы он запускался http://ideone.com/YKKUnW И твой код отрабатывает нормально. Следовательно проблема где-то в другом месте.
Снова привет программач.Собственно вопрос: есть ли кроссплатформенный вариант для того, чтобы получить список файлов? Вполне сойдёт какая-нибудь мелкая библиотека (но только не какой-нибудь Boost).
Какие в теории могут возникнуть проблемы при использовании в gcc/msvc либ, скомпиленных в msvc/gcc ?И есть ли разница в проблемах между .lib и .dll ?
>>913394Внезапно, именно boost.Ну или его младший брат poco
>>913439У тебя не слинкуется C++, ибо манглинг? Или этого тебе не достаточно?
>>>>913150Единственное зачем нужен виртуальный деструктор - это полиморфизм. Т.е. если ты будешь хранить объект ыпо ссылке/указателю на базовый тип. В этом случае тебе надо быть уверенным, что при delete разрушение начнётся с последнего потомка, следовательно деструктор должен быть виртуальным
>>913116Это ж old-way C-style операторы, не? Они как-бы есть для совместимости.
>>912445На разных. Самые упёртые неудачники - когда им при найме поводят хуями по лицу и скажут, что макака способна на большее.
>>913516У меня все линкуется, просто вспомнил, что когда-то использовал в Qt под mingw либы буста, скомпиленные в студии (boost::bind).И тут возник вопрос, существует ли этакая привязка, типо, скомпилил либы в студии - пользуйся в студии?
>>913543Там не к IDE привязка, а к компиляторам. https://en.wikipedia.org/wiki/Name_mangling
Программач, есть ли лучший вариант чем та китайщина, что я сделал?TinyXML2save.LoadFile("./saves/slot.xml");XMLElement saveNode = save.NewElement("Save");XMLElement slotNode = save.NewElement("Slot");XMLElement nameNode = save.NewElement("Name");XMLText nameText = save.NewText("");XMLElement dateNode = save.NewElement("Date");XMLText dateText = save.NewText("");XMLElement progressNode = save.NewElement("Progress");XMLElement scoreNode = save.NewElement("Score");XMLText *scoreText = save.NewText("");save.LinkEndChild(saveNode);saveNode->LinkEndChild(slotNode);slotNode->LinkEndChild(nameNode);slotNode->LinkEndChild(dateNode);slotNode->LinkEndChild(progressNode);progressNode->LinkEndChild(scoreNode);nameNode->LinkEndChild(nameText);dateNode->LinkEndChild(dateText);scoreNode->LinkEndChild(scoreText);save.SaveFile("./saves/slot.xml");
>>913251Короче, упростил код до безумия.>> auto map = cocos2d::TMXTiledMap::create(filePath);>> auto layer = map->getLayer("terrain");>> auto tileset = layer->getTileSet();Все равно tileset указывает на адрес 0x1. Притом, что map и layer в нормальном состоянии...
>>913715Пиздец.Видать то-ли CMake, то ли GCC блядствовали. Удалил папку сборки и собрал сново - и теперь заработало. Но ведь исходники не поменялись...
>>913721>Удалил папку сборки и собрал сново - и теперь заработало. Но ведь исходники не поменялись...https://www.youtube.com/watch?v=CA5tBKSccuw
Возможен ли геймдев с такого ide, как Dev++?
>>913940У меня как-то получается. IDE как IDE.Просто я с другими не работал никогда.
VS пишет: uuid не найден, как ему помочь его найти? Запускаю из консоли.
Мемоизация от слова мем.
>>913394Этот анон >>913512 тебя плохому научит, юзай https://github.com/cxong/tinydir или вообще fstat обертки для винды. Если у тебя в проекте до сих пор нет буста, значит он тебе не нужен.
>>914105Я этот ебучий буст пытаюсь уже целый день сбилдить. Пиздец.Анон, спасибо тебе за полезную либу.
Хочу вкатиться в программирование, но боюсь...
>>914131Нахуй тебе плюсы, это язык для бывалых боевых пидарасов, для спецназ-элиты, почти как 1С. Вкатись лучше в ПЕТОН.
>>914131>Хочу вкатиться> С++ тредОно тебе надо? Иди к жабоскриптерам лучше
>>914144>>914143Хочу писать свои игры, вот для чего. Но не на готовых движках, а хочу сделать простейшее говно, но понимать как оно работает и отталкиваться от этого.
>>914146Так бери и вкатывайся, хули ты боишься, она не сожрет тебя
>>914150Напиши тогда рогалик на питоне. ncurses все дела. Потом перепишешь на плюсах, если понравится.
>>914146Проиграл. Сам сейчас этим занимаюсь.
>>914151Зачем curses? Для рогаликов есть libtcod, оно и с крестами работает и с пайтоном.
>>914146Лол, да уж тож такой хуитой тсрадаю пизда нихуя не выходит уже год ебу плюсы опенгл, сложно
>>914146На, тогда, список литературы на лето, изучай:http://mrelusive.com/books/books.htmlhttps://github.com/miloyip/game-programmerКнижки с первой ссылки подустарели, но пусть будут.
>>914165да даже если брать по одной книге из раздела, то первую игру он напишет лет в 80
>>914146>но не на готовых движках>писать игры, даже не одну игру, а игрыТы болен. Освой Unity и не перфекционируй.
ну че, вкатывальщики, когда на собес? Опыт от 5 лет в области системного программирования и секьюрити ресерч (очень желательно желательно), Полное понимание архитектуры windows (x86/x64) и стека протоколов TCP/IP. Обязательные знания механизмов антиотладки, антиэмуляции, PE формата. Опыт реверсинга. Умение разбираться в недокументированном коде. Написание адекватного документированного кода. OS: Windows. Отличное знание архитектуры Win32 - объекты ядра, процессы/потоки, синхронизация, виртуальная память и адресное пространство процесса, механизмы IPС, code/DLL injection. Знакомство с книгами Руссиновича, Рихтера и другими профильными источниками. Понимание отличий Win64 от Win32, WOW64. Языки, технологии, библиотеки: С++, С++11, 386 assembler, MASM, FASM, STL, boost, Native API, Win API, BSD sockets, WinSock, CMake Отладчики, дизассемблеры: IDA Pro, OllyDbg, Immunity, WinDbg, Понимание remote debugging IDE и тулзы: VS 2013-2015, Subversion / Git, Redmine Возможность полной концентрации на достижении результата в реальные сроки, отсутствие отвлекающих жизненных проблем (дети, болезни и т.п.)Дополнительно: Знакомство с форматами файлов PE, COFF. Знакомство с разработкой драйверов, понимание отличий работы в kernel/user mode. Криптография - хэши, симметричные алгоритмы, public key cryptography, digital message signing.* FreeBSD, Linux, Shell scripting (bash, csh).
>>914212Поциент у вас рак Юнити головного мозга, срочно пройдити в хоспис для дальнейшего домирания, не мешайте здоровым людям.
>>914273Ищут ноулайфера который с 3х лет под спидами, ковыряет шиндоус и плюсы?
>>914273Одно радует что никого они ненайдут. Их бизнес загнется без такого важного человека, и на сео этой шараги повиснут многомилиардные штрафы за проебаные проекты. У него отнимут все его деньги хаты машины, жена бросит его отобрав еще часть бабла, постоянно будут обоссывать колекторы, и сдохнет в выгребной яме зимой набухавшись и замерзнув насмерть.
>>914273Забыл добавить зп 300к/cек
Вечер в хату.Кто-нибудь htmlcxx пользует?
>>914500>Кто-нибудь htmlcxx пользует?нет
Анон. Вот сижу, и туплю:Вот есть метод, выводит список файлов, и с этими файлами надо работать. Вот например надо вывести в какое-нибудь место название одного из файлов.Это мне весь вывод метода в массив закатать, или как?
>>914273Лол, это же я без пары пунктов.Только мне не впёрлись эти ребята
>>914165Cпасибо, попробую, правда ни на английском.>>914162А у тебя контактов или конфы нет? А то 1 всегда сложно и забросишь, а когда есть компания...
>>914563чувак, не пизди, умерь амбициипо требованиям им только руссинович подходит
>>914384ну да самом то деле какую проблему я вижу с этой вакансией:им надо уточнить, кого конкретно надо - кодера или реверсератак же надо уточнить, кодер нужен "ядерный" или все же это будет прикладник в юзерспейсетк универсальных людей нет, особенно под винду
>>914273Что за проект? Пишут ядерный руткит для ФСБ, чтобы ставить на компы подозреваемых в педофилии? Нахуя антиэмуляция, лол?
>>914707Я не собирался пиздеть или пытаться как-то похвалиться. У меня образование в сфере защиты информации часть с реверсом и подобным я знаю с университета, а работаю в ортогональной сфере, но в силу некоторых причин более или менее знаю шинводс кернелс
>>914728Т.е. понятно, что я не подхожу под эту "вакансию"> Опыт от 5 лет в области системного программирования и секьюрити ресерч (очень желательно желательно),
>>914728Сколько платят?
Прогаю в удовольствие на дельфиОчень надо Bullet physics, а под c# его никто не курит.Неужели кресты???...
>>914848Возьми кресты. Тут есть божественный Box2D.
>>914854>Box2DДык и Буллет есть и не пытайся тралитьВсё годное написано на крестах
Программач, поясни по хардкору за полиморфизм. Есть вот такой цикл:for (int i = 0; levelNameVector.size() > i; i++){tgui::Label::Ptr emptySaveTitle = std::make_shared<tgui::Label>();emptySaveTitle->setPosition(135, 92);emptySaveTitle->setTextSize(22);emptySaveTitle->setText(levelNameVector);gui.add(emptySaveTitle);}Его суть в том, что я получаю список имён, и каждый раз при проходе цикла рисую тайтл средствами одной библиотеки (надо ещё и положение менять при каждом проходе, да). Я подозреваю, что здесь нужно как-то генерировать название объекта каждый раз, но как - я не знаю.
>>914896Полиморфизм чего?
>>914901Ну как бы или класса, или функции. Нужно, чтобы экземпляр типа tgui::Label::Ptr имел уникальное имя. Я уже сам запутался.Сойдёт даже если просто будет добавляться счётчик к названию экземпляра при каждой итерации цикла.
>>914901всево))
>>914902Запихивай их в контейнер и не еби мозг
Такой код:class Mister{public: void foo(){}};class Proper: public Mister{public: void foo(int a){}};Если мы создадим объект Proper object, то вот так сделать нельзя: object.foo() . Вопрос : какого хуя? Почему компилятор не может просто пройти по базовым классам и выбрать подходящую по прототипу функцию.
>>914908Он может. Такая хуита называется перегрузкой. У тебя какой-то неправительный компилятор. Либо я тупой.
>>914906Можешь показать на примере? Даже если я функцию отрисовки в том цикле засуну в какой-нибудь класс.
>>914273>Полное понимание архитектуры windows (x86/x64)>ПолноеДальше не читал
>>914910>Либо я тупой.this
>>914914В принципе, можно было ещё почитать, и дропнуть после этого.>Умение разбираться в недокументированном коде.>>914915Поясни по хардкору тогда.
>>914908Тут перекрытие функций, а не перегрузка
>>914917Это понятно. Но они отличаются по набору параметров, какие проблемы поискать дальше по наследованию функцию с корректными параметрами?
>>914916Дальше совсем пиздец. Набрали в гугле реверс-инженеринг и покопировали разных слов
>>914918Это защита для множественного наследования. Так не было бы понятно, какую функцию с нужными параметрами тянуть
>>914273>отсутствие отвлекающих жизненных проблем (дети, болезни, друзья, тян)
>>914920Но для такой защиты можно сделать один класс виртуальным (Как-то так это делается)
>>914928Не ты не понял. Что будет по твоей логике, если я сделаю не виртуальное множественное наследование?
>>914930Сделай виртуальным. Его и придумали для решения этой проблемы
>>914933Ты можешь сделать не виртуальным, это не запрещено стандартом
>>914918СТРАУС выбрал такой способ поиска перегруженных функций - они рассматриваются только из одной области видимости (scope). Когда компилятор встречает функцию он начинает перебирать области видимости, начиная с самых узких, пока не найдет функцию с таким же названием. Потом, исключительно в этой области он ищет функцию с нужной сигнатурой. Ты можешь добавить в область видимости Proper все функции с именами foo из Mister дописав в public разделе объявления класса using Mister::foo;
>>914935Есть где почитать о том, почему он принял такое решение?
>>914954Design and Evolution of C++ же, офигеная книжка, читается как детектив и нисколько не устарела за 20 лет.
Есть приведенный ниже код, с помощью которого создается текстовый файл с числовой парой, заключенной в скобки. Как из текстового файла вывести в консоль только числа, разделенные пробелом? [CODE]#include "stdafx.h"#include <iostream>#include <fstream> #include <string> #include <vector>using namespace std;inline void keep_window_open(){ char x; cin >> x;}struct Point { double x; double y;};int main (){ vector<Point> inputVector;(3); vector<Point> outputVector(3); double x, y; for(unsigned int i = 0; i<inputVector.size(); i++){ cin >> x >> y; inputVector.x = x; inputVector.y = y; } ofstream ost ("C://log.txt"); for(unsigned int i = 0; i<inputVector.size(); i++){ ost << "(" << inputVector.x << " " << inputVector.y << ")\n"; } ost.close(); ifstream ist ("C://log.txt"); double number; keep_window_open(); return 0;}[/CODE]
>>915022Лол, часто тут такое?Мимо новичок С++ тредовВ наказание за то, что ты глупое безвольное создание, которое решило спихнуть свои задачи на других людей, потрать столько же времени на перепечатывание текста, сколько я потратил на твою программу.Код писал какой-то аутист. Не говоря о неудачных программных ходах, код в принципе не работал
>>915022В следующем семестре тебя отчислят, если будешь так же хуи пинать
>>915061>>915068Я только начал изучать плюсы. А код, вероятно, такой несуразный потому, что книгу, с которой я начал свое изучение для начинающих(Programming Principles and Practice Using С++ Строуструпа) и большинство приемов в решении задачи принадлежит автору книги как и задача.Если эти объяснения не оправдывают "кривоту" моего когда, то какие действия предпринять по отношению к учебному материалу и/или к себе?Что код нерабочий отправил, и в правду, я виноват.
Нахуй компилятор запихал мне эти исходники в исполняемый файл?
>>915389Это не исходники.
>>915402Ну я в курсе что этого в проект не писали, но это по определению исходники.
>>915407Исходники по определению в файле с исходниками, а не в исполняемом.А это тупо таблица символов.
Аноны, откуда у вас знания по стл и всему шаблонному программированию? Я в последнее время вкатываюсь в настоящие кресты от лабораторного си с классами, читаю гайды/приёмы на стек оверфлоу, буст и гайды буста, и у всех есть будто какое-то тайное знание, что прям заебись и сразу выходит годный код. Вы книжки из шапки читаете? Прям на ингрише? Меня заебывает моментально, например.
>>915411Джо Саттиса почитай
>>915389Вроде какой-то нехитрый флаг не использует символьную таблицу, заменяя своей. И это, наверное, отладочная сборка и нужна для гдб.
>>915411Меня тоже заебывать книжки, поэтому нужно писать что-то побольше, и нехватка всего этого сама придет
>>915409Нет. Исходники это то что предполагается некорректные исходники тоже исходники компилятор должен схавать. А этот код действительно исходник с++.>>915413Отладочная? А почему она по дэфолту?Что за таблица символов?
очень простой код http://pastebin.com/0qHgvFXjCodeBlocks и CLion используют один mingwниже сборка/размер/среднее времяCLion - debug -- 2001 KB -- 164.389 msCLion - release -- 1939 KB -- 143.948 msCode::Blocks - debug -- 2001 KB -- 162.209 msCode::Blocks - release -- 914 KB -- 142.278 msVS2015 - debug -- 76 KB -- 1463.76 ms VS2015 - release -- 15 KB -- 408.403 msКакого хуя в студии код выполняется в несколько раз дольше? Особенно сборка дебага, я думал, что 0 лишний поставил в количестве итераций.Какого хуя код из mingw весит столько, можно ли как-то этот размер уменьшить и чего там такого на 2 мб записано? Оптимизации?
>>915443Закладки со спайсом
>>915443>Какого хуя в студии код выполняется в несколько раз дольше?Оптимизатор делает сасай.>Какого хуя код из mingw весит столько, можно ли как-то этот размер уменьшить и чего там такого на 2 мб записано?Свой сирантайм и прочая гнутая залупа. Убрать зависимости/слинковатьтдинамически/ещё как-то отодрать их каким нибудь спермо-трюком, но работать не будет нигде.
>>915443Ну ты тестируешь время выполнения функции которая (скорее всего) зависит от реализации - естественно на разных компиляторах разное время. А размер скорее всего от того что VS код динамически слинкован с каким-то "c++ redistributable". Попробуй свои программки запустить на машине где нихуя нет кроме ос, если есть возможность и желание.
>>915426>А этот код действительно исходник с++.И что ты там видишь кроме типов и имён функций?
>>915411> Аноны, откуда у вас знания по стл и всему шаблонному программированиюПисал много программ.> Вы книжки из шапки читаетеЧитал только Липпмана, когда вкатывался в С++ лет 8 назад. Больше не откуда было черпать систематизированные знания или ответы на вопросы.Потом читал только на инглише всякие специализированные моменты>>915334Ты очень подходил под студента, который под конец семестра, просрав все сроки, начал делать лабы, начиная с первой.Твой вопрос был чрезвычайно подозрительным. Сложно поверить, что человек, который понял выходные файловые потоки, не смог написать ёлочки в другую сторону >>> СтрауструпЯ бы не стал с этим Страуструпом кувыркаться. Меня он в самом начале только напрягал, очень туго шло. Вот Липпман другое дело, приятно было читать.> какие действия предпринятьС практикой всё придёт, просто побольше писать программ.
Привет снова программач. Я опять выхожу на связь с очередной говнокодерской хуитой:for (int i = 0; levelNameVector.size() > i; i++){drawLevel->drawLevels(gui, window, i, levelNameVector); tgui::Button::Ptr levelButton = gui.get<tgui::Button>("selectLevel" + i);levelButton->connect("pressed", [&](){ loadGame(gui, window, levelPathVector); });}Создаю я значит объекты по общему указателю каждую итерацию, привязываю к каждому созданному объекту ивент по нажатию, но вот незадача:При нажатии на созданную кнопку, приложение крашится. В дебаге видно, что программа пытается обратиться к несуществующей функции. Выходит, что по концу каждой итерации loadGame() уничтожается нахуй. Собственно вопрос: как решить эту проблему?
>>915458Лол, я хз, конечно, но как насчёт вынести создание кнопки tgui::Button::Ptr levelButton за цикл?
>>915460Ну там создаёшь массив кнопок, который существует не только на итерации цикла, а всё время существования твоего меню.
>>915460И как ты себе это представляешь? Кнопок может быть дохера и больше.>>915463Массив кнопок? И к этому массиву обращаться? Сможешь пример сделать?
>>915464Cудя по твоему описанию и по твоему куску кода, с удалением > tgui::Button::Ptr levelButtonМожет происходить и удаление > [&](){ loadGame(gui, window, levelPathVector); }Хотя я пальцем в небо.> И как ты себе это представляешь?У тебя этот массив кнопок и так создан, я не внимательно просмотрел, если судить по> gui.get<tgui::Button>("selectLevel" + i);Объяви в этом же классе что-то типоstd::vector <tgui::Button::Ptr> levelButtons;И этот цикл вставь в конструктор класса. Ну или в любое другое место. Основной момент - проверить совпадает ли время жизни levelButton и твоей лямбды/коллбека.
>>915458tgui::Button::Ptr это shared_ptr. В конце итерации цикла levelButton удаляется нахуй.
>>915469>этот цикл вставь в конструктор классаТолько в вектор через пушбек, разумеется, добавляй. Ну ты сам должен понимать, что не просто стрл+С/V должен быть.
>>915464>И как ты себе это представляешь?std::vector <tgui::Button::Ptr> levelButtons;for (int i = 0; levelNameVector.size() > i; i++){drawLevel->drawLevels(gui, window, i, levelNameVector);tgui::Button::Ptr levelButton = gui.get<tgui::Button>("selectLevel" + i);levelButton->connect("pressed", [&](){ loadGame(gui, window, levelPathVector); });levelButtons.push_back (levelButton);}
>>915450Очень глупый вопросЧем мне нужно компилировать, чтобы код собирался на любой винде 2000-хр-..-10 без .dll.Помню тулзы от nirsofta больше 400 кб не весили, и запускались под любой виндой
>>915469>>915474Не совпадает, видимо.
>>915479Надеюсь, ты не прямо так вставил?>>915474
>>915477Вообще можно, залинковать все статически. Разве что с разными версиями системного апи могут быть проблемы. Кроме VS - у них там все сильно на CLI повязано, хотя может можно и как-то отказаться от использования. Про тулзы от nirsoft не знаю, но они там скорее всего агрессивно WinAPI использовали, тоесть много кода динамически линковано - просто что он в любой виндоуз должен быть. MinGW это какбы исключение. Он действует во вражеской среде, ему нельзя предполагать что у пользователя будут нужные библиотеки, поэтому он дохуя сует в екзешник. Я думаю если программу из >>915443 скомпилить GCC на линуксе, то у нее размер тоже будет небольшим. Если не линковать stdlib статически.
>>915486Ну, я это приблизительно так это все и понял.Вопрос был в том, чем компилить вин приложения и как собирать, чтобы везде запускалось. 2005й редист стоит даже у последнего васяна думаю. нужен даунгрейд студии, вопрос какой
Подскажите, как лучше всего циклически сдвинуть односвязный список, организованный структурами, на N элементов вправо/влево, может ему ввести один из параметров - индекс и сдвигать как будто бы это массив?
>>915491Нужен двусвязный список, и кроме указателя на голову списка, нужен еще указатель на конец. Потом или голову перемещаешь в конец, или конец в голову, смотря в какую сторону сдвигать.
>>915500А что односвязным ограничиться нельзя? Просто у меня в задании не фигурирует двусвязный.Там так сказано:Посредством структур реализуйте односвязный список для хранения окружностей. Обеспечьте следующую функциональность:добавить окружность в список;циклически сдвинуть список на N элементов вправо;циклически сдвинуть список на N элементов влево;сохранить данные в файле, считать данные из файлаИ еще, как думаешь, достаточно ли просто в начало добавлять элемент? Просто если есть функция, циклически двигающая элементы, то сортировать их по убыванию/возрастанию просто нет смысла
>>915481Нет, но я видимо не понял, что ты от меня хочешь. Или это так влияют 4 ночи за окном.Суть собственно в чём: TGUI - библиотека-надстройка над SFML.Имеется окно SFML, в котором идёт отрисовка и прочее. В этом окне создаётся контейнер TGUI, который у меня зовётся gui, и собственно в нём содержатся кнопочки и прочая хуита.Вот как выглядит drawLevels:{auto selectLevel = std::make_shared<tgui::Button>();selectLevel->setPosition(72, 90 * (i + 1));selectLevel->setSize(260, 65);selectLevel->setText(name);selectLevel->setTextSize(26);gui.add(selectLevel, "selectLevel" + i);}Чтобы получить доступ к какой-нибудь кнопочке или чему-то, что находится в контейнере, надо взять контейнер.get(название). Оно кстати добавляется путём gui.add(экземпляр, название).https://tgui.eu/tutorials/v0.7/creating-widgets/https://tgui.eu/tutorials/v0.7/signals-introduction/
>>915503Зацикливаешь список, перемещаешься на N в нужную сторону, разрываешь.
>>915503Если нужно именно односвязный то делай его. Просто на нем операции с последним элементом дорогие (линейная сложность вместо константной), и если есть возможность то лучше брать двусвязный. А раз у тебя ничего про сложность не сказано и требуют односвязный то делай с ним. Вставляй в начало, если ничего не сказано, так как это проще всего.
>>915411а ты думал, прочитаешь "с++ за 24 часа" и будешь матёрым программером?
>>915505Это было очевидно по > gui.get<tgui::Button>("selectLevel" + i);Самый просто вариант найти ошибку - поставить data breakpoint. Когда у тебя меняется значение по указанному адресу, происходит остановка. Понятно, что это будет в каком-то деструкторе, но хотя бы по стеку вызовов посмотришь, где это происходит.Data breakpoint ставь на адрес, где хранится> В дебаге видно, что программа пытается обратиться к несуществующей функцииЕсли совсем не сможешь разобраться, могу посмотреть через тимвивер, у нас примерно один часовой пояс. Я мог бы посмотреть и просто проект, но не хочу себе ставить библиотеки
>>915411>Прям на ингрише?Без инглиша далеко не уйдёшь. На ютубе тьюториалы еще>Меня заебывает моментально, например.Тебя должна вести идея того, что ты хочешь замутить. Если идеи нет или на нее (уже) не стоит, то трудно всегда. Мотмвейшн, нутыпонел
>>915582Судя по всему, разобраться не могу. Может пикрил как-то поможет?Если нет, то давай фейкомыльцо, скину туда пароль и id.
>>915596> ну ты же не так сделал> не, не так> пикПроиграл.[email protected]Там, походу, минутное дело, но я всё равно смогу только часа через 2-3 или ближе к 00:00. Либо периодически проверяй почту, либо держи тимвивер на готове, а себя около ПК
>>915620Фикс пика
Когда выпустят C++17? Когда им можно будет пользоваться на gcc и Visual Studio, знает кто?
>>915699Почему ты такой даун и не можешь в гугл?http://clang.llvm.org/cxx_status.html#cxx17https://gcc.gnu.org/projects/cxx-status.html#cxx1zhttps://docs.microsoft.com/en-us/cpp/cpp/support-for-cpp11-14-17-features-modern-cpp
>>915551Я прочитал "C++ за 21 день". Могу ли я уже устраиваться на работу программистом?
>>915721java джуном можешь
>>915721щас не нужны джуныу фирм зачастую нет ни времени, ни других ресурсов для того чтобы "выращивать" спецанужны люди способные сразу писать код, который не будет выброшенв тоже время в мидах есть необходимость - до сих пор на крестовую мидловскую позицию приходит иногда всего лишь 6-10 резюме (когда на ява-мида может и под сотню прилететь), причем среди них есть абсолютный нерелейтед, те работодателям вообще не из чего выбирать
чому?#include <windows.h> int WINAPI WinMain( HINSTANCE _hInstance, HINSTANCE _hPrevInstance, LPTSTR _lpCmdLine, int _nShowCmd) { int argc = 0; LPWSTR * argv = CommandLineToArgvW( GetCommandLineW(), &argc); if (argc > 1) MessageBoxW(NULL, argv[0], argv[1], MB_ICONWARNING | MB_CANCELTRYCONTINUE | MB_DEFBUTTON2); LocalFree(argv); return 0; }
>>915984>чому?Антиэмуляцию не сделал.
>>915984А, это эвристика. Ну тогда попробую забить сигнатуры ассемблерными вставками с нопами и сделать скрытый вызов функций по хэшу из кернель32.
>>915586Дело в том, что в моем понимании "я прочитал кренинбеха" это сесть и начать читать как войну и мир, глава за главой. У меня есть идея, я хочу ее сделать ультракошерной и масштабируемой, но на йоба-приемы и шаблоны натыкаюсь случайно. Сегодня, например, я научился серелизовать структуру, увидев в буст::асио пример с ICMP а вчера я статик-кастом на воид* ее перегонял в чарэррэй. Мне повезло с этим, но тонких мест еще уйма.
нашёл сырцы вот здесь https://github.com/oguna/MMDFormatsв последнем VS компилирует, в code:blocks с пследним mingw пишет:Pmx.h|526|error: 'unique_ptr' in namespace 'std' does not name a template typeдогадываюсь, что дело с компиляторе. Как ему помочь?
>>916165>'unique_ptr' in namespace 'std' does not name a template type#include <memory>
>>916165Компилятор тебе строкой выше написал как это исправить, откуда вы блять лезете.
>>916169>>916165Да, или добавь флаг компилятору, как тот и просит.
>>916170>илиНе или, а единственный правильный вариант.
>>916169>откуда вы блять лезетенахуй строем пошёл
>>916171Проблема гипотетически могла быть и в особенностях реализации заголовочных файлов между платформами. Нередко же VS отклоняется от стандарта, поэтому могла быть ситуация, когда мемори включался в какой-то другой стандартный головочник, хотя по дефолту такого не должно быть. И китайцы работали в VS.Ну это я, очевидно, оправдываю то, что я не открыл скрин, а просто прочитал текст поста. А так ты на 99.9 прав>>916173Тебе помогают, а ты говоришь спасибо без уважения.
>>916168уже стоит
>>916175Тогда просто сделай как тебе предложил >>916169Т.е. добавь флаг препроцессора -std=c+11
>>916176>-std=c++11
>>916177Или компилятора. Не шарю в gcc
>>916178В code::blocks можно просто галку поставить.
>>916174>>916179спасибо
теперь вот
>>916181Теперь давай 14-й стандарт включай (лол).
>>916182это всё, что есть для этого mingw, что был в пакете с code::blocks
>>916185Попробуй -std=c++0x, мб частичная поддержка этого стандарта там есть. Иначе — меняй компилятор или переписывай код.
>>916189и с ним та же фигняпосему взад в MSVCспасибо!
1. Снёс code::blocks, что пришли с mingw2. поставил MS VS Express 2010 3. code::blocks компилятор видит4. но всё ещё пытается линковать mingw32.lib, которой так уже не должно и быть!Какого хера и как подправить?
>>916246Фошизд в треде, все в газенваген.А на самом деле: покрути настройки в линкере и search directories, наверяка там осталась лишняя строчка.
>>916252качнул Express с chip.DE жеВ файте с проектом эта либа прописана. Уберу прям в редактореПомогите найти в опциях. Я в code::blocks второй день
>>916246Если ты вот этот вот >>916165 то сноси нахуй и ставь ту, что поддерживает последний стандарт хоть немного (2015-17).>>916269Нахуя качать откуда-то кроме как с офф. сайта учитывая что она сейчас полностью бесплатная со всеми нужными фичами есть — хз.Если проект сгенерировала не сама IDE (т.е. шел с исходниками) то скорее всего никак. Иначе просто сотри и тыкай дальше.
>>916176>флаг препроцессора Ты тоже нахуй отсюда.
А есть какие-нибудь годные книжки по сетевому программированию?Есть какие-нибудь менее фундаметнальные книжки, чем Стивенс?Посмотрел мимолетом пару видео по сокетам,без книжки не разобраться.
>>916287спасибо за поддержку, в том числе и моральнуюЯ забил на code::blocks (for a while), поставил VS 2013, в которой писаны те сырцы (VS2015 ведь тоже чего-то в них не находила, блеат).В VS213 компилирует и слава богу. Я вот этот анон >>323745Мне внезапно надо из лампового делфи в кресты :3
>>916342https://2ch.hk/gd/res/319626.html#323745
Котаны, такой вопрос. Пишу красивый CLI для своего приложения с богатым функционалом и хочу так как красиво как в git'е. Как этого можно добиться? Пока вижу три опции.1. Руками на основе argc/argv разбираю строку.2. Использую POSIX-совместимую getopt()3. Использую расширенный вариант предыдущего функциионала getopt_long().Хотелось бы узнать, что является best practicies/как сделать поыбстроми, минимизируя число зависимостей. Буст идёт нахуй. Не интересно.Дублирую вопрос в ните по пюре Си.
>>916365Ссылка на параллельный вопрос.>>916366
>>916365Слишком низкоуровнево мыслишь. См. куда-нибудь в сторону https://github.com/myint/optparse
>>916320>>флаг препроцессора >Ты тоже нахуй отсюда.Но..Ппц вы недружелюбные
>>916512И что твой скрин должен мне сказать?
Объясните нубусу в крестах, почему public переменные видны в main, но при том, были изменены (длина bones увеличена до 20), в main читаются нулями?Может, из-за unique_ptr? >main.cpphttp://pastebin.com/caaNT9MD>TEST.Hhttp://pastebin.com/ikQvGf0u
>>916519лучше здесь помоги >>916522
>>916523Потому что ты, довн, ресайзишь вектор одного об'екта, а смотришь размер у вектора другого об'екта.
>>916529мамкин погромист LOL
>>916522Потому что ты валет.auto model = Model::Load();...model.get().size();...
Анон, объясни, почему я довен крашит?Склеиваю стринг из содержимого двух векторов:for (int i = 0; levelNameVector.size() > i; i++){path = levelPathVector + "/" + levelNameVector;drawLevel.drawLevels(gui, window, i, levelNameVector, path);}Позже передаю эту радость в лямбду.void SelectLevel::drawLevels(tgui::Gui& gui, sf::RenderWindow& window, int i, string name, string path){selectLevel->connect("pressed", [&](){ loadGame(gui, window, path); });}При попытке воспользоваться переменной в лямбде - всё нормально, через cout выводит как надо. Однако стоит воспользоваться ею в нужной мне функции loadGame:void loadGame(tgui::Gui& gui, sf::RenderWindow& window, string levelPath){cout << levelPath;}То приложение просто и понятно крашится.
>>916536>model.get().size();лолшто? хуйню спизднул, не взлетит
>>916537Немного перефразирую: почему levelPath возвращается абсолютным нихуя в loadGame()?
>>916519Обсуждаемые флаги можно назвать как флагами компилятора, так и флагами препроцессора, потому как последний в любом случае является частью компилятора.Ну типа preprocessor definitions же написано. PREPROCESSOR. DEFINITIONS. ФЛАГИ. Чё занудничать
>>916541У тебя unique_ptr значение как отдаст, довенский хуесос?>>916537>>916548Ну откуда нам знать-то, полный код вкинь. Как ты ее инициализируешь там, с оптимизациями ли компилируешь (и нахуя ты эту строку 3 раза копируешь) — сложна, нихуя нипанятна.
>>916553>У тебя unique_ptr значение как отдаст, довенский хуесос?>>916522>Может, из-за unique_ptr?давай скорей! Скоро мамка спать погонит
>>916537> selectLevel->connect("pressed", [&](){ loadGame(gui, window, path); });А если вместо path будет какая-то захаркоженная строка? "C:\\my\path\to\file.txt"?
>>916561>"C:\\my\\path\\to\\file.txt"846535
>>916561"./resources/map/filename.tmx"? Все возвращается как следует, что интересно. Такая строка кстати должна и быть в path.>>916553Оптимизаций никаких не стоит.std::vector<std::string> Stuff::fpathvector(const char* paths){std::vector<std::string> vector;vector.reserve(fnumber(paths)); // Резервируем вектор в зависимости от числа файловfor(directory_iterator rdib(paths), rdie; rdib != rdie; ++rdib){std::string StringPath;StringPath = rdib->path().parent_path().string();vector.push_back(StringPath);}return vector; // Возвращаем вектор}Stuff useful; auto levelNameVector = useful.fnamevector("./resources/map");auto levelPathVector = useful.fpathvector("./resources/map");fnamevector делается почти так же, только там именно имя файла забирается.
>>916556Я ее уже сам спать погнал (твою)
>>916522бамп вопросукак переделать сурс, чтобы массив bones был виден в main?
>>916567На мой взгляд, анонимная функция запоминает не значение, как ты ожидаешь, а адрес переменной. К моменту вызова коллбэка память path уже очищена. Попробуй, например, выделить через new.void SelectLevel::drawLevels(tgui::Gui& gui, sf::RenderWindow& window, int i, string name, string path){char* ppath = new char [512];sprintf (path.c_str (), ppath);selectLevel->connect("pressed", [&](){ loadGame(gui, window, ppath); });}Понятно, что тут будет утечка памяти, но мы же просто хотим найти ответ на вопрос.
>>916575я тебе уже ответил конч >>916536>>916577>На мой взгляд, анонимная функция запоминает не значение, как ты ожидаешь, а адрес переменной. К моменту вызова коллбэка память path уже очищена. Попробуй, например, выделить через new.Это вообще было бы очень тупым багом — он переменную вниз по стеку передает, а std::string имеет встроенный рефкаунтер и может удалится только если ее вернуть из функции наверх.
>>916577>ppathХотя если лямбда запоминает адрес, то к моменту вызова коллбэка, опять же, будет запомнен адрес ppath, а сам указатель смоет. Плохая была идея
>>916575я тебе уже ответил конч >>916529
>>916537Потому что ты аргумент функции захватываешь в лямбду по ссылке, довн.
>>916579>я тебе уже ответилне взлетает
>>916551А теперь притащи сюда скрины вкладок "General" и "Language"
>>916587model->get
>>916582ты бесполезен
>>916590Не проецируй.
>>916589winrarty
>>916587Потому что твой код в хидере тоже так же менять надо, ебанутый. Убери уже нахуй unique_ptr, ты не понимаешь что это и тут оно не нужно точно.
>>916567>>916585Этот дело сказал. Проблема правильная была. Попробуй передавать path по значениюselectLevel->connect("pressed", [&, path](){ loadGame(gui, window, path); });
>>916577В коде твоём была ошибка: [Error] invalid conversion from 'const char' to 'char' [-fpermissive]>>916585Ну и как это решить? Взять указатель на path и разименовать его в лямбде?>>916594Спасибо анон, проблема решилась. Теперь буду знать.
>>916588https://www.youtube.com/watch?v=1Flb2Kf58UA
>>916593усбагойся >>916592пользы от твоих вскукареков было много
>>916597>Ну и как это решить?>>916594
бля чо вы тратите дибилы симены
>>916601Да понял уже, и даже поблагодарил того анона. И тебе спасибо тоже, что объяснил по какой причине оно так работает.
>>916579>а std::string имеет встроенный рефкаунтер и может удалится только если ее вернуть из функции наверхОн же там коллбэки только инициализирует, а не вызывает. К моменту вызова управление давно поднялось вверх по стеку. >>916597>В коде твоём была ошибкаИдея должна была быть понятна. Я же без компилятора писал, ошибка тривиальная.sprintf (ppath, path.c_str ());
Пацаны, зачем вы такие токсичные. Аноны сюда приходят потому что больше не к кому обратиться, а получают вместо кода потоки желчи. Сравните со stackoverflow
>>916628Ты бы ещё с ответами@mail.ru сравнил.
>>916629Мои слова направлены не против особого духа борд и менталитета, а за большее число строк кода в ответах. Чтобы можно было просто вставить и запустить. Так очевидно лучше.
>>916629Впрочем, да. Мы же теперь [email protected]
>>916637Ппц не дави на больное...............
Сап. Пилю бинарный формат. У меня есть куча ключей, на которые мне нужно впоследствии много раз ссылаться. Подумал, что удобнее всего их будет просто проиндексировать и записать в определенном порядке, а при считывании восстанавливать значения индексов просто по порядку. Но что мне не особо понятно, так это то, в каком виде лучше всего записывать эти самые ссылки, т.е. номера индексов далее по "тексту". Есть идеи? Интересует самый компактный вариант.
>>916715>>916715>записать в определенном порядкеstruct
>>915699gcc 7 уже поддерживает все фичи c++17, которые планируют принять в стандарт. собирай его и тести. я сейчас с ним играюсь, даже порнуху некогда смотреть.
>>916512виндузятник, который никогда не выходил за пределы своей тёплой и уютной иде, детектед
>>916628> зачема потому что
>>916715Очевидный struct с битовыми полями, обернутый в #pragma pack. Но это си, а не цпп. Сделай лучше класс с сериализатором
>>916326Бамп вопрос
>>916326Таненбаум, Комп. сети. Разжевано вообще все что нужно, не нужно и вообще может пригодится.
Анон, чому нужно -lpthread для потоков делать в линуксе?
>>916822Чтобы линкер знад что часть кода в этой библиотеке.
>>916834А если например я использую с++ на арме без линукса, как тогда?
>>916837> без линуксаНикак. phtrhread это системное апи линукса, естественно оно не доступно на других системах, если только они не предлагают свою posix-совместимую реализацию этого апи. Изучи документацию на эту тему к ОС для которой ты пишешь программы.
>>916837me just curious: bare metal ARM??
>>916837тебе какбэ намекают что нужно написать функции поддержки многопоточностипосмотри лучше откуда потребность в них вылезла (дизасмом например) и может быть можно что-то придуматьP.S.>с++ на армене забывай про горы говносборок компиляторов в интернетах: https://andriidevel.blogspot.com/2016/05/size-cost-of-c-exception-handling-on.html
>>916430это заебись! А ещё? что-нибудь сишечка-лайк или как click в петне
>>916365https://github.com/sailormoon/flags
>>916968Почему тогда в cpp11 поддержка потоков? Поддержка же в pthread, цпп просто использует фреймворк
>>917050Потому что в 11-х плюсах это просто спецификация, которая реализовывается на каждый платформе силами её разработчиков.
>>916246Хуле ты паришься, ставь Gentoo.
>>916860>phtrhread это системное апи линуксаСистемное апи линукса это clone
Почему вместо 0x20 я получаю рандомный мусор?
>>917295
>>917296Оххх, порядок байт другой.
>>917295Почему в C++-треде вместо нормальных срачей я получаю рандомный мусор?
>>917373Потому что у вас big endian
Нужно в большую строку ( файл 10 мб ) добавить с разных сторон много небольших строк.Как это лучше сделать в с++03, ибо после всех .append(..) в памяти процесса под 100 мб.
>>917470Просто .reserve () заранее сделай на 10 + N мегабайт.
Возможный вариант с временным файлом. Записываешь туда сначала начальные строки, потом копируешь исходный файл с помощью splice() (в линуксе, на виндовс вроде TransmitFile можно использовать) потом вписываешь остальное. Заменяешь иходный файл временным. Но хуй знает что получится, и в любом случае от оборудования зависит - если он оне поддерживает DMA то смысла нет так заебываться. Разве что нужно любой ценой оперативную память экономить.
Аноны, либу State Threads можно с крестами использовать?
>>917526Нет нельзя. Только с сишечкой.
>>917536Спасибо, анон. А если резервировать память под объект с помощью malloc, то на объекте потом как-то можно конструктор запустить? Boost же как-то реализует пулы (я даже код смотрел, там пулы по sizeof распределяются), неужели на массиве объектов сразу конструкторы запускаются?
>>917553Можно. placement new используй
>>917562Спасибо, анон.
>>917019>>916430Спасибо, котики! Накидайте ещё годных репозитариев или профилей. Рад видеть, что здесь не только школьники сидят
>>917019Сэйлормун собирает с помощью вот этой штукиhttps://pypi.python.org/pypi/bfg9000/А чем его обычный cmake не устроил? Это ведь стандартно, удобно, распространнено.
>>917669Ого! Что нашёл всё у той же членодевкиhttps://github.com/sailormoon/single_file_libs
>>917669Чтобы здесь не флудить отпишитесь на почту [email protected] лады? Есть к вам парочка подаванских вопросов как к людям в теме.
>>917673Отписался тебе за щёку.
>>917670>стандартно, удобноСтандарта в плюсах на эту тему нет, а цмейк нихуя не удобный, так ещё и тормозит похлеще обычного make и всякого питоноговна.
>>905086пиздец. Узнал себя. Как перестать быть байтоёбом с завода?
>>917759Сменить предметую область и начать писать код который будет работать и который можно будет поддерживать, а не экономить везде на двух инструкциях.
>>917703Чё бля? CMake использует некоторый бэкэнд, который уже и выполняет сборку. И чем это тебя обычный make не угодил? Или блять хочешь писать m4-макросы и autoconf-скрипты, сука?
>>917800Ты в каком году? В 92-м?А цмейк просто тугое кривое говнище, сделанное какими-то гидроцефалами. Причём во всех отношениях.
>>917837нет у ней альтернативыесли надо кроссплатформу, то проще cmake использовать, чем тащить в исходниках проекта кучу проектных файлов различных версий visual studio и кучу сборочных скриптов под юниксовые операционки
>>917673чувакэто анонимная борда если что
>>917906Ты какой-то пещерный человек, ей богу.
Знание OpenGL - полезный навык для C++-ника в целом?Уволился вот со скучной работы, связанной с формошлепством на Qt, во время передышки перед поиском новой работы хочу бустануть свое, так сказать, "резюме" не в обычном понимании, а скорее в виде набора скилов которыми я располагаю, и мне интересно, насколько целесообразно заморочиться 3D-графикой в целом и OpenGL в частности.В качестве плюсов можно считать возможность вкатиться в геймдев и смежные области, из минусов - возможна дополнительная нагрузка в виде повторения мат анализа, на который я очень успешно забивал болт во время учебы в университете.Что посоветуете?
Посоветуйте IDE под Windows с компиляторомQt creator имеет свой? Или это только оболочка?Охота что-нибудь полегче
>>918140>В качестве плюсов можно считать возможность вкатиться в геймдев/0Давно таких не видали дуралеев.>>918147Давай хаскель лучше кчин, он как раз для новичков.Список IDE для плюсов с описанием можешь найти в шапке.
>>918140OpenGL или нужен или нет. Если вакансия не под ожл разработчика то пользы от его знания мало будет. Матан не нужен, ты возможно с линалом перепутал. Но линал для изучения тоже не нужен. Если хочешь базвордов в резюме накинуть, то возможно лучше за OpneCL (или CUDA) возьмись, если не владеешь. Это в принципе тоже достаточно специализированная тема, но выглядит более широкой. Потом можно уйти в digital signal processing, например.
>>918151>>Давай хаскель лучше кчин, он как раз для новичков.Но я уже год пишу хелоу ворлд на С++
>>918151>>Qt creator имеет свой? Или это только оболочка?
>>917837> Ты в каком году? В 92-м?Initial release 2000; 17 years ago
>>917909Ебать вы аутисты, это же фейкопочта. На самом деле я Анатолий Сердюков и работаю в гугла эйчаром.
>>918164Ну тебе хоть есть чем оправдать глупость. В отличие вот от таких тугосерь >>918157
>>918167Ты жизнь обиженный
>>918209Мой жизнь жылТвой нетСасай
>>918151>>В качестве плюсов можно считать возможность вкатиться в геймдев>/0>Давно таких не видали дуралеев.Что не так? Объясни
>>918281>>918151 - он из этого треда >>918030
>>918140>Знание OpenGL - полезный навык для C++-ника в целом?полезный. У меня скоро будет проект на опенгл негеймдев (рабочее место диспетчера)
>>918281Самая нищенская и одновременно больше всего (по времени) требующая область. Суть как бы в том, что там конкуренция из сотен макак, готовых переезжать в ебеня вроде Новосибирсков и Харьковых, за зарплату 60к рублей за идею и отечественный геймпром, что называется.Ну удачи короч
>>918167Путаешь глупость и незнание, дурашка.Посмотри на Git. Линус ссал тебе наебало make'ом(sic!)https://github.com/git/git/blob/master/Makefile
У меня мистическая хуйня на винде, я, прямо, кирпичами сру.Играюсь немного, в общем, сервис создает папку в %SystemRoot%/windows32, копирует туда себя и прописывается через CreateService, понятно уже, что этоТак вот, на одной машине папка не создается, соответственно, все остальные действия должны возвращать ошибку.Но нет. Я ебу что это. Сервис записан в /CurrentControlSet на несуществующем пути, и мало того, что работает, так еще, блядь, функционал поддерживает полностью (стоп\пауз\старт)Обыскал все папки винды, перезагружался несколько раз.КАК ОН МОЖЕТ СУЩЕСТВОВАТЬЧТО ЭТО ЗА НАХУЙ
>>918463updИсследование показало, что данным свойством обладает лишь папка system32. Можно создать папку там через CreateFolder, скопировать файлы через CopyFile, и даже запилить там сервис, однако после этого получить доступ в эту папку будет нельзя, причем можно создать папку с таким же названием и конфликтов не будет. Причины и объяснение данного феномена мне все еще неизвестны
>>918449>Линус ссал тебе наебало make'ом(sic!)>2,5 к рукописных строк мэйкфайла с говном из баша>которые в нормальной системе сборки можно было уложить в 100Ну да, есть такое. Копрофилия — оно у плюсовиков наследственное от сишников.
>>918498Ахуеть, уложишь в 100?
>>918469Я не помню, как называется эта фича, но её придумали мелкомягкие, когда хорошенько соснули DLL hell'а. Суть в том, что если приложение, не являющееся TrustedInstaller'ом, пытается срать в системные папки своими библиотеками и прочим, то на самом деле файлы попадают в отдельное хранилище для этого приложения и не видны никому другому. Что-то вроде overlayfs для каждого отдельного процесса, короче.
В xp (может и не только) сессия админа (именно админа, а не пользователя с админ правами) имеет пид 0, соответственно запустить приложения под его именем нельзя, запускаются под 0й сессией.Можно ли как-нибудь выдрать токен пользовательской сессии адмиистратора?
>>904165 (OP)>C++Qt Creator/Designer/CodeLite/Code::Blocks/Clionи почему? Выбираю строго из перечисленных вариантов, остальные по тем или иным причинам не доставили.
>>918584Зависит от предпочтений. Попробуй все, выбери себе.Унылосрачи не нужны
>>918438> ХарьковыхЯ и так в Харькове живу :(
>>918620Я не хочу срач. Ну, подскажи плюсы-минусы. Лион должен быть самым интеллектуальным, если судить по Идее, но хз, выглядит каким-то слишком громоздким. Писать планирую с активным использованием Кьюта либо что-то простое для Ардуинки.
>>918140матанализ тебе не нуженнужны будут матрицы и квартенионы для всяких 3д преобраований, немного школьной физики (если не будешь лезть в имплементации физ движков), пройди какойнибудь курс по алгоритмам на курсерев харьков гейдев - пайпстудия берет вобще всех но платит нихуя, есть g5, gameloft, plarium это из крупных,еще с полсотни мелочи, лучше какимто чудом найди постоянную удаленку, но практически нереально если ты не сениор\лид с хуевой тучей проектов за плечамиденег в гейдеве нет а мозгоебли полные штаны, так что держись анончикмимо 10 лет в геймдеве
>>918634vim
>>918667Вам стажеры не нужны, лол?
https://2ch.hk/pr/res/894904.htmlhttps://2ch.hk/pr/res/894904.htmlhttps://2ch.hk/pr/res/894904.htmlhttps://2ch.hk/pr/res/894904.htmlhttps://2ch.hk/pr/res/894904.htmlhttps://2ch.hk/pr/res/894904.html
>>918777Стажёры вообще никому не нужны.
>>918667Миша, это ты?
Ёбаны в рот, не все же на .HK сидят.>>894904 (OP)>>894904 (OP)>>894904 (OP)>>894904 (OP)>>894904 (OP)
>>918864нет
>>918866>>918788Вы куда перекат-то делаете, гады?
std::ifstream in;in.open(_in.c_str(), std::ios::in | std::ios::binary);std::ofstream out(_out.c_str(), std::ios::out | std::ios::binary);char buffer[64];while(in.read((char )&buffer,sizeof(buffer))) out.write((char )&buffer,sizeof(buffer));in.close();out.close();Вот код копирования бинарных файлов, почему он работает?Всмысле, в конец файла с вероятностью 63/64 будет записываться хотя бы один лишний байт.Причем, если делать проверку на EOF, то окажется, что такие чары есть и внутри файлаКак вообще определяется еоф в бинарных файлах?
>>919107http://pastebin.com/B8UZ8s0Z
>>919107>Как вообще определяется еоф в бинарных файлах?Как и в любых других.Операционная система точно знает размер файла, не никаких EOF сигнатур
>>919123> нет никаких
>>919123>>919125Тогда почему код копирует содержимое 1 в 1, без единого лишнего байта, хотя должен копировать по 64 символа за итерацию.
>>919128>должен копировать по 64 символа за итерациюКод должен копировать до '\0'.Если у тебя буфер на 5 символов, то при прочих равных и корректных у тебя будет скопировано 4 символа.char buf [5] = {'k', 'o', 's', 't', '\0'}. // скопируется только "kost".
>>919177char buf [99999999] = {'k', 'o', 's', 't', '\0', 'y', 'l', 'i'}. // так тоже скопируется только "kost".
>>919178>>919177Не посмотрел, что ты через sizeof пишешь.
>>919182Да дело даже не в этом. Я просто несколько сильно урезал код.http://pastebin.com/ggmWVRuzТак понятнее будет.
Кто на чём пишет свои rest-хуест сервисы? У меня ulib.
>>919107>Вот код копирования бинарных файлов, почему он работает?Для тебя "скомпилировался" == "работает"?
Аноны, Страуструп третье издание актуально сейчас? Прост хуево английский знаю, и слышал, что в третьем с++11 не описывают.Критично ли или лучше подыскать альтернативы?
>>919641>лучше подыскать альтернативы
>>919695Прата шестое издание норм подойдет?
Добрый день. Я учу алгоритмы и структуры данных и для закрепления знаний решаю задачки. Я студент, но это не лаба, так что не спешите посылать на хуй. Имеется опыт со многими ЯП (все высокоуровневые), но ни один не знаю достаточно для трудоустройства (я не спешу).Так вот, в одной задаче наткнулся на ошибку и совсем не знаю, что делать. Сама задача http://acm.timus.ru/problem.aspx?space=1&num=1004Мой код для некоторых тестов :1. http://ideone.com/O2qb8f2. http://ideone.com/8EuKLK3. http://ideone.com/jvYN8i4. http://ideone.com/UXr58x5. http://ideone.com/CKuotJ6. http://ideone.com/4iFi0dКак видите, у 5-го теста ошибкаterminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_allocи памяти расходуется больше, чем на остальныхПодозреваю, что у последнего ошибка связана с этой же проблемой.Гуглить пробовал, но там в основном эта ошибка вызвана использованием массивов, неправильной величины (у меня векторы), или же что-то там с указателями (я высокоуровневый петух и не понимаю), которых у меня в коде вообще нет, только reference авто циклах, слова new тоже нет. Прошу помочь, хотя, если пошлёте на хуй, я пойму
>>919752Ещё одно, в универе плюсы не учили (первый семестр javascript), самостоятельно я тоже не изучал, просто делал так, как бы делал в других языках (гугл в помощь мне), так что даже, если не найдёте ошибку, можете просто подсказать, что можно было лучше оформить
>>919752В пятом тесте. В массиве parent, насколько я понял ты надешся что там дерево. Но на самом деле там граф с циклом 92 -> 57 -> 26 -> 16 -> 92, в результате for на 147 строке работает пока не закончится память. Слова new в программе нет, но его используют неявно вектора, когда им нужна новая память под значения (которые ты туда засовываешь в бесконечном цикле).
>>919775Спасибо, благодаря тебе,я нашел свою ошибку. У меня с dfs была проблема и из-за этого возникала указанная тобой ошибка. Сам бы не нашел(
Липпман. Не прошу решения, просто хотелось бы уточнить - это решаемо исключительно while циклом без использования других управляющих конструкций?
>>920189Как я понял, есть я ввожу 5 и 10, то на выходе должен получить все числа от 5 и 10. Так?Но как, если на ввод пойдут числа 10 и 5? В любом случае какие-то условия еще должны быть. Ну или я тупой.
>>920190На ум приходит использование только двух while циклов, каждый из которых бы проверял диапазон от меньшего к большему и от большего к меньшему. Но это уродство какое-то.
>>920189while + break == if
>>920189Можно. Под спойлером решение.std::cin >> a >> b;int c = b - a + 2;while (--c) {std::cout << b - c + 1 << std::endl;}
>>920227-2147483647 -2147483648-2147483646 -2147483648
>>920227Дак в одну сторону (т.е. когда левое число меньше правого) и я написать уже смог, в более понятной форме тем-более. А вот так, чтобы работало сразу в две стороны (ибо ни твой, ни мой кодец не выдают нужных результатов, если левое число больше правого) - это либо использовать дополнительные управляющие констуркции, либо сразу два цикла while. У Липпмана глава о while стоит перед всеми другими управляющими конструкциями, поэтому я и подумал, что оно должно решаться только им.
>>920229> два цикла whileИли три.http://ideone.com/edAvcn
>>920229Я думаю что если бы Липпман хотел чтобы программа работала "в обе стороны" то он бы явно указал это. Тащемта с помощью разного рода математических трюков можно этого добиться. Есть вариант подразумевающий UB (основан на предположении о внутреннем представлении отрицательных чисел) http://ideone.com/3yZpjw Вместо сдвига можно использовать возведение в степень и вычисление корня - тогда не будет UB но нужно ебаться с корнями. Но не думаю что Липпман подразумевал что-то подобной в своей задаче.
>>920234>>920250Ну ок, аноны. Похоже, это последствия чтения Страструпа если бы 4-ое издание было переведено, я бы его и только его бы и читал, где тот реально мог в своих задачах заставить человека хорошенько выебнуться с решением.
>>920269Страуструпа
>>920270СТРАУСА
>>920189> упражнение 1.> эти переусложненияПроиграл.
>>920431Такое бывает, когда ты в сотый раз пытаешься дочитать хоть какую-нибудь книжку по программированию, у тебя уже есть основа и есть какие-то знания, но между ними имеются пробелы и ты читаешь, потому что хочешь запомнить эти пробелы, но не знаешь, где они.Ну и после пары глав Страуструпа Липпманн СЛИШКОМ легкий для прочтения, прям как для даунов написано. Хотя, возможно, дальше все будет лучше с этим.
>>920463"Станет" лучше, когда будешь читать о том, чего ещё не знаешь из Страуструпа
>>920190Поменяй их местами, довен.
>>920559Предлагаешь довенские решения. И тред не читаешь.
>>920640Окропил тебя живительной уриной
>>920654Против ветра ссать вредно. Перестань.
Впизду этого Липпмана, такое ощущение, что он меня за дауна держит. Реквестирую вопрос об изучении исключительно технического английского языка только для чтения сопутствующей литературы.Слышал, что там только совсем базовая грамматика нужна и основной напор делается на словарный запас специфических терминов. Авось чего кто годного предложит? Пока читаю Стауструпа 4ed переводя по слову.
>>920692> хочу выучить синтаксис языка> начну с английского>Читаю первые главы книги, повторяю известное> держат за даунаК слову, у Липпмана и у Страуса ставятся разные цели. Первый просто рассказывает про язык, второй претендует обучить программированию.Читал и то, и то
>>920692> переводя по словуПогоди, ты настолько плохо знаешь английский?Тогда я тебе сильно не советую пытаться прочитать книгу на английском. Ты, наверно, думаешь, что выбрал наиболее правильный, информативный вариант. Может быть. Но кроме того ты выбрал самый долгий вариант. У тебя это растянется не на один месяц, а может даже на год.Знаю английский на уровне чтения тех.литературы, легко могу объясниться устно в другой англоговорящей стране, но предпочитаю читать фундаментальные книги на русском, потому что в некоторых местах на перевод тоже время тратится, как бы я не изворачивался и не пытался воспринимать информацию сразу на английском, без промежуточного представления в русский язык
чому крашит
>>920778Ты мне вот что скажи, ты зачем в void функции что-то вообще возвращаешь? Как тебя компилятор не развернул?
>>920778std::thread нельзя уничтожать, если с ним связан какой-то поток. Тебе нужно вызвать join() или detach()
>>920786Вот это я овощ, первый раз про это слышу.Почему это по дефолту не включено?
>>920792Потому, что это С++, он обязан помочь пользователю выстрелить себе в ногу. Ты как маленький.
>>920711Я и далее глянул, что там. Все же у меня уже есть какая-то база, вплоть до некоторых моментов в ООП, проверенных на практике. Я до этого Страуструпа как раз таки и читал, 3-е издание и мне его форма изложения нравится куда больше. У него даже база читается весьма забавно - нужно вдумываться в прочитанное, переваривать. Да и выглядит это как минимум более информативно. Структура тоже более понятна.У Липпмана в предисловии написано, что он хочет обучить возможностям языка, которые позволят игнорировать детали и я чувствую, что это ни есть совсем хорошо - т.е. если я серьезно захочу заняться этим делом и найти себе работу кодера, то буду полюбому охеревать от всего, что еще не перенесли на C++11. Хотя, возможно, это просто желание пердолится после pure c>>920712Не думаю, что верный. Просто вариант. 4-ое вышло в 2013 году и еще никто не занялся переводом. Вот теперь я понимаю, насколько хуево без англ. языка соваться в подобный мир. Короче, пока просто буду третье издание читать, уверен, оно и сейчас способно многому научить. А С+11 подтяну позже. Есть же еще С++14 и С++17 за горами, я так долго мутузить буду, лучше вообще хоть что-то делать.
>>920792Универсального решения нет. Изначально хотели сделать чтобы в деструкторе std::thread вызывался detach, если он все еще не заджойнен. Но у этого варианта есть куча недостатков. Выделили два альтернативных варианта - вызывать join() или terminate() - но у них тоже свои недостатки. Вот ПЭЙПЕР есть на эту тему:http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2802.htmlВ конечном счете остановились на terminate() - я точно не знаю чего, возможно что в таком случае все проблемы сразу видны. Вообще про проблему не забыли СТАНДАРТНЫЙ КОМИТЕТ получает новые предложения, типаhttp://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0206r0.htmlМожет что и сделают, поближе к 2030.
>>920808>2030Какой ты оптимист. Они сколько не могли сделать нормальную работу с файловой системой, даже из буста вытащили модуль.
Здравствуйте.Посоветуйте манул по отладке кода с картинкоми.Не хуйню, где рассказывают как поставить брэкпоинт, а что посерьезней.Судя по тому, что происходит у меня, когда допуская ошибку, используя std (и по шапке прошлого треда), такой ахуенный вывод ошибок - это норма для мира с++.Как это лечить, стоит начинающему использовать что-то другое, типа boost?
>>920808>СТАНДАРТНЫЙ КОМИТЕТкек
Господа крестовики, поясните за незнания каких вещей меня обоссут на интервью на junior крестовика(гейдев)?
>>921382Паттерны. За них обоссут с головы до ног, и ещё в рот нальют.
>>921383Если контора адекватная, то на паттерны им как раз-таки насрать.
>>921385Вообще-то наоборот. За незнание паттернов обоссут.А если по поводу геймдева, то знать абстрактную фабрику - мастхев.
>>921383Паттерны-хуятерны, модели разработки и прочее я знаю. Именно по языку или каким-нибудь библиотекам, которыми все пользуются. Я так то явобог, но подвернулась вакансия на крестах. Знаю основной синтаксис и довольно много писал на крестах в универе, осилил когда-то польностью шилдта, хоть он и говно. Лабал на qt. Но хотелось бы знать что мне нужно задрочить, а какие знания освежить(на каких могу обосраться)
>>921386Обычная абстрактная фабрика это моветон, за такую отчепушат во все дыры и оставят у параши. Применение в современном гейдеве имеет только абстрактная синглтон прокси фабрика. Вся индустрия только на ней строится.
>>921390Ну тебе будет полезно знать STL, это определённо. Зубрить его не надо, но понимать нужно. QT тебе нахуй не нужен, он для интерфейсов только.Boost ещё может быть полезен, но только в тех случаях, когда STL действительно не хватает. Буст ты до конца жизни не задрочишь. Если геймдев, то DirectX или OpenGL.А вообще, определись кем ты хочешь стать собственно.
>>921396Так нет, про вещи относящиеся к гейдеву я и сам знаю что мне нужно знать. Очкую по языку обосраться т.к. на крестах давно не писал, да и вообще раньше его яростно ненавидел. Ну все базовые вещи я знаю, типа конструкторы, деструкторы, указатели, шаблоны, эти ваши вертуольные функции, ООП и т.д. Есть ли какой-нибудь гайд или книга для перекатывающихся с других языков или просто уже имеющих опыт? И еще какой-нибудь с неочивидными и заковыристыми моментами? А то спиздану что-нибудь типа "более высокий приоритет имеет шаблонизированная функция с такими же параметрами", а не наоборот. И меня прям на собесе отпетушат.Многопоточность знать надо? Утилиты сборки типа cmake или вижуал студио сама за меня жепу подотрет?
>>921401По поводу книг - сюда:https://github.com/sosachbot/cppthreadhat/wikiНаверняка найдёшь что-то полезное, я уверен. Многопоточность скорее всего пригодится. Хотя и не факт. (Особенно блять важно помнить про ебучие указатели и ссылки, вот просто блять помнить как они работают). Сборщик мусора за тебя будет подтирать, так что помнить про удаление и уничтожение экземпляров тебе не нужно, если конечно через new их делать каждый раз не будешь.Утилиты сборки помнить необязательно, если конечно под линукс делать не собираешься. Вижуал студио или другая IDE за тебя не только подотрёт, но и ещё и заоптимизирует с помощью спермотрюков, если попросишь.
>>921404Платиновый вопрос на плюсах сделали сборщик мусора или ты про умные указатели?
>>921439Умные указатели же. А сборщики мусора вроде как есть сторонние.
>>921392>прокси А это зачем?
>>921480Иначе будет слишком просто сорцы понять
>>921401>какой-нибудь с неочивидными и заковыристыми моментами?Саттер с Мейерсом
>>904165 (OP)Привет анончик, перекатываюсь из веб макаки в кресты. Возникают синтаксические / best practise вопросы. Может даст кто скайпик / вк уточнять такие нюансы (никаких заёбов и прозьб просмотреть код, только консультация)
>>undefinedЕщё один ёбнутый: это анонимная доска.
>>921548Запомни самое важное:= - присваивание.== - сравнение.Могу подсказать, но я и сам учусь.
>>921559это я знаю) У меня пара вопросов есть. Есть ли способ записать переменную при обьявлении типа int a = cin>>a;И ещё один. Я работаю в clion и когда запускаю прогу но не ввожу данные и делаю билд опять, приложение зависает в памяти. И приходится убивать его иначе не могу сделать билд, пишет нет доступа к exe.
>>921565int a = cin>>a;Зачем ты так делаешь? Ты лучше сначала объяви переменную, а затем уже что-то с ней делай. Но записывать в переменную данные при объявлении типа можно.int a = 10;int a = getSomeValue();bool isWorking = example.getState();>И приходится убивать его иначе не могу сделать билдНу так в чём проблема? При перекомпиляции он стирает старые скомпилированные файлы в том числе и exe. Завершай приложение перед компиляцией, всё верно он тебе говорит.
>>921570Смысл в том что открывает файл Clion, но он его не закрывает при билде и он остается висеть в памяти. Я его могу закрыть только через диспетчер.Может это баг самого clion.
>>921509Саттера как раз наворачиваю. Осилил уже 50 страниц и у меня только один вопрос: Вы что ебанулись писать на плюсах в 2017? Не хватало в этом языке трудностей и неочевидных правил, а теперь еще каждый раз надо в голове держать разверсистые правила вывода типов и когда там моя переменная потеряет const, что там у меня rvalue, а что lvalue или когда указатель потеряет владение объектом и мой временный объект в три хуя на стеке выдолбят. Пиздец, выучите ruby, D, посмотрите как языки для людей должны выглядеть. Почитайте про акка и эрланг, как люди по уму многопоточность делают. Охуеть, пойду дальше дрочить ваши const std::_Simple types<std::_Wrap_alloc<std::_Vec_base_types<Widget, std: :allocator<W1dget>>: :_ Alloc> ::value type> ::value_type *
>>921580Перед билдом поищи кнопку "завершение" приложения, и жми на неё. Я уверен, что она где-то есть.
>>921584Дык, это типичные классические спермопроблемы новичка — такое происходит всегда и во всех IDE (в том же последнем культяпкреаторе и студии (хотя там мб уже разобрались, я последний раз 10-й пользовался)) когда судорожно что-то постоянно меняешь и ребилдишь без остановки, причем только на шинде, очевидно что-то не так в системе (либо кто-то не учитывает какой-то ее механизм для чего-то). ну еще у того же QML вообще на всех платформах подобная проблема есть.>>921580Кнопочка "стоп" находится слева внизу, слева от места куда ввод-вывод из соснольки переправляется. Шлепай по ней и не ребилдь как сумасшедший.
Аноны, поясните за пару моментов в OGL. Почему ему работать с треугольниками куда эффективнее, чем с теми же квадратами?Почему при разработке игр и моделирования передвижения игрока по миру чаще всего двигают сам мир, а не персонажа в нем? Разве перемещение всех вершин не более затратная операция, чем перемещение вершин самого игрока?
>>921845Никто ничего не перемещает. Читай про матрицы преобразований. Каждая матрица умножается на вектор позиции вершины и получается вектор позиции объекта в координатах, которые нужны тебе.Квадрат - два треугольника. Треугольник - минимальный способ нарисовать двухмерную фигуру, а также однозначно определить плоскость ее размещения.
>>909609Не говори о чем не знаешь, в Qt есть виджеты с opengl ускорением.http://doc.qt.io/qt-5/qopenglwidget.htmlТянет где-то пару десятков тысяч квадратов на экране без просадок на моем ноуте. Да даже стандартными средствами Qt можно сделать тетрис и не будет ничего лагать.
Бля,нужен совет, через чё лучше реализовать работу с fibre channel протоколом,тут есть два стула,на одном boost::asio точёный, на другой qt network печёный...Может быть линка на какой-то пример подобной реализация, а то я вообще хз. Если кто знает,может можно как-то посредством буста фрэймы из fc инкапсулировать в ip протокол.
>>920189Решаемо, конечно же. Пример пикрелейтед
>>921216Посмотри это:https://youtu.be/-n9Fkq1e6sgBoost сразу не советую, если для тебя вывод ошибок std "охуенный". Можешь попробовать другой компилятор, там сообщения об ошибках разные.
>>922231> без использования других управляющих конструкций> тернарный оператор
Посоны, у меня незавидное положение, поэтому пишу сюды, куда же еще тут все мои друзья же. Вообщем верстаю проект (клиент-серверное приложение с запросами к БД, и всякой там анальщиной уровня "принять по http json и конвертнуть в местный велосипед") без наставника, из стека: буст (асио) и цэкресткрест 11, либа под sql и тащемта все. Я заранее прикинул хуй к носу, примерно прикинул абстракции там, интерфейсы, вся хуйня. Но мало что тз постепенно обрастало новой поебенью (изначально это вообще был эхо-сервер, лол), так я еще и сам мудак, опыта то нету нихуя. В итоге у меня сейчас в каждый конструктор заезжает по пятаку указателей (да-да, сырых блядь) и вообще я уверен что это все течет как школьница при виде альфача, и когда это выкатится в продакшен то каждые 5 секунд будет сегфолтится. Проект пока небольшой (~5к строчек сырых, т.е. с комментами и скобками), но я в этом пиздеце уже и сам охуеваю, и дальше просто не могу это читать, это уже не код нахуй. Вроде и у класса каждого по полтора метода, вроде и про паттерны слышал, и копипастить с переполненного стека умею. А на выходе ебаное говно. Что делать, ананасы?
>>922349>А на выходе ебаное говно. Что делать, ананасы?Рефакторить, и не передавать указатели налево и направо.>и вообще я уверен что это все течет как школьница при виде альфачаНу не совсем всё так плохо. Попробуй, запусти, дай нагрузку. Не забывай деструкторы использовать, если ты что-то через "new" создаёшь. C++ хоть и упрощает выстрел в ногу, но не до такой же степени.
>>920189http://ideone.com/7Gt6gL
>>922693Хм... ну да. Задача соответствует условию. Спасибо. Чуть выше >>920250 анон тоже решение хорошее предложил, но оно довольно спецефично.
>>922790задача - условию - ответ условию. фикс.
>>915456Обязательно надо создавать переменную для отсеивания скобок?
До чего унылым стал тред, пиздец.
>>922838Хули тебе надо-то? Платиновые вопросы про "= и ==" задавать?
Плюсаны, нужно написать простую задачку, но я в плюсах мало что знаю, можете помочь?
>>923287Задачу давай.
Есть около 1к файлов с разными именами, нужно написать код, который пронумерует все файлы от 1 до последнего с фильтровкой по имени.Например, были файлы: abc, test, а стали 1. abc, 2. test.И еще нужна программа, которая удаляет определённое число знаков сначала имени файла.Если можно, сам я ++ по чуть-чуть изучаю, но до операции с файлами еще не дошёл.
>>923290>>923289
>>923290http://stackoverflow.com/questions/14013145/windows-batch-file-rename
>>923296Я не очень понял.
>>923290Для твоих целей использовать плюсы не очень умно, лучше ебануть скрипт на питоне. Если уже так хочешь плюсы - твоё дело. Гугли pstreams (удобный хедер для исполнения консольных команд прямо с твоей программы, умеет получать выхлоп команды в отличии от system(), интерфейс как у iostream)Как приблизительно это должно работать?Получаешь содержимое папки: redi::ipstream getDir("ls /path/to/dir");Затем по одному читаешь из потока названия файлов, копируя каждую строку (кроме тех, которые собираешься удалить) из исходного файла в новый, после чего удаляя исходный файл:redi::opstream rm("rm /path-to-file/file.txt");Или тебе просто готовый код?
>>923313Мне не обязательно плюсы, просто плюсы - единственное что я смогу сделать из кода в компилируемый файл.Я года 3 назад знал пхп, там я бы смог за 10 минут такую программу написать, но уже всё забыл.
>>923317Тебе на какую ОС? Ибо команды в винде и лине отличаются, тот же код на обеих ОС работать не будет.
>>923322Виндовс 10.
>>923324набросал тебе первую программу. вторую слишком затратно писать на плюсах, ибо ей придётся копировать почти всё содержимое файла.http://pastebin.com/eAix7Eyn
>>923343А что определять в "pstreams/pstream.h"? У меня при компеляции пишет что нет такого файла / папки.
>>923344Его докачать нужно. https://sourceforge.net/projects/pstreams/
>>923353Я уже понял, только всё равно какие-то ошибки выдаёт.
>>923354Ты в "#include" проебал кавычки
>>923356Я что-то точно не понимаю.Добавил ковычки.
>>923313> использовать плюсы не очень умноЧасто встречаю замечания по поводу нерациональности, со стороны программиста, использования С++ для работы с ОС. Если кто-то считает, что плюсы и в правду не подходит для решения задач в ОС, объясните начинающему - почему?
>>923358#include "pstream.h"
>>923359>почемуCкорость разработки. На условном питоне есть широкая поддержка работы с ОС прямо в стандартной библиотеке. Иными словами, на пейтоне ты напишешь 6 строк, а на с+ 36.
>>923359Излишне сложно.
>>923361Я это сделал, но у меня теперь такая ошибка: >>923358
>>923359По одной простой причине: код на плюсах не кроссплатформенный. Там нет аналога <os> в той же жабе, или питоне. Вместо этого используется winapi или POSIX-вызовы.
>>923343>вторую слишком затратно писать на плюсах, ибо ей придётся копировать почти всё содержимое файла.Я в с+ треде или где?http://www.cplusplus.com/reference/cstdio/rename/
>>923362Скаченный файл перенеси в в директорию с сорс.срр.
>>923366>>923370
>>923366Извиняюсь, оно с виндой, как оказалось, не дружит. Попробуй версию 0.17, там ещё была совместимость (не факт, что скомпилируется). Если нет - сейчас поищу другую либу и перепишу
>>923367js + os.js || electron = crossplatform forevaaa!
>>923367Не совсем. Вроде в новом стандарте таки появились кроссплатформенные варианты работы с той же файловой системой благодаря бусту.Хотя, если использовать буст, то получить кроссплатформенность можно, но программа будет занимать несколько больше.
>>923368В глаза ебусь, прочитал как "определённое количество знаков в начале файла".
>>915840>щас не нужны джуныКак тогда стать мидлом?
>>923596Берёшь, и становишься. Всё очень просто.
>>921845>Почему ему работать с треугольниками куда эффективнее, чем с теми же квадратами?Треугольник --- примитив растеризации. Квадрат --- два треугла.>Почему при разработке игр и моделирования передвижения игрока по миру чаще всего двигают сам мир, а не персонажа в нем? Разве перемещение всех вершин не более затратная операция, чем перемещение вершин самого игрока?Потому что отрисовываешь картинку относительно глаз персонажа, а не (0;0;0) мира
>>923732> Потому что отрисовываешь картинку относительно глаз персонажа, а не (0;0;0) мираА преимущество-то в чём?
Как сделать так, чтобы данные типа float выводились с определенной точностью, например с точностью до сотой?
>>924155Докатились... Ты шутишь, да?
>>924155Это совсем уже платиновый вопрос.[CODE]cout.precision(/number/); // задает количество знаков после десятичной точки// где number - количество знаков после десятичной точки[/CODE]
>>924181не работает эта ебаторияколичество нулей не меняется(делал как тут написаноhttp://www.cplusplus.com/reference/ios/ios_base/precision/
>>924228http://ideone.com/A0APTPНьюфаги, вы ополоумели? Ещё спросите как напечатать в консоль матрицу
>>924489Главное ответил на платину, и ещё жалуется.
>>924489А реально можно?Мне в ВУЗе сказали, что нельзя
Шта ита значит??
>>924649Это значит что ты либо записал не туда, либо удаляешь по хуевому указателю.
>>924649Программа не сильно большая?Там в студийке под программы какое-то ограничение памяти есть
>>924673Небольшая, там картотека >>924661Да скорее всего это
>>924541Я новичок С++ тредов, но форс хаскеля ещё 4 года назад застал
>>924691>>новичок>>4 года назад
>>924725Я не сидел все эти годы в /pr/
>>923362>>923365>>923367В какой области разработки С++ будет наилучшим выбором?
>>924952геёдевдекстопну и всё что связано с байтоёбством
>>925130> декстопВыше сказано почему для декстопдева это не лучший вариант.>геёдевЧто это?
>>924952Никто не будет отвечать такому неуклюжему и жирному троллю
>>925224>>геёдев>Что это?Разработка гей-ИИ
>>925224>>геёдев>Что это?Gamedev же ну
Пора бы уже перекатиться
>>921845>Почему при разработке игр и моделирования передвижения игрока по миру чаще всего двигают сам мирПотому что ты двигаешь объекты виртуального мира проецируемые на монитор, а не монитор в виртуальном мире.
>>921845Почему ему работать с треугольниками куда эффективнее, чем с теми же квадратами?Вершины треугольника не могут не лежать в одной плоскости (это очевидно). А если взять квадрат из 4х вершин, и случайно подвинуть одну из вершин не перпендикулярно нормали этой плоскости, сломается геометрия (он уже перестает быть плоской фигурой, и чтобы исправить положение, придется его разбивать на треугольники вдоль одной из диагоналей). По этому любые многоугольники треангулируются, так проще - меньше логики (хотя бы в проверках), несколько проще элементы gpu (а значит их можно сделать большее количество за меньшие деньги)
Ананасы, есть ли какие-нибудь молодые перспективные можно и не очень проекты на github, куда может вкатиться ньюфаг?
бамп
>>925777Удваиваю этого.
Вы ЧЁ охуели?
Где перекот?
Допустим, есть 2 строки s1 и s2.Требуется определить, "пересекаются" ли они общими частями (как на пикрилейтед). Есть ли что-нибудь в стандартных либах или в бусте, или нужно велосипедить?
>>928987Надо стих придумать
>>929005std::is_permutation() из algorithm
>>929049Вообще не то.
В общем, есть файлы, из которых нужно собрать проект. Область: embedded. Моя задача: понять проект, собрать его, написать свою часть кода.Ребята, которые написали сам код используют gnu компилятор какой-то версии из последних, где есть поддержка c++11.Я использую компилятор от ARM 6.6 - это необходимо. В ARM6.6 есть поддержка с++11, но с некоторыми ограничениями. Проблема заключается в том, что в проекте используется одна библиотека, где используется метод std::move. В свою очередь, в описании поддержки компилятором от ARM c++11 пишется, что std::move не поддерживается, но есть прямой аналог (то есть дают кусок кода) реализации с помощью static_cast.То есть проблема: при сборке проекта у меня выбивает ошибку о том, что no member std::move was found, что весьма логично. А что мне делать?Что нашёл и что непонятно:1) Если менять функцию прямо в std, то получим undefined behavior. На практике получим ту же ошибку, то есть то, что member was not found2) Менять компилятор - будет пиздец. А это вообще может быть выходом?3) Как override функцию в std - может, я неправильно это делаю? В гугле вообще говорят что это бред, да и в принципе будет undefined behaviorбольшое спасибо, если кто выскажет свои мысли/решения.
>>929403решено, что помогло:1) создаю move.h, где пишу namespace std{template<> return_value move(args) {....}}2) подключаю move.h именно там, где использую функцию std::move3) profitиду учить матчасть про неймспесы и переопределение
Ваш тред смыло. Перекатывать не собираетесь?
>>929971Нам и тут хорошо.>>929021
Хочу написать свой микросервис на крестах. Скажите с чего начать нюфагу, чтобы получился более-менее приличный production-ready код
>>930012Как ты заебал уже
>>931191Бамп куесчену!
>>931620Он уже не бампается
Может всё же запилим перекат?
>>931765Шапку прикреплённой темы читал?Перекота забанили
>>931770Я нихуя не понял. Там просят пересоздать. В чём проблема?
>>931804>Я нихуя не понял. Там просят пересоздать. В чём проблема?Почему это не сделать тебе?
>>931806Меня малость пугает то, что никто этого делать не хочет. Это подозрительно, тут что-то не так
>>931770При чем тут перекот. Если бы тред был с ним связан, его бы удалили, как остальные.
https://2ch.hk/pr/res/931827.htmlhttps://2ch.hk/pr/res/931827.htmlhttps://2ch.hk/pr/res/931827.htmlhttps://2ch.hk/pr/res/931827.htmlhttps://2ch.hk/pr/res/931827.html