Будете перекатывать сл. раз - обязательно напишите про то, что братья тех, кто: - спрашивает про ВинАПИ - говорит "не работает" без копирования сообщения об ошибке - спрашивает "как сделать Х", где Х никак к плюсам не относится сдохнут от СПИДа.
>>1028056 Потому что char ЗВЁЗДОЧКА - это строки. Тебе ещё повезло, что он выводит f - может вывести все ненулевые символы, которые в стеке после f. Если хочешь адрес, приведи к void ЗВЁЗДОЧКА.
>>1028140 Потому что operator << ostream& o не определен для int*, инстанцируется специализация шаблона для указателей (или просто T, хуй знает, никогда не интересовался что там внутри).
Какую автоматическую систему сборки лучше удобнее использовать для проекта на крестах? Есть прожект в кодеблоксе, но я его хочу сделать удобным для сборки на других пк.
>>1028315 У меня майки в cmake устаревший findboost положили, в результате он не правильные постфиксы пытался найти. Было это пару месяцев назад VS2017, boost 1_64
>>1028315 А у нас есть прекрасный Clion, в котором есть все что есть в студии кроме профайлера, только еще с нормальным редактором текста, и без прибитых к полу деревянных игрушек.
>>1028421 Последние 7 лет штудия от релиза к релизу только деградировала по производительности. Ладно, 7 это я, к конечно загнул, но до 17-й это совсем кромешный пиздец был.
>>1028424 > не очень мощном ноутбуке с HDD. Твой HDD влияет только время стартапа. Когда начинаются свопы (или просто 100% нагрузка на цпу анализатором кода) никакой SSD не спасает.
На чистых сях (gcc с пакета MinGW) собирается без проблем с двумя хэдерами. Почему на плюсах необходимо не инклюдить gl.h? В ином случае пишет что некоторые функции не определены.
>>1028225 ты само обсуждение читал, лупоглазый? во-первых, там только поднимается вопрос, как к концу года сделать план по переходу на cmake, а не перейти на него. во-вторых, сообщество, скорее всего, пошлёт тот комитет найух.
>>1028600 куте виджет фремворк, а буст сборище какийто нинужной хуеты. че правда смузихлебы для тогоже хэша или ололосортировки прикручивают целый буст?
>>1028600 Куты - большая коллекция разных библиотек, использование которых предусматривает использование остальных библиотек, поэтому Куты - фреймворк.
>>1028615 Куте виджет фреймворк. Ясно. Борщехлёб ничего в жизни не писал на крестах и спрашивает зачем языку у которого в стандартной библиотеке есть хуй с кривыми строками нужен буст.
>>1028679 В бусте всю его дженерик часть тоже легко использовать вместе. Ладно, скажем так — буст это то, какой должна быть стандартная библиотека у плюсов, чтобы на них можно было написать что-то большее чем сортировочку.
>>1028703 и после того как они в бинарники телеметрию свою записывали ты все еще пользуешься разработками от MS? Удивительно сколько человек говна готов сожрать лишь бы оставаться в своей комфортной коробочке.
>>1028711 >>1028714 Почему эти дурики не могут сделать переключатель диалектов, чтобы таки можно было включить стандартное поведение? У ГЦЦ есть же диалект gnu++, почему МС так не может?
>>1028742 ты читал, что там была за телеметрия вообще? Или увидел слово и сразу истерить? Так вот, это было сделано только для эвентвьювера виндового, и все.
>>1028720 Тебе-то, тупому борщехлёбу с дивана, конечно лучше всех знать, что буст работает без проблем просто так, а не потому, что определяет для MSVC макру BOOST_NO_TWO_PHASE_NAME_LOOKUP и обходит костылями поведение этого недокомпилятора.
>>1028759 >Почему эти дурики не могут сделать переключатель диалектов, чтобы таки можно было включить стандартное поведение? Потому что написали убогий парсер 30 лет назад и пока бабки текли рекой и никто не задавал много вопросов "почему соответствующий стандарту код ведёт себя у вас как-то странно", его не трогали.
>>1028762 >есть такой свитч в 17ой версии Он только отключает нестандартные расширения, типа байндинга неконстантных lvalue-ссылок к временным объектам или передачи строковых литералов по указателю на char (без const). Two-phase name lookup никаким ключом не включается, т.к. там нужно серьёзно лечить парсер.
>>1028798 Я думаю, что ты такой злой только в интернетах, а в реале ты забитый омеженька. Хороший и умный специалист не будет разводить такую злобу на АИБ.
>>1028682 лучше было бы чтобы на плюсах вообще не было стандартной библиотеки и буста не было бы а юзали бы алгоритмы и структуры, предлагаемые ядром конкретного фреймворка qt, gtk, mfc, atl.. тогда весь код был бы написан в единообразной манере (и не только сам с собой, но и с кодом фреймворка, который он использует)
>>1028985 Она никогда нормально не работала, и была сделана исключительно для какой-то йоба сертификации в америке ровно настолько, чтобы пройти эту сертификацию. И потом ее нахуй выпилили.
>>1028940 POSIX принят как стандарт и работает вообще везде — от линуксов до маков с прочими бздями.
Но сперма дауном мало кривой фс и реестра, и кучей говнища которое тянется еще из доса, они тут сидят выебываются что у них компилятор нормально работает (при том что под ним даже буст, который пишется на самых канонических стандартах, не собирается без допилки костылями коими козыряли выше (привет Borland c++)).
>>1028990 бла бла бла а на деле это была разработка сторонеей фирмы, потом ее прикупила майкрософт и да, на судя по формумам где сотни тысяч сообщений, она таки активно юзалась блядь, нахуя ультимативно писать о том, в чем не разбираешься?
>>1029152 А вот хуй знает. Точно известно только то, что при использовании пайпов придётся на каждую передачу делать по несколько сисколлов и аллоцировать сам массив по 2 раза.
>>1029152 Напрогай и попробуй. Самый простой вариант - запустить $ cat /dev/zero | wc -c и посмотреть IO в iotop или в /proc/ . На винде сложнее. Оверхед зависит от воплощения. >C pipes Это POSIX, если что.
>>1028989 Я хуй знает как насчет этих говнореализаций маппингов сущностей БД к объектам крестов с использованием макросов относиться (вроде бы это и отвратительно, стоит лишь посмотреть на то, как делаются всякие кастомные классы дескрипторов для COM, но с другой стороны у языка никаких средств для организации статической рефлексии нет), так что я бы предложил использовать внешний парсер для описания сущностей на нейтральном языке, который бы сам генерировал и запросы и исходный код, наподобие protobuf. Если проект будет долго жить и весьма серьезный, вполне имеет смысл написать собственный такой пре-процессор.
>>1029217 >> Это POSIX, если что. Вроде же в winapi есть свои пайпы, только они там какие-то ебанутые. Я как-то решил попробовать две программулины скрестить при помощи их пайпа, но в итоге говна объелся. Меня люто бомбануло с их LPOVERLAPPED, TCHAR, и прочей поебистики, ну и еще то что это не тот пайп, который я ожидал получить из никсов.
Анон, сейчас начал разбираться с тредами и не совсем понимаю.
Есть три класса Первый класс - основной, содержит в себе основную программу. В нём, по событию, запускается исполняемая функция из третьего класса и всё работает отлично. Но, кроме этого события в первом классе создается объект из второго класса, который, в свою очередь создает тред, в котором происходят события, которые запускают функцию из третьего класса и всё, пизда. Причём не работает не весь код третьего класса, а только его часть, связанная с библиотекой. Собственно не стартует CApplication
Как это починить? Сам код, ниже.
class first #include "CApplication.h" ... #include "third.h" #include "second.h" ... void first::OnBnClickedCheck() { ... third myTimer.stop(); myTimer.start(5);
second::checkIt(); ... }
class second #pragma once #include "CApplication.h" ... #include "first.h" ... bool checkIt::OnBnClickedCheck() { ... CApplication app; // Start Excel and get an Application object. if (!app.CreateDispatch(TEXT("Excel.Application"))) { AfxMessageBox(TEXT("Couldn't start Excel and get Application object.")); } ... }
class third #pragma once #include "CApplication.h" ... #include "first.h" ... void timer() { ... second::checkIt(); ... } void third::start(int sec) { std::thread th1(timer, this, sec); th1.detach(); }
>>1028033 (OP) Пацаны, я знаю, я говноед и всё такое, но, пожалуйста, помогите с примером, C++ Builder, надо в dbgrid окрасить ячейку в столбце в зеленый, если ее значение == "Принят", и в красный, если == "0". Есть вот такой код: http://ideone.com/DIB0HP
Он работает, но окрашивает всю строку, соответственно вся таблица у меня пикрелейтед, что мне нужно добавить, чтоб окрашивал только в первом солбце? Просто ткните носом, я охуительно буду вам благодарен!
>>1029740 >какой самый анальный метод проверки файла на аутентичность? Я хз. Но я бы попробовал прочитать видео ффмпегом. Если читается, то значит без приписок. С фото наверн тоже аналог есть.
>>1029740 Если тебе нужно убрать все лишнее, то проще всего перекодировать. Иначе нужно обрабатывать КАЖДЫЙ контейнер отдельно, и городить логику сплитинга мержинга (учитывать, что у видео может быть несколько дорожек озвучки, или субтитры, например. или теги в музыкальных форматах)
>>1029742 >Если читается, то значит без приписок Не факт, он вполне может пропустить все до обнаружения контейнера, обработать его содержимое, а на остаток забить.
Аноны, а вы юнит тесты гоняйте? Блять я попытался к проекту линуксовому гугл-тесты подрубить и ахуел, какого хуя Эко система плюсов такая уебищная и сложная?
>>1029740 Самый анальный - только ЖПЕГ. Тебе нужно реализовать поддержку всех контейнеров, никакой общей проверки нет (но тебе не нужно поддерживать все кодеки, например).
Два года говнокодил в НИИ, используя Qt, потом отдыхал полгода. Недавно попробовал устроиться в коммерческую контору, где дали тестовое задание перед собеседованием. Нужно было сделать за неделю многопоточную внешнюю сортировку с ограничением по выделяемой памяти, используя только STL. В итоге обосрался. Мерж распараллелить не смог, постоянно смотрел в референсы по каждому чиху, и все это было медленно, больно, и вообще наговнокодил, хотя старался придерживаться принципов SOLID. Два раза просил перенести срок сдачи. Сдал им свой opus magnum через две недели, и уже неделю нет ответа. Пришел к выводу, что я - ебучий макак нужно больше практики.
Посоветуйте где взять задачи, решая которые можно натаскаться на решение настоящих повседневных рабочих проблем, подтянуть знание STL и повысить самооценку.
>>1030208 Не в этом случае. При внешней сортировке размер сортируемого массива данных значительно больше объема доступной оперативной памяти (M), его в ней просто не уместить. Поэтому он читается кусками размера M, сортируется как угодно и сбрасывается на внешнее хранилище отсортированными кусками. Потом эти куски читаются одновременно во входные буферы, объединяются и пишутся на место оригинального файла. Здесь описано подробнее. https://en.wikipedia.org/wiki/External_sorting
Анон, подскажи. Только начал изучать C++ (второй день), читаю книгу Стивена Праты, всё нравится, но никак не могу ответить на один вопрос. Смотри, тут сказано: >"1 Байт обычно означает 8-битную порцию памяти. В этом смысле байт представляет собой единицу измерения, которая описывает объем памяти в компьютере, причем 1 Кбайт составляет 1024 байта, а 1 Мбайт — 1024 Кбайт. Однако в C++ байт определен по-другому. Байт C++ состоит из минимального количества смежных битов, достаточного для того, чтобы вместить базовый набор символов для реализации. Другими словами, количество возможных значений должно быть равно или превышать число индивидуальных символов. <...> С другой стороны, в интернациональном программировании могут использоваться намного большие наборы символов, такие как Unicode, поэтому в некоторых реализациях могут использоваться 16-битные или даже 32- битные байты. Для обозначения 8-битного байта иногда используется термин октет"
Я всегда думал, что байт - это байт и он всегда равен 8 битам (ну, может иногда 9), а тут выходит, в C++ под байтом понимается немного другое. И что это вообще значит? >минимального количества смежных битов, достаточного для того, чтобы вместить базовый набор символов для реализации Это символы, с помощью которых может быть записан исходный код? Ненавижу, когда в книгах ставится какой-то тезис, но потом он нигде не объясняется. Соре, если вопрос элементарный, можешь назвать идиотом, но объясни, плиз.
>>1030218 Как-то немного странно описано. Конечно, байт — char, unsigned char, std::byte — должен вмещать символы из стандартного набора (хранятся в char) и быть как минимум 8 бит (чтобы с помощью char можно было кодировать UTF-8). Но вообще его размер выбирается как размер минимально адресуемого куска памяти, а не из соображений кодирования базового набора символов.
>>1030255 Ну йоу, это же упрощения. Конечно, кибибайт, но их тупо непривычно использовать простым смертным, которые привыкли к стандартным единицам измерения. Поэтому по соглашению, 1 килобайт = 1024 байта. Так просто принято. Но да, фактически, 1 килобайт = 1000 байт.
>>1030190 Скинь свой код, я как-то делал абсолютно тоже самое. Только я использовал in place parallel merge sort написанный с нуля где часть кода была написанна на avx intrinsicts, для сортировки блоков и priority queue для слияния отсортированных блоков ( на самом деле там было несколько вариантов алгоритвом слияния, priority queue был дефолтным ). В качестве либы для потоков использовал Intel TBB. Вообще там я долго возился с оптимизациями, прифилировал и замерял производительноть практически каждой инструкции. Но на моей машине все упиралось в memory bandwidth на фазе сортировки ну и соответственно IO делей хоть я и использовал всякие техники для оптимизации IO и memory paging.
>>1030371 Ты слишком крут. Я едва наговнякал параллельную сортировку на тредах из STL с интросортом, и слияние при помощи priority queue. Пытался его распараллелить, но не осилил вовремя. Рожал это с перерывом на сон и еду в течение двух недель. Не знаю зачем это тебе. Посмейся хоть https://my.mixtape.moe/pfruig.7z
>>1030379 Собрать не смог на Arch Linux GCC 7.1.1 make[2]: No rule to make target 'CMakeFiles/large_file_sort.dir/src/settings.cpp.o', needed by '../tests/check_sort_order'. Stop.
Но беглый осмотр кода, показался мне слишком запутанным с этими разными классами, и я не понял момента с потоками. Ты создаешь тред пул на n потоков и потом читаешь туда n чанков при заданном лимите в 512 мб это уже получает 512 n что на 8ми ядерной системе уже будет уже 4 гб памяти только для данных. Да и использовать поток для сортировки каждого блока мне кажется не лучшей затеей, мне кажется работадатель прежде всего хотел бы увидеть как ты реализуешь параллельный алгоритм сортировки. Покури divide and conqueror алгоритмы типа мерж сорта которые хорошо паралеллятся, хоть он и не inplace по дефолту, но существуют inplace реализации, конечно не так просты в реализации как оргинальный алгоритм, но если не заморачиваться над производительностью то реализация в лоб тоже не плоха и достаточно проста. А можешь вообще юзать memory mapped file в качестве auxiliary массива. И кстати мелочи, но все же, твоя очередь с названием Atomic ничего общего с atomic не имеет, она Blocked. Могут подумать что ты не шаришь в этом.
>>1030394 А я и правда не особо шарю. Я использовал там доморощенный контроллер выделения памяти вместо аллокаторов, потому что не знал как их использовать. Не знаю и сейчас, лол. Он делит заданный объем памяти на определенное количество "слотов". В такой слот читается кусок исходного массива, затем слот перемещается в задачу сортировки, которая в свою очередь скармливается пулу потоков. В этот же пул отправляется ещё одна задача, которая по завершении сортировки запишет содержимое слота во временный файл на диск. И так до конца исходного массива.
Когда "слот памяти" выходит из scope, он сигнализирует об окончании своего существования из деструктора в контроллер памяти. Таким образом контроллер делает очередной слот доступным. В итоге используется только заданный объем памяти плюс оверхед хуй знает на что где-то в пять мегабайт. По умолчанию предел выделяемой памяти равен 512 МБ, но можно указать другое значение из командной строки.
Спасибо за совет мудрый, так и сделаю. Иначе мне нехуй в этой профессии делать.
>>1030190 >Нужно было сделать за неделю многопоточную внешнюю сортировку с ограничением по выделяемой памяти, используя только STL. Мне одному, блядь, кажется, что "многопоточная" - то не о тредах на ЦП, а о N-way merge?
Короче, быстро решительно накидайте ссылок или ключевых слов, чтобы написать бота для игры, т.е. мышка сама должна двигаться находить участок на мониторе для клика (то окно игры), кликать, двигаться и снова кликать и двигаться и снова кликать. В чем пейсать вижуал студио или QT? Кресты учить лень, я веб макакен, просто накидайте в какую сторону гуглить и какие либы накатывать или что там.
>>1030607 Зато десятка поддерживает говно еще с икспи. Где-то книжка даже была про long term support в сперме, где рассказывалось как в хп и висте даже старые баги эмалировали чтобы софт на них накостыленный работал.
>>1030634 воу, кокой грубый)) да уже все запустилось, прикольная штука. а как можно кому-нибудь на комп секретно установить этот аутольт, чтобы прожки на нем запускались?))
Гайз, нид хелп. Как последовательно воспроизводить видеофайлы, не меняя постоянно сурс в коде? Файлы имеют почти одинаковые имена, кроме цифр. типа file1.avi file2.avi
>>1031104 Для начала найди узкие места в твоей программе, возможно, ты излишне копируешь или применяешь паттерны в ненужных местах (избыточное количество паттернов). Многие проблемы можно решить при помощи корректировки владения ресурсами и применением подходящих для данной ситуации алгоритмов. Своим ассемблером ты только навредишь себе, для более низкоуровневой работы с MMX/SSE/AVX и т.д. инструкциями есть интринсики.
>>1031147 Так выучи c сначала, а потом в интринсики лезь. Для подавляющего большинства применений оптимизаций любого из популярных компиляторов достаточно, чтобы не использовать интринсики (будь это clang, gcc или msvc). Если прямо пиздец интересно, то вот тебе ключевое слово intrinsics (вторая строка в гугле и у тебя в руках уже охуенное руководство от интела)
Я всё продолжаю потихоньку читать книгу из шапки "Принципы и практика С++" и возникают некоторые вопросы. Дело в том, что я чёрт знает где, и до места, где ловит интернет надо больше часа ехать, а с собой загрузил только несколько книг. Заместо звёздочки • пишу, звёздочка уходит в разметку.
Прочитал главы про классы, и там много воды и недосказанностей.
Картинка 1. Т1 наследует Т2. При этом все члены Т1 переносятся в Т2. Насколько я понял, переопределить можно только виртуальные методы. И через =delete можно удалить любой метод. Выходит, наследуемый класс может только дополнять предка, и очень ограниченно его изменять? 1. Как сделать так, чтоб в 45 строчке вызывался только конструктор для Т2, без Т1. Например, какая-то инициализация данных замещается другой и старая уже не нужна. Можно конечно в T1 сделать ещё один конструктор и в T2() вызывать именно его. 2. Размер T1 - 4 байта, Т2 - 8 байт, то есть старая 'а' из Т2 ещё жива. Как получить к ней доступ без функции T1::аа()? Из того, что я смог придумать работает только жуткое static_cast<T1&>(h).а, остальные варианты порождают временые копии, вызывают всякие деструкторы и ругаются на lvalue. 3. Есть ли возможность изменить тип 'а' или вовсе удалить это поле у потомков? Не вижу никаких технических причин, почему классы могут только расширяться. Если не использовать виртуальных методов, то это будет просто более краткой записью. 4. Почему если я объявляю деструктор виртуальным, то вызывается всё-равно оба? По видимому в ~T2() неявно вызывается ~Т1() для наследуемой части, верно?
5. Про new/delete. Предположим, существует массив на 200 мб. Для того что бы добавить один элемент, нужно выделить ещё один массив на 200 мб памяти (+1 элемент), скопировать туда первоначальный массив и только потом его удалить. То есть фактически для функционирования программе нужно в два раза больше памяти, чем она реально потребляет. Тем не менее все вокруг пользуются new/delete (даже, если верить книге, STL работает по умолчанию через них) и никого нисколько не задевает эта проблема. Это нормально? Я немного не понимаю как это вообще так. Чем был плох сишный realloc? Немного допилить, чтоб оно не требовало непрерывного приведения типов, да и всё.
6. Если я в объявлении T1(const T1& n) пропущу const, это существенно? Компилятор сам в тривиальных случаях довешивает const, inline и прочее или надо каждый раз писать всякие const char• const str, лол?
Картинка 2. 7. Что имелось ввиду то про const? В книге это пункт 18.5.1, но в реальности всё работает вполне логичным образом. 8. void• operator new() В книге ничего про это нет, случайно в подсказках ide увидел такую конструкцию. Выяснил, что можно перегружать даже оператор ->, только как это использовать не совсем ясно. Посоветуйте хорошую книгу или статью про перегрузки, пожалуйста.
9. Использую qtCreator+cmake. Есть проект, в его папке находятся файлы h, cpp, CMakeLists.txt и CMakeLists.txt.user. Как-то по нормальному его можно скопировать в другую папку? Если не удалять CMakeLists.txt.user, то он лезет в оригинальные директории. Заменять в нём пути через поиск попахивает извращением, а если удалять этот файл, то заместо красивых папок "Release"/"Debug" там чудовища. Это мелочь, конечно, но всё же. Может быть как-то в CMakeLists.txt можно строго определить некоторые настройки из CMakeLists.txt.user, не знаю.
10. Есть h-файл (картинка 3) c реализацией функций(в нём не только определения), в нём обычный #ifndef, но если я через include подключаю его более чем в одном cpp файле, то он ругается на multiple defenition функций. Если вынести реализацию в cpp файл, который цеплять в CMakeList.txt, то всё ок. Если явно вставить это в код в двух разных cpp, то та же ошибка. То есть #ifndef работает как будто независимо. Нельзя создать немного кода в h-файле, так чтоб для подключения не приходилось вообще трогать CmakeList.txt? Прощу прощения - это очень-очень нубский вопрос, но мне просто прочитать негде, в книгах, что имеются, про это вообще ничего нет, а искать что-то очень сложно, страницы по две-три минуты открываются, если вообще открываются. Сейчас же новые веб технологии - страницы жутко тяжёлые.
>>1031974 1. Конструктор родительского класса будет в любом случае вызван перед вызовом конструктора наследуемого класса, при этом, если конструктор не указан явно, будет выполнена попытка вызова конструктора по-умолчанию. 2. Измени области видимости переменной на protected, к примеру 3. Удалять члены из родительского класса нельзя. Это привело бы к печальным последствиям, к примеру, взять урезание типов (когда классы передаются по значению, а не по указателю или по ссылке) 4. Сначала вызывается деструктор наследуемого класса, потом родительского в порядке обратном инициализации конструкторов, насколько я помню. 5. Ты не можешь постоянно хранить данные в стеке (смотри что это такое), при этом размер стека на поток очень ограничен (например в моем линупсе он 8 мегабайт на процесс), конечно, можно увеличить лимит стека, только вот принципа работы стека это не меняет. 7. Например, у тебя есть два объявления: a. void T1::a() const; и b. void T1::a(); Тогда если в конструкторе с переданным в него константным объектом ты вызовешь метод n.a(), то будет вызвана перегрузка a, а если конструктор определен как: T1::T1(T1 &n) { n.a(); } тогда будет вызвана перегрузка b 8. Ну ебать 9. CMakeLists.txt каак правило, является единственным скриптом, ответственным за генерацию проекта CMake (хотя есть и множество ислючений)
>>1031974 >> инициализации конструкторов вызова конструкторов, конечно же
>>1031990 10. За объявления отвечает one definition rule, его сразу сложно описать, так что лучше тебе посмотреть на cppreference и заодно прочитай про линковку. Если не хочешь сильно заморачиваться, можешь просто добавить inline к объявлению твоего метода и тогда все должно заработать.
Как по человечески перекатывать гору кода из 2012 студии в 2017? Ясен хуй в 2017 оно не собирается просто так, ошибок дохуя и за ними идут новые, гугл почти нихуя дельного по ним не пишет. Лопатить 500 метров исходников не улыбается, там ещё и зависимости урчат на студию. Киньте ссылок, чтоб я в человека превратился.
>>1032082 Ты что auto_ptr использовал где ни попадь. Сильно много с тех времен из станарта не удалили или дело в том, что студия криво импортирует старый проект?
>>1032090 > студия криво импортирует старый проект? Вроде ровно, предложила обновить целевую платформу, но что-то пару проектов так и не осилила. Там какие-то батники, из которых ошибки лезут, выход с кодом 2 и прочая ересь. Ну и вообще ошибок мне 1386 штук накидал. Мне теперь руками всё это пердолить? Я, если что, это говно вообще не трогал раньше, но у людей по 2012 студией собиралось.
>>1032106 Ну вот например на пиках обновил до 141, а ему всё 140 мерещится. Можно ещё раз обновить, он напишет - да, обновил, заебись теперь, но нихуя.
>>1032111 Ебать. Ну с такой хуйней я точно никогда не сталкивался. Можно попробовать батником каким-нибудь пройтись по всем файлам проектов (vsproj которые) и посмотреть вхождения 140 версии, больше мне на ум ничего не приходит. Я оттого давно и пересел на внешнюю систему сборки, потому что обновить проект на студии это как обновлять линупс до нового релиза, без еботы почти никогда не бывает.
Парни. А в какую сторону САМОРАЗВИВАТЬСЯ. Я вот год сервак для игор в ДС на плюсах катаю, думаю чему бы еще научиться? Выбираю между вкатом в системщину под линукс (embedded, драйвера итд) и чем то рядом с МАШИН ЛЕРНИНГОМ и обработкой изображений. Есть идеи?
>>1032263 > Саморазвитие > На плюсах В ближайшие 10 лет работы на крестах будет все меньше и меньше, в целом все будет медленно загнивать. Можете скринить
>>1032116 >обновлять линупс до нового релиза, без еботы почти никогда не бывает Диванного кукаретика видно сразу. Апнул версию абанты уже как минимум 3 раза. Самое еботное что при этом нужно было делать — перезагружать ЭВМ. Ну это, впрочем, как при любом обновлении ядра.
>>1032378 ты доебан попробуй обновить у которого релизы раз в пятилетку выходят А если у тебя была ката от амуде и ты ставил фглрх, вот тогда то и начинается поебота, если его не удалить
>>1032555 я говорю о том, что это контрольный выстрел, там дохуя проблем вылазит, перелезь со своей попсы на что-то другое (только не на rolling версию) вероятность прихуеть от смены версий увеличится
>>1028033 (OP) привет кто нить пробовал линукс поковырять, например допилить шифрование и доп функционал? я не про бужедор ось, а просто подпилить что то к существующей оси
>>1032522 Нихуя не понял. Что за col и row? Что такое k, и почему итерируется только до 4? У графа какая-то сомнительная реализация. Почему не используешь контейнеры? А по делу, visited можно хранить индекс предыдущей вершины, а когда найдешь искомую вершину пройтись по visited в обратном порядке. Если путь неважен, то вместо вершины можно сумарную дистанцию пихать.
>>1033069 Вот всегда не понимал этого. Причем обычно этим занимаются те, кто пишет на всякой хуйне вроде ruby или php.
То есть как байтоёбить, так это пердолинг. Только байтоёбство и отсутствие абстрактной хуиты приносит пользу.
А вот то что ты git юзаешь из консоли и набираешь код в vim'е - пользы тебе не дает никакой. Всю жизнь сидел в студии, юзил решарпер, отладчик и оконные приложения для контроля версий. Вот зачем?
>>1033081 я ходил на собесы в москвоский Яндекс недавно. Спецом спрашивал про студию у людей, т.к. заебало сидеть с красноглазой парашей.
Так вот - мегакрутые чуваки, которые меня собесили (бывшие работники гуглов\майкрософтов и прочего), все пользуются студией и им норм. А илитарии с двачей юзают исключительно вим и тратят хуеву гору времени на то, что нормальные люди делают 1 клико.м
Помню у меня в универе был один такой арчеблядок. У него вечно бомбило когда я его спрашивал вопросы по железу. Например "от скольки вольт работает процессор", или чем "RISC отличается от CISC", или "чем отличаются защищенный режим от реального"?
Вот скажите, линяри, почему пердолиться с софтом это благородно, а пердолиться с железом - зашквар? Компьютер - это электронное устройство. Я считаю что его надо знать. А компьютеры поставлять в наборе "спаяй сам". А то раньше мой батя звуковуху сам паял, были времена.
>>1033098 >поисковый движо который кроме рекламы и говна нихуя не находит, впрочем как и гуглапараша >для машинного обучения хуинного, бигдата и машинленинг бесполезная хуета для развода лохов
мимонюфаг третий день кодю28/07/17 Птн 11:34:23#272№1033143
аноны, в чем хуйня? cpp.sh/66fmk впервые с такой ошибкой столкнулся
>>1033143 > ... > line 12: coat << "Vvedite ocenki, dlya vihoda napishite -1"; > ... > 12:5: error: 'coat' was not declared in this scope > 'coat' >'COAT' Быть может там всё же должен быть cout?
>>1033145 Ничего плохо, если правильно синхронизируешь. Ну и не используешь потоко-зависимые хендлы, которые нельзя создавать в одном потоке, а использовать в другом
>>1028033 (OP) Пишу приложение для расчета зарплаты на QT + SQLite. Уже охуел от архитектуры. Посоветуйте книги по ООП-дизайну приложений, чтобы не охуевать так.
Короче, есть статически скомпилинная кутя. Всё компилится, линкуется и запускается, но QAudioDeviceInfo и QCameraInfo наотрез отказываются обнаружать динамики, микро и камеру хотя с обычной кутей все заебись. Есть предположения что это и как исправить?
АНАНАСЫ, не пойму что я делаю не так. Нужно найти QWidget в std::vector<QWidget>. std::find работает, выдает итератор. Пытаюсь удалить объект delete *iter, а потом убрать из вектора .erase(iter), но программа крашится.
>>1033092 >Компьютер - это электронное устройство. Я считаю что его надо знать Нахер иди. Это нужно знать только если ты школьник с васма и разрабатываешь вирусы. Там постоянно ведутся вялотекущие срачи об архитектуре штеуда и его реальном и защищенном режимах. Зачем все это знать человеку, который не пишет драйверы или малварь? Не навязывай людям свои интересы, и не будешь послан или унижен, не ответив, в чем разница между pop и ROP
>>1033368 Я не виноват, что Страуструп намеренно придумал язык, в котором нет никакой логики. Такая хуйня даже под наркотиками не может прийти в голову. Он намеренно делал ебанутый язык, чтобы не пердоля 5 лет книги по нему нельзя было вкатиться.
Паршу файлик через boost spirit x3. Следуя примерам из доков получается что-то вроде: https://pastebin.com/VZ5LGwQ8 Много кода дублируется, и возник вопрос, можно ли сделать из x3::rule<class %rule_name%, %SynthAttrType%> %rule_name% = "%rule_name%"; auto const %rule_name%_def = %some_nonterminals%; BOOST_SPIRIT_DEFINE(%rule_name%);
что-то вроде MakeRule<%SynthAttrType%> %rule_name% = %some_nonterminals%; ?
>>1033069 Никогда не любил студии, лично для меня они неудобные. Консоль, к тому же, в отличие от IDE, дает тебе полный контроль над файлами. Не люблю я, когда студия сама решает, что и куда ей девать.
>>1033426 Я не говорю, что файлы пропадают из рабочей папки проекта. Я просто хочу самостоятельно контролировать каждый файл. Я не хочу, чтобы в папке с проектом лежали еще какие-то спец. файлы (например .toml файл у rust). Я не хочу нажимать на ебаные кнопки, при этом не понимая, что конкретно они делают.
>>1033087 Не понимаю зачем использовать Vim, если есть нормальные текстовые редакторы, типа Sublime Text, например. Консоль использую чисто для компиляции/запуска программы.
>>1033433 >нажимать на ебаные кнопки, при этом не понимая, что конкретно они делают обычно на них написано весьма конкретно что они делают.
>Я просто хочу самостоятельно контролировать каждый файл но ты и так контролируешь все файлы ПРОЕКТА, все остальное это выхлоп компилятора и системы сборки, и они в папку проекта не лезут.
>>1033438 >обычно на них написано весьма конкретно что они делают. Я имею ввиду на более низком уровне. Какие параметры передаются компилятору, линкеру. Мне важно это контролировать.
>>1033458 Это все в свойствах проекта содержится, где твоим параметрам еще быть. >>1033460 Спроси у какого-нибудь кто пользуется вимом. Вроде как там можно мутить крутые макросы. >Vim (сокр. от Vi Improved, произносится «вим») — свободный текстовый редактор, созданный на основе более старого vi. Ныне это один из мощнейших текстовых редакторов с полной свободой настройки и автоматизации, возможными благодаря расширениям и надстройкам. >Одна из главных особенностей редактора — применение двух основных, вручную переключаемых, режимов ввода: командного (после запуска редактор находится в нём) и текстового (англ. insert mode, режим непосредственного редактирования текста, аналогичный большинству «обычных» редакторов). Существуют и другие режимы.
>>1033467 > Вим тащит своим функционалом > Вроде как Ты сам то им пользовался? Нах ты утверждаешь, при том, что сам не можешь быть уверен. "Я им не пользовался, но это охуительный редактор."
>>1033483 Когда я сказал, что это говно? Ты сказал: > Вим тащит своим функционалом Я задал логичный вопрос: > Чем именно? И тут оказывается, что ты этим редактором вообще не пользовался >Спроси у какого-нибудь кто пользуется вимом А дальше ты отвечаешь текстом из википедии. Вопрос: нахуя писать, что это крутой текстовый редактор, если ты, мало того, что не можешь объяснить почему именно, так еще и не пользовался им вообще.
>>1033326 Именно. А программисту не обязательно учить vim и git, не зазорно юзать GUI-Версии. Я наоборот сказал что знать, с таким как у вас подходом, нужно дохуища. >>1033359 Редко превышает 3.3
>>1033427 В мире С++ возможно сделать 100% верное и правильное автодополнение и статический анализ. Когда ты просто делаешь ставишь точечку, и тебе IDE показывает, что с этим можно сделать. Такая самодокументация. Ошибки в коде, которые тебе IDE услужливо подсказывает, чтобы двадцать раз не перекомпилировать. Подсказки, предложения по рефакторингу.
А ты выбираешь карго-культ тех времен, когда топовой тачкой был пентиум.
>>1033489 Ты спросил, я ответил. Тебя вообще ебет пользовался я им или нет? >Вопрос: нахуя писать, что это крутой текстовый редактор, если ты, мало того, что не можешь объяснить почему именно, так еще и не пользовался им вообще. Потому что мне так сказала википедия, например.
>>1033507 Может тогда проще сделать в ide режим минималистичного функционала, чтобы кроме текстового файла и подсветки с автодополнением ничего не показывалось? VS вроде поддерживает перепиливание компоновки окон?
>>1033515 Неужели не существует ни одного "умного" текстового редактора, который умеет просматривать импортированные файлы и показывать какие есть функции/свойства у объекта? А ведь вполне реализуемо. Хмм.. может самому сделать?
>>1033535 >Неужели не существует ни одного "умного" текстового редактора, который умеет просматривать импортированные файлы и показывать какие есть функции/свойства у объекта?
Completion с помощью clang сейчас не завёз в свой текстовый редактор только ленивый.
>>1033283 1) LGPL (под которой выпускается Qt) не обязывает к распространению исходников, всего лишь надо предоставить любой способ замены либ Qt на произвольные, например - распространять .obj-файлы и инструкцию о компиляции. 2) Пока он ничего не распространяет, он вообще ничего не должен. >>1033289 В этом куске всё правильно, ищи ошибку в другом месте. >>1033365 >Эта хрень имеет какой-то смысл? Первое - это прединкремент. Второе - постинкремент. Поищи обсуждение в прошлых тредах. >>1033410 Предлагаешь писать string("huypizda") вместо "huypizda"? >>1033416 >BOOST_SPIRIT_DEFINE Это макро. Вместо макро может быть только другое макро, тимплитом ты его не заменишь (если ты не знаешь, что делает это макро. В бусте не шарю. >>1033424 А у тебя его и не было. >>1033425 Сколько строк/байт в самом большом твоём проекте? >>1033458 >Я имею ввиду на более низком уровне. Какие параметры передаются компилятору, линкеру. Мне важно это контролировать. Специальная страничка в свойствах есть, где это написано, и напротив большинства свойств написан компиляторный свитч. >>1033522 КутыКректор тебе подойдёт, как и мне, но он не без недостатков. >>1033540 Clang Code Model. >>1033573 >Какой тип выбрать для использования аппаратных регистров целиком? 1) Посмотреть размер регистров. 2) Использовать uint32_t, uint64_t и так далее.
>>1033597 >распространять .obj-файлы и инструкцию о компиляции. По существу, если это "работа, которая использует библиотеку", тогда должна быть возможность линковки программного обеспечения с новой версией продукта, лицензируемого под LGPL. Самый часто используемый метод это сделать это использовать "подходящий механизм разделяемых библиотек для линковки". В качестве альтернативы разрешена статическая линковка если предоставлен исходный код или объектные файлы для линковки.[2] https://ru.wikipedia.org/wiki/GNU_Lesser_General_Public_License Ога
>>1033598 С++ (и даже C) - это высокоуровневый язык. Максимум того, что ты можешь найти - uint32_fast_t. Есть процессоры с 32-битными адресами и 64-битными регистрами. Есть и ARM - в 64-битных операциях пара регистров используется, как один, и никакой практической разницы между парой и одним регистром нет. Если ты дошёл до использования регистров, ты пишешь под одну архитектуру, и размер регистров ты знаешь.
>>1033620 >С++ (и даже C) - это высокоуровневый язык Да не, это хуево задизайненный низкоуровенный язык и еще один язык от него эту хуевость унаследовавший. Хотя в то время, когда С появился,пока все писали себе компиляторы сами и это проблемой не было.
>>1028033 (OP) Анон, кто нить пробовал переписать драйвер для какой нибудь железки. Например мп3 плеер, чтобы помимо всего прочего он отправлял данные (как делают антивирусы и многий другой софт);
Нужен tab bar из андроида (material) в Qt Widgets. Как такое реализовать? Наследоваться от QTabBar, а потом что? Как там кастомные кнопки делать? Или можно как-то с quickcontrols вытащить?
>>1033772 Можно либо использовать мобильные контролы на мобилках с мобильным QML, либо использовать десктопные виждеты на десктопе. >Наследоваться от QTabBar, а потом что? А потом с нуля всё обрисовывать ручками, писать всю логику вроде переключения табов и их анимации.
>>1033819 как? я так понимаю мне нужно реимплементнуть paintevent, но не у qtabbar ведь? или нужно создать новый виджет, потом реимплементнуть addTab и каким-то образом пририсовывать полоску выделения снизу?
>>1033898 >Какого хуя uint8_t выводится в std::cout как символ? Возможное объяснение тебя не устроит. uint8_t - это typedef char uint8_t на большинстве архитектур, а char - это тип для букв в Си. Мне бы тоже хотелось, чтобы uint8_t выводился числом, а char - символом.
Поясните в чем смысл подобной декларации класса Hash внутри пространство имён Foo::Bar?
Чтобы не нужно было инклудить хедер? Программа потом линкуется с либой, где этот класс определен. Очень часто в файлах, которые я рассматриваю классы декларируется таким образом, но никак не используются. Т.е. если сделать Ctrl+F по файлу, то слово Hash там встретится 1 раз -- только в самой декларации. В таком случае можно эту декларацию удалить?
>>1034089 Напиши кроссплатформенный (windows xp-7-8-10(metro-интерфейс тоже) x32x64, linux, MacOS) ежедневник с почтовым клиентом и интеграцией с мобильными (ios, Android 4 и выше, WP) приложениями (их тоже напиши)
>Если я в объявлении T1(const T1& n) пропущу const, это существенно? Компилятор сам в тривиальных случаях добавляет const, inline и прочее или надо каждый раз писать всякие f(const char* const str) const {...}, даже для функции на одну строчку, лол? Всё ещё очень интересно и любопытно.
>>1031990 Понятно местами, благодарю. 2. Кстати говоря, я подобрал. Можно использовать h.T1::a и h.T2::a для получения доступа к "а" предка и потомка. И как я сразу не догадался. Конечно, всё ещё не совсем понятно, зачем мне такой синтаксис.
>>1034333 >Браузер свой запилим Форчонг/г пилит, можешь с ними поделать. >>1034334 >f(const char* const str) const {...} Второй конст не нужен, третий конст - только для методов конст-классов. Что ты порешь? Это консты с тремя разными ролями. >это существенно? Всего лишь не сможешь передавать часть констант, делов-то.
Есть ли какой-то традиционный синтакс/способ для обозначения членов класса с разными модификаторами доступа public, private, protected в документации? Цветом или еще как-то (звездочками, крестиками, плюсиками)?
>>1034415 Когда программист ебланит и пишет костыли. Виртуальный деструктор может быть нужен только в базовом виртуальном классе, но явно не в унаследованном интерфейсе.
>>1034424 >Каких "таких"? Уточни вопрос. Таких ебанутых, как на пике. Я до сих пор не понял зачем все это нужно. Класс Foo потом еще раз наследуется в Foo2, который в свою очередь наследуется в Foo3.
>>1034494 http://en.cppreference.com/w/cpp/language/static The declaration inside the class body is not a definition and may declare the member to be of incomplete type (other than void), including the type in which the member is declared
>>1034512 Что за игра? Лучше бы в gd спрашивал. Хотя там тоже нет смысла. Нужны скриншоты и насколько сложные штуки должен делать бот. Думается, с таким подходом оно не сможет в реальном времени работать, а если и сможет, слишком это ненадёжно и кучи нерегулярных ошибок будут. Только миникарту и другие детали интерфейса потрогать есть смысл, ну или если игра двухмерная, конечно.
>>1034526 А если игра трехмерная? Как вообще тогда делают ботов для 3Д игор? Я именно про сложных ботов, способных самостоятельно гасить мобов, распознавать, умер ли моб, где умер, есть ли личные сообщения и приглосы. Про данжи пока не говорю.
>>1034440 Я думаю нет тут глубинного смысла. Тем более с такой иерархией наследования. Просто кто надергал кусков из гугла\SO и попытался слепить то, что скомпилится.
>>1035010 Ну а че за хуйня у тебя ConsoleApplication3.cpp не ебу даже. В списке проектов смотри, жирным выделен активный. Может ты вхуячил гору проектов и выбрал пустой для запуска, а изменяешь совсем другой.
>>1034981 По-другому автоматическое расширение вектора ты не организуешь. Более того, std::vector тоже не может без констр. копирования (если я правильно помню).
Объясните на пальцах, как работают ядра процессора и их потоки. Какими единицами оперируют ядра и потоки, - процессами?
Если php или java приложение работает в одном процессе, оно может выполняться на нескольких ядрах и потоках? Есть ли смысл брать процессор 6 ядер (12 потоков), вместо 4(4)?
>>1035147 Ядро - это физическая единица, поток - логическая. С помощью разных ухищрений разработчики могут упихать команды в одно ядро так, чтобы оно исполняло команды в два потока быстрее, чем в один (но в каждом потоке будет медленнее). Обычно делают два потока на ядро, в Ксеон Фи 6 потоков на ядро. >Если php или java приложение Пошёл нахуй. Тут мёдом намазано? Как вы находите именно этот тред для своих уёбищных вопросов?
>>1035150 Все что ты написал понятно и ребенку, не нужно мне пересказывать вики. Чем оперируют ядра и потоки ты не назвал, и можно ли параллелить один процесс на несколько ядер и потоков, тоже не ответил.
>>1035162 Процесс может иметь несколько потоков, почти все ОС разносят потоки по логическим ядрам. Если твоё говно работает в несколько потоков (ГЦ, например, в отдельном потоке или внутри программы есть создание потоков), то смысл есть.
>>1035189 Спасибо за вменяемый ответ. Получается с ядрами работает ОС, с потоками ядер процессор уже сам? Собственно выбираю процессор между i5-7600K и Ryzen 5 1600. В райзене 6 ядер и 12 потоков, против 4 и 4 у интел. Поэтому возникла дилемма выбора, смогут ли большинство программ использовать много ядер, или же стоит выбрать высокую производительность в однопоточных задачах.
>>1035203 Там никто не шарит. Поэтому здесь спрашиваю. У меня есть путаница в голове, потоки на уровне ядра, потоки на уровне ОС, процессы, threads, fibers, actors, поток выполнения,конкурентность, параллелизм, и т.п, все это смешалось у меня в голове. Еще интерпретаторы и виртуальные машины, у них свои единицы выполнения, они же тоже как-то ложатся на процессы и потоки ОС.
>>1035210 Печально всё это. Никто не пытается понять общую картину получается. Джависты пишут под JMV и не знают, что происходит вне её. Кто пишет на C/C++, знает только как что работает в контексте C/C++. Джаваскриптеры вообще не имеют понятия о многих вещах, потому что этого нет в языке и в V8. Рубисты не знают о конкурентности и параллелизме ровным счетом ничего. На винде свои абстракции, на линуксе свои. У всех свои абстракции, и их так много, что можно ногу сломать.
>>1035255 Нельзя, odr поломается. Объектники компилятся независимо, гарды на хедер не помогут. Линкер сообщит об одинаковых символах.
>>1035257 Студия имеет воз и маленькую тележку послаблений в плане стандарта, особенно по референсам и шаблонам. Чтобы их отключить раньше флажок был -Ze
>>1035232 >>1035206 Берёшь Process Explorer или другую тулзу для твоей ОС и смотришь активность потоков. Если у тебя один на 100% одного ядра - жопа. Если у тебя много с сопоставимой загрузкой - уже лучше. Берёшь свой php, java и запускаешь и пробуешь. >>1035239 Ты запрещаешь существование деструктора для базового класса и потом другой класс от него наследует. Такого быть не может, деструктор должен быть всегда. http://ideone.com/5wjvrN Вот сообщения от GCC.
>>1035269 >Ты запрещаешь существование деструктора для базового класса Нет, это просто чисто виртуальный деструктор. Его нужно реализовать в наследнике, но это не значит, что его вообще нет.
>>1035275 Блет, это не студия. >>1035274 >>1035273 >>1035270 Извиняюсь, но теперь я не понял. То, что он должен быть определён в наследнике - понятно, но почему перенос КОНСТРУКТОРА в другую единицу компиляции что-то меняет?
>>1035286 1. Судя по всему у класса было 0 единиц трансляции (см. 2). 2. Во втором случае была ошибка: автор перестал использовать класс foo, а отслеживание корректности неиспользуемых функций не требующих диагностики (т.е. не завязанных на инстанциацию) - оставлены на откуп реализации компилятора. MinGW/GCC во многих случаях не считают это ошибкой.
Сап анон. Есть ли тут, кто занимается open source проектами? Какой уровень знании требуется для участия в них? Веб макака, которая перекатывается в плюсы.
>>1035440 Для участия в opensource-проектах (дефис, блядь, это русский язык) нужны разные уровни знаний. Во многих продуктах велика доля кода уровня C. Если ты никогда в жизни этим не интересовался, ты сломаешь лицом сто граблей и прочитаешь несколько книг перед тем, как начнёшь писать надёжный код.
Блять, хотел взять QT и пилить свою недостратежку, не осилил даже настройку Креатора. Пойду теперь пытаться для обычных Си найти аналогичную либу. Не на винапи же писать, в самом-то деле. Выглядеть будет хуево
Чтобы инициализировать контекст тебе достаточно будет GLFW и GLEW в нему в придачу (хотя последнее не понадобится, если ты некрофил), для аудио используй OpenAL, например. API у них схожий, насколько я понимаю, так что это не вызовет бугурта при переходе от одного к другому (а если ты белый человек, то вместо того, чтобы делать постоянные вызовы: glGenTextures glBindTexture glTexStorage2D glTexImage2D ... ты завернешь в какие-нибудь свои вызовы), ну и там еще дохуя либ потянется. Действительно, проще использовать Qt.
>>1035643 >ты завернешь в какие-нибудь свои вызовы По хорошему, под это дело нужно свои менеджеры писать, а для этого нужно представлять как будет выглядеть архитектура движка. А это уже довольно сложно.
>>1035645 В этом то и дело. Если начинать проектировать приложение без представления хотя бы общего вида архитектуры, в конечном счете все это выльется в дикий рефакторинг и расхочется работать дальше или все будет переделываться заново.
>>1035779 Переменная есть, только её имя не называется в предварительном объявлении. Означают то же самое, что и те, в которых есть названия параметров.
>>1035873 Почему нельзя? К нему обратиться можно, просто это предварительное объявление (forward declaration), а сама функция находится где-то далеко в другом месте, и, возможно, к ней даже нет исходников, и она в какой-нибудь библиотеке, скажем. А для обращения к ней имена параметров знать не нужно, нужно знать только их типы.
>>1035877 Жил один рыжий человек, у которого не было глаз и ушей. У него не было и волос, так что рыжим его называли условно. Говорить он не мог, так как у него не было рта. Носа тоже у него не было. У него не было даже рук и ног. И живота у него не было, и спины у него не было, и хребта у него не было, и никаких внутренностей у него не было. Ничего не было! Так что не понятно, о ком идет речь. Уж лучше мы о нём не будем больше говорить.
>>1030251 пишешь простецкий make-файл и всё по сути каждый cpp файл компилируется в объектные файлы, потом эти объектные файлы уже линкуются в исполняемый файл
>>1033256 Как ты ее закомпилил? А то я что-то гайды читал-читал, глядел-глядел, нихрена не понял. Все гайды какие-то древние, какие-то еще на 4 версию, какие-то на 5 с начала. Теперь надо качнуть все ихсодники самому с их сайта, куда-то, блядь, распковать, чего-то делать, ничего не пойму.
>>1036021 К стыду, не я её не билдил, кутя корпоративная, так что работаю стем что выдали. >>1036022 Меньше при статической линковке? Это как? Наоборот размер увеличился. У меня, с ядром, виджетами, сетью + платформенные либы экзешник весит 40-50 метров.
>>1028033 (OP) В крудошлепной программе у меня есть классы Employee, Manager и Sales, на которые я отображаю таблицы БД. При создании экземпляров этих классов в фабрике мне надо убедиться, что сотрудник с данным id имеет определенную должность, для этого я делаю выборку position из БД для id сотрудника и сравниваю ее со строкой, в которой хранится название позиции. А где мне хранить саму эту строку? В constexpr поле классов сотрудников?
>>1036181 В constexpr ты не можешь создать объект, данные которого аллоцируются в реальном времени, std::string к таким относится. Так что твой constexpr мало того, что будет бестолковым, так еще и вывалит ошибок при компиляции. Более того, так как должности получаются выборкой из базы данных (я так понимаю, они нихуя не захардкожены), то constexpr работать не будет, потому что это ключевое слово для оптимизаций времени компиляции, когда часть работы по определению значений можно доверить компилятору.
>>1036181 На пальцах: -- constexpr значит, что ты знаешь значение переменной во время компиляции, она литерал, а литералы ты менять не можешь, что похоже на const -- отсюда путаница. -- const означает немутабельность, неизменяемость куска памяти после инициализации, но ты можешь и не знать что там будет лежать во время компиляции.
>>1036088 Вопрос же был именно про исполняемый файл) Проверил на текущей проге: Статик: 34.6 МБ. Динамик: 40.0 МБ (windeployqt.exe), 32.3 МБ (windeployqt.exe --release --no-translations --no-quick-import --no-system-d3d-compiler --no-compiler-runtime --no-angle) и 31.9 МБ (вручную, минимум на моей машине). Как по мне, так несущественные различия.
Умеет ли cmake создавать Makefile сразу с двумя таргетами - Debug и Release, или каждый раз нужно всё вычищать и заново пересобирать с -DCMAKE_BUILD_TYPE=TARGET?
>>1036277 Да, инклюжу целиком, в прекомпайлд хидер, компилер выбрасывает неиспользуемые функции По крайней мере флаг стоит. Когда убираю размер на 4 МБ увеличивается
Идиотский вопрос, но. Есть ли оврехед на каст сырых указателей? Например есть uint8_tptr и несколько вложенных циклов, где внутри шняга вроде ((uint32_t)(ptr))[j]. Должен я кастануть его до циклов или можно не париться, лишнего ассемблерного кода сгенерено не будет?
>>1036346 >лишнего ассемблерного кода сгенерено не будет? Не должно. Но сама идея херовая, очень легко можно вылететь за границу массива. И с переносимостью косяк, на некоторых платформах (MIPS например) многобайтовые значения должны лежать только с определенным выравниванием.
>>1036397 Насколько херовая? Допустим мне нужна структура из данных, состав которой неизвестен на этапе компиляции. Как вообще подобная задача решается на плюсах?
>>1035779 Это прототип функции, в прототипах функций можно не писать имена формальных аргументов, так как у них локальная область видимости, никто о них не знает за границами блока, в прототипах граница блока заканчивается за скобками прототипа. Когда будешь писать определение функции имя формального аргумента понадобится, в прототипе можно забить. В данном случае передается формальный аргумент ссылка.
>>1036527 >Смогли создать тест в котором джава обогнала кресты? Это не возможно, т.к. в С++ всегда можно начать использовать только сабсет си + инлайн ассемблер и подебить в любом тесте.
>>1029001 Зачем нужно что-то кроме стандартной библиотеки для мультитрединга и Boost для сети, файлов и всего остального? Буст же отличная обёртка и над сетевыми функциями, и над прочим.
Ответы на все вопросы - http://en.cppreference.com/w/ http://www.cplusplus.com/reference/
Прошлый - https://2ch.hk/pr/res/1016662.html