Братишки может подскажете шо. Короче есть класс с матрицей (вектором векторов) и отдельно вектором чисел. Я все это дело записываю в set. И у меня как-то странно памяти дохуя уходит после опредеденного момента (больше 10гб). Ну и я так посмотрел sizeof(класс) 80 байт. Умножить на количество элементов в сете получается намного меньше, чем прога жрет. Я вот еще в вижуал стужии запустил профилировщик, пишет там какие-то аллокации векторов матрицы идут постоянно и они вроде как всю память занимают если я туда смотрел, хуй паймешь. Но типа у меня нигде вручную память не выделяется, всё через вектора/сеты, нет new нигде. Как-то вообще можно по-нормальному проверить куда память уходит?
>>1644092 >(вектором векторов Если матрица постоянного размера то лучше array, не будет резервирования больших размеров и переаллокаций. Про сет не понял.
Реализую Nist Frequency Test Within a Block на С++. Собственно, у меня есть бинарный файл, который я читаю в unsigned char и его длина в байтах. Работать мне нужно непосредственно с битами. Требуется разбить последовательность бит на блоки длины M и посчитать в них какую-то хуйню. Вопрос в том как этот ебучий char разбить на блоки? Это ведь не цельная последовательность 0 и 1, а массив из элементов по 8 битов каждый, как из этой залупы нормально блоки выделить, если M может быть и не кратно 8ми? Можно конечно выделять по одному биту, пихать в массив чисел, но это схавает в 8 раз больше памяти. Пиздос, короче.
>>1644408 Может он у тебя был публичный? Дело в том что визуалка не всегда компилирует проект, а тупо запускает уже скомпилированный. Всегда когда такое видишь меняй 32 и 64
>>1644430 Объясни, пожалуйста. Как это соотносится с моим примером? Я уж было подумал, что может в gcc баг, потому что компилирую с помощью 9.2, а на ideone 8.3, но скомпилировал у себя при помощи 7.5 и ничего не поменялось.
>>1644457 Да, меняет. Не надо ждать от разного кода одинакового поведения. Чмо с бардаком в голове. Ты тупорылая хуесосоина сама не видишь свой код из уебанского оформления
>>1644462 Да пошёл нахуй гуру блять, я захотел сделать так, как сделал, и столкнулся с какой-то непонятной для меня приколюхой. Нахуй ты тут срёшь по поводу скобок и интерфейсов уебище?
>>1643956 (OP) Братцы, кто-то занимается разработкой используя VS Code? Подскажите, как настроить его, чтобы можно было из него запускать программы и отладку? Ловлю такую ошибку
>>1644891 В папке воркспейса, надо настроить вот эти файлы tasks.json (build instructions) launch.json (debugger settings) c_cpp_properties.json (compiler path and IntelliSense settings) Конкретные инструкции есть в гугле, vs code gcc и т.д.
Я вам скажу лишь один недостаток C++, друзья. C++ — это гигантская временная черная дыра. Трата времени на C++ — абсолютно бесполезна потому, что результатом станут умения и знания, которые можно применить лишь в C++. Круг замыкается — вы тратите больше времени на то, чтобы больше времени потратить на C++ с тем, чтобы получившиеся знания направить на C++ и тратить время и т.д.
Знание C++ — абсолютно негодное, никому не нужное и никак не продаётся. Вы не сможете купить на знание C++ квартиры, машины, дачи. Пользуясь нормальными языками программирования, вы можете стать художниками, учёными, инженерами, программистами. Пользуясь C++ вы сможете стать лишь дурно пахнущими портвешковыми байтоговнариками в свитере и работать за нищенскую зарплату. И несмотря на то, что, пока вы учитесь в школе (или в университете, но вы безработный), вам такая перспектива нравится и кажется романтичной, через несколько лет вы поймёте, что время утекло в унитаз и его не вернуть.
Все обещания, которые дает комитет стандартизации C++, да и, по большому счёту, все C++говноеды — это пшик, пустые слова, ничего не исполняется. Все достижения этих разработчиков — лишь изобретание велосипеда, копирование технологий; ничего нового они не предложили ни разу. В C++ со скрипом, треском и проблемами работает то, что в других языках уже лет 5 вообще не вызывает вопросов.
C++ — это информационная черная дыра. Занимая всего 1% рынка IT, информацией о нём забит весь IT-сектор интернета. Более того, если вы начнете писать на C++ — вы будете интересоваться только им, читать только о нём, говорить только о нём. C++ — это ложь, сплошная ложь, как в тоталитарном государстве — вам будут рассказывать, что ещё чуть-чуть, ещё несколько лет и мы победим, но на самом деле, если вы посмотрите на обычную статистику, то увидите, что интерес к этому языку с годами лишь падает.
C++ — это черная дыра для вашей самоидентификации. Пока вы молоды, вам кажется, что отличаться от других, принадлежать к какой-то узкой группе людей — это круто, это здорово. Однако, на самом деле, неформалы — это синоним неудачников. C++ изменит ваш взгляд на мир, вы перестанете воспринимать компьютеры просто как инструмент для решения задач, а будете судить людей по тому, на каком языке они пишут. Вам будет казаться, что раз вы принадлежите к 1% людей, то вы стали элитой, ваше мнение важно и значимо. На самом деле, C++обрыганов никто не любит, а единственная реакция на их высказывания — покрутить пальцем у виска.
Если вам хочется программировать на C++, то вас, разумеется, никто не может удержать. Но задумайтесь на секунду — если вы потратите 3-4 года на изучение джавы или котлина, не станете ли вы гуру? Если вы 3-4 года будете изучать науки — не станете ли вы бакалавром? Если будете работать — не заработаете ли вы несколько десятков тысяч долларов? В конце концов, если у вас внезапно появилось 3-4 года свободного времени, то играйте в игры. Хотя бы удовольствие получите.
>>1645073 мне интересно, это только для постфиксных операторов класса для их перегрузки передается еще один параметр неиспользуемые или любой оператор можно сделать постфиксным
>>1645019 Все верно, у меня знакомый работает в одной конторе, ядро системы пишется на си++, прикладуха на всем остальном. Разработчики ядра получают на 30% меньше джавистов. Забавно.
>>1645019 C/C++ программисты это цари современного айти, все рантаймы других языков написаны на сишке или плюсах. Знать как работает компьютер можно только при условии знания и программирования на C/С++. В конечном итоге сишка и плюсы это хардкор, так что человек, прошедший его, сможет с легкостью осовить какую-нить jvm хуйню, дот нет, или фронтенд языки и фреймворки. В айти нет ничего невозможного для байтобояр!
>>1645165 >Знать как работает компьютер можно только при условии знания и программирования на C А вот и веб макаки, считающие сишку языком низкого уровня.
>>1645171 Чел, ос написаны на си. Ниже операционных систем только чистый ассемблер в ring 0, который без слоя абстракций в виде например ядра линукса, нахуй никому не нужен бы был.
>>1645212 ОС пишут задроты. Хакеры пишут под ОС эксплоиты и трояны. Хакеры это рациональные люди, которые не тратят время на переизобретение велосипедов и взламывают жопы по фану.
Аноны, подскажите, пишу стек и итератор для него (переписываю пример с Брюса Эккеля) не компилируется, ругается на Stack::Link *sp; ошибка: C2955: 'Stack' : use of class template requires template argument list https://pastebin.com/mY3wrwZy
>>1645330 Итераторы обычно пихают прямо в класс контейнер, будет и тип понятен и доступ к твоему приватному Link - это будет следующий взвизг компилятора.
>>1645349 А где про это можно подробно почитать? Раньше я вообще не понимал на хуй все это нужно, сейчас стало чуть понятней. Но один хуй лишь только чуть.
Ананасы, можно как-нибудь в злоебучей студии 19 настроить так, чтобы аргументы, принимаемые функцией по ссылке не константной, подсвечивались по особому? Там в настройках подсветки вообще нихуя нет
Господа эксперты, не писяйте на меня, пожалуйста, если вопрос какой-то глупый.
Вообщем, такой вопрос - можно ли как-то перебросить данные в оперативку с жесткого диска, чтобы при повторной компиляции слегка измененного кода не приходилось бы ждать повторного перекидывания файла с HDD.
Поясню. Например, я пишу алгоритм подсчета облака координат для вывода среднего и чтобы проверить прямоту своих рук, я, разумеется, жму F5 в VS. Код компилируется, данные грузятся из базы несколько минут.
Код оказывается хуевым, я переписываю пару строчек, опять жму F5 и опять жду пару минут загрузку базы.
Собственно, если я меняю лишь пару строк алгоритма, то мне не хочется каждый раз грузить базу одних и тех же данных. Можно ли как-то один раз грузануть в оперативку, а потом уже дебажить свой алгоритм?
Первые неопытные мысли, это как-то создать утечку памяти искусственно, не применив delete к массиву/вектору, и в следующий раз сослаться на адрес. Есть какое-то простое решение этой хуйни?
>>1646382 Варианты сходу: 1. Погуглить c++ hot reloading, может есть готовые решения 2. либо грузить файл через mmap 3. Либо сделать виртуальный диск, ram disk и подобное 4. Совсем дурацкая мысль - сохранить дамп памяти, хоть через проги для читов в играх 5. Погуглить про memory serialization, может тоже есть готовое решение, что-то типа того что ты напишешь свой класс по специальной форме, загрузишь в него базу, и потом сериализуешь.
>>1646382 >пару минут загрузку базы Что так долго? Оперативка за такое время переполнится десять раз успеет. А так можно наверное вынести загрузку базы отдельно в виде длл или сервиса, чтобы она постоянно висела. Или может базу поместить на ram диске.
>>1646489 У меня на компе 100 одновременно работающих процессов. И если им нужны регистры, то ос постоянно распределяет эти регистры между ними? Это же куча операций
>>1646496 >100 одновременно работающих процессов Они не работают все одновременно, только сколько у тебя ядер в процессоре. Там у каждого регистры свои.
> Это же куча операций Добро пожаловать в вытесняющую многозадачность. Кооперативная многозадачность проиграла, потому что программировать, будто ты единственный во вселенной, гораздо проще. А, как известно, "worse is better".
>>1646496 Это называется context switch, если мне не изменяет память, на него может уйти 1-30млн циклов процессора (ему надо, например, сохранить 2 килобайта регистров SSE,AVX и т.д) Для сравнения, intel i9 9900K выполняет примерно 400'000 MIPS (млн циклов в сек.) В принципе звучит правдоподобно. Первая попавшаяся ссылочка показывает бенчмарк, где у чувака переключение 2048-2300 потоков съедает 40-100% cpu. Он использовал i7-4790K у которого порядка 150'000 MIPS. Это дает ~30-60млн циклов на переключение.
>>1646382 >Первые неопытные мысли, это как-то создать утечку памяти искусственно, не применив delete к массиву/вектору, и в следующий раз сослаться на адрес. Это так не работает. Когда программа завершается, ОС чистит всю её память.
>>1646382 Можеть попробывать загрузить данные в отдельном процессе (другой программе), а потом из твоего процесса получать доступ к ним с помощью API твоей ОС. Или навернуть какую-то in-memory базу данных.
>>1646712 Не уверен что она именно очищается/стирается. Но в любом случае сейчас в ос всякие антихакерские штуки, типа каждый раз загрузка по рандомному адресу при запуске.
>>1646479 >>1646480 Я почему когда я пишу int а, его размер всенда кратен 4. Когда пишу double a его размер всегда кратен 8? И если прибавить 1 к указателю он всегда смещается на размер типа.
>>1646830 >>1646479 >>1646480 Я почему когда я пишу int а, его адрем всегда кратен 4. Когда пишу double a его адрес всегда кратен 8? И если прибавить 1 к указателю он всегда смещается на размер типа.
>>1646838 Строго говоря это он у тебя на компьютере равен 4. На каком нибудь древнем компе или микроплатнике int может быть 2 байта. А char может быть от 5 до 9 битов.
Синьоры на месте? Есть класс A с конструктором A(int, bool). Объект этого класса лежит в классе B. Вопрос: Как проинициализировать класс A в конструкторе B, если код для получения аргументов конструктора A не очень тривиален? То есть int arg1; bool arg2; getArgs(arg1, arg2). Понимаю, что можно навернуть unique_ptr или optional, но хотелось бы без всего лишнего. Думал через IILE аргументы получить, но тогда придется вызывать getArgs два раза.
>>1647672 Непонятно зачем тебе именно этот getArgs и где он конкретно находится, но нужен очевидный фектори метод, например: struct A { __int i; __bool b; __explicit A (int i, bool b) : i(i), b(b) {} }; struct B { __void getArgs(int & i, bool & b) {i = 100; b = true;} __A buildA() { ____int i; ____bool b; ____getArgs(i,b); ____return A(i,b); __} __A a; __B () : a(buildA()){} };
>>1647821 Спасибо! Только вот тут > __B () : a(buildA()){} Вызовется move-конструктор или "a" создастся на месте? Важно, т.к. тип не копируется и не перемещается
Анончек, как замутить трассировщик с фигурками прямоугольника, сферыи треугольника? С первыми двумя ± ясно, про них кучу статеек, а вот с треугольником. задаю его по трем вершинам, считаю нормаль плоскости треугольника, а д-дальше?
>>1647994 >std::string_view >гарантии на терминатор нет >в функции хуй передашь потому-что функции принимают const char* >нельзя создать из двух итераторов до 20-го года заебись класс, прямо по заветам плюсов - неудобный, ненужный, и бессмысленный.
>>1646989 > Понятно с положительными, но как он меняет отрицательные числа Объясните в чём прикол. Положительные и отрицательные же одинаково представлены в памяти, только у отрицательных первый бит в 1 установлен. В чём проблема тогда?
>>1648159 >.data() как бы? А думаешь к чему первый пункт был? Тебе нужно ГАРАНТИРОВАТЬ что у тебя там будет нолик, иначе либа где-то в своих недрях крякнется и ты уйдешь на пару дней в дебаггинг. Зато на каждом углу пиздят что const std::string& устарел и его только долбаебы используют.
Видел на ютубе, что в с++ 20 завезли модульность. Есть ли вообще объективная причина отказа от старого формата (объявляем в .h, а определяем в .cpp), неужели он настолько не удобен? По мне вроде наоборот всё лаконично.
>>1648249 А зачем они нужны? Просто некоторые примеры кода на последних стандартах уже начинают походить на С# или Java. Походу всё в эту степь движется.
>>1648256 >Положительные и отрицательные же одинаково представлены в памяти, только у отрицательных первый бит в 1 установлен. >Почитал. Представление чисел от этого не поменялось. Позорище.
>>1648284 Я не это имел в виду. Хоть число положительно, хоть оно отрицательно, оно займёт одно и то же количество бит, но при этом у отрицательных первый бит всегда будет установлен в 1.
>>1648325 Получается что string_view бесполезен везде кроме двух случаев (это вся строка целиком или это последняя подстрока). В каком-нибудь сплите csv строки придется для каждой подстроки все равно создавать копию string. Ну и нахуа? Вообще очень плохо сделали этот вью.
Как можно реализовать в крестах список (list) как в пайтоне (по сути массив, в который можно добавлять элементы любых типов - char, int, double и т.д.)?
>>1648499 > Тебе нужны книги по С++, а не по Visual C++.
Мне нужная такая чтобы она одновременно и по плюсам была и по среде. По C# же полно таких, по билдеру таких полно было в эпоху его славы, да и по старым версиям VS не мало.
Ананасики, привет Я сам пишу на Си и Плюсах, да и вообще я лоу-лвл червь, но меня беспокоит (или, скорее, интересует) один вопрос - почему такие япы как Си и Плюсы жили, живут и будут жить еще N лет, и на которых будут продолжать писать тонну нового софта (а легаси никуда и не денется), а такие языки, как Раст (ничего не имею против Раста, честно, просто как пример) неизвестно еще выстрелят или нет. Выстрелить == господствовать в своей отрасли, в данном случае речь идет о лоу-лвл системном софте. Делитесь мыслями почему так устроен мир лоу-лвла и почему это, скорее, не изменится в ближайшие лет 20? А если и изменится, то когда, на Ваш взгляд?
>>1648552 >почему что-то (что обошло сотню конкурентов и является исключением из правил) за 50 лет успело устояться, обрасти легаси, всё еще живет и будет продолжать жить (ближайшие 20 лет)??????!!!!!!! >почему что-то новое неизвестно выстрелит или нет?????!!!!!!!!!!!!!!!!!!!!!!!! >ДЕЛИТЕСЬ МЫСЛЯМИ ПОЧЕМУ!!!! глубокие вопросы от лоулвлщика в треде
>>1648567 зачем так жестко, анон Ведь основная проблема вокруг Си и крестов - это их небезопасность. В серьезных проектах даже боги этого языка делают ошибки, очень неочевидные, но все же ошибки. Раст создали с целью элиминировать класс ошибок с памятью, ибо импакт от атак, связанных с эксплуатацией ошибок работы с памятью, самый сильный, как ни крути. За жалких 5 лет существования Раст даже успел немножечко хайпануть и был избран некоторыми конторами как основной ЯП разработки софта, связанного с блокчейном, как раз из-за его безопасности. От ошибок логики и дизайна не спасет ни один ЯП, но вот от ошибок с памятью - таки реально. Поэтому и интересно сможет ли Раст за N лет выехать чисто на этой своей фишке или же захлебнется, ибо 90% контор похуй на секьюрити, лишь бы в сроки сдавали проекты и лилось бабло?
>>1648588 А ты открой CVE и посмотри. Как пример, в ядре Линукса за 2019 год нашли около 600 дыр. Винда, макось, мобильные ОС - не исключение. Любой крупный софт, написанный на Си и крестах, имеет баги, нередко эксплуатируемые. И патч одной дырки в проектах таких масштабов может вызвать появление 3-5 новых дырок в других местах в проекте. Тебе любой исследователь безопасности об этом расскажет.
>>1648596 >>1648600 >>1648616 >>1648622 Идиоты блядь. Напишите название проекта и имя разработчика-бога-c++, который допустил там ошибку. Можете ещё дату внесения ошибки в качестве бонуса.
Ебучие мантры блядь, как я уже заебался их слушать. Вы ещё про goto мне что-нибудь спизданите, выблядки
>>1648649 > Это ты тот необучаемый дебил, который лечил, что GOTO заебись? Нет. Тот выблядок ничем не лучше первокурсников, которые ни разу в реальном коде goto не видели.
>>1648652 >основная проблема Си и крестов >Си и крестов Алсо, я не особо помню, какие широко используемые программы, связанные с безопасностью, вообще написаны на плюсах. Только Botan вспоминается (среди CVE есть несколько с уровнем 10), OpenJDK (в сане и оракле явно не лохи работали, а сколько дыр было) и винда (думаю, нет смысла приводить все её уязвимости).
>>1648646 >напишите дату бага а я напишу что этот разработчик в моем понимании не "разработчика-бог-c++," и затролю вас)))) Залетный блядь, съебись тралить на пикабу.
Есть класс У него есть два наследника Я создал функцию bool для проверки вводимых значений переменных в классах-наследниках Проблема в том, что после ввода данных, программа вместо их вывода, снова запрашивает ввод полей базового класса и только потом выводит true или false для поля класса-наследника Чем фиксить?)
>>1648717 переписыванием своей хуиты правильно. сделай минимальный репродюсибл пример. рассказывает про какую-то функцию проверки, а потом с какого-то хуя у него ввод данных появляется, а потом еще и вывод.
>>1648731 > In member function 'virtual int publications::getdata()': >16:3: warning: no return statement in function returning non-void [-Wreturn-type] > In member function 'virtual int book::getdata()': >34:3: warning: no return statement in function returning non-void [-Wreturn-type] > In member function 'virtual int type::getdata()': >51:3: warning: no return statement in function returning non-void [-Wreturn-type] > In member function 'bool publications::isOversize()': >62:20: warning: 'B' is used uninitialized in this function [-Wuninitialized] Чел, это си плюс плюс, включи warnings as errors и не выключай до конца жизни.
>>1648731 в getdata() нет return, возвращаются случайные числа в isOversize() используются неиниацилизированные указатели и вообще непонятно что должно быть
>>1648730 > какой компилятор для новичка лучше? мне козалось компиляторы не различаются на "вот этот для новечка лучше", "а вот этот для продвинутого пользователя", и "а вот этот только для экспертов". конечно же нет смысла использовать что-либо кроме кланга или гцц.
Это вот и хуево, что все пиздят, а не пишут. Терпеть нимагу видеокурсы, это во первых долго, читаю я гораздо быстрее, да и удобнее читать, а во вторых, англ.речь на слух очень плохо понимаю в отличии от текста.
>>1649274 Ну ты сравнил! Где загнивающий говнопидер, где скоро начнут крыс есть, и где Суперсибирск - город будущего и сверхлюдей, де факто столица мира?
>>1649311 Зависит от школы. Во всех провинциальных школах, где я учился (много раз переезжали), везде максимум был ворд с экселем. Один раз в 9 классе что-то на паскале пописали.
Да и пузырёк - дносортировка. Интуитивно её можно вывести, когда хоть раз подумаешь как отсортировать массив, а вот слиянием уже хуй школьцам объяснишь
>>1649342 Я учился в такой же провинциальной школе в 90-е, тогда и компы то не везде были. Никаких всеобщих учебных программ, все зависило от учителя, поэтому успел поизучать бейсик, паскаль и си (сортировке учил сишник, и вообще был самый адекватный)
Что такое итераторы ввода и итераторы вывода. input и output. Где еще можно про всякие ifstream ofstrem и прочую ебень почитать? Везде где читал, они даются типа как данность, т.е. вы уже должны о них знать.
>>1648781 о да, я целый год смотрил видеоуроки по си++ и прочей хуйне, самое смешное, стал охуенно понимать английскую речь, а вот си++ значительно хуже. Тут блять и на русском хуй проссышь.
Поясните за статические методы, они могут использоваться как обычные функции? Типа для избежания дублирования кода помещать вызов статического метода в обычные? Если логически они к классу относятся.
>>1649907 Статические функции это некий сверхразум который существует отдельно от класса. Например с помощью статический ф-ий можно следить за количеством экземпляров класса.
>>1649794 Чел, у меня были эти книжки по Борланд Билдеру в детстве, нахуй такое надо? Там треть книги это скриншоты менюшек (особенно доставляла инструкция к какому-нибудь визарду, которая могла занимать десяток страниц скриншотов next>next>next), треть это невнятные бойлерплейты для создания одной кнопки, и треть тупое перечисление функций или классов из АПИ. Серьезно, обучалки как пользоваться IDE сейчас есть на ютубе.
>>1649895 Все там есть. Итератор это класс- обобщенный интерфейс адресации и доступа к данным, чтобы, упрощенно говоря, ты мог одинаково пройтись и по массиву, и по множеству, и по файлу, и по любому своему хитровыебанному классу со стандартным интерфейсом.
>>1650061 ну у меня есть работа программистом, семья, бизнес. Я в 20 лет курс матана осваивал за пару недель и сдавал его на отлично, а сейчас мне уже за 30, я где-то час каждый день читаю техническую литературу, за три месяца еле-еле скилл подтянул.
>>1650072 ну вот я смотрю такой код у меня есть std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " ")); у меня расписан план. Я уже освоил Брюса Эккеля. темерь осваиваю основы STL, мне сложно переключатья и отклоняться от плана, я максимально сконцентрирован. Где мне про всякие злоебучие фишки вроде чтения из текстового файла std::copy(std::istream_iterator<int>(file), std::istream_iterator<int>(), std::inserter(v, v.begin()) ); Я понимаю все, что здесь происходит. Я худо-бедно освои и шаблоны и итераторы, но итераторы можно осваивать только после того как ты освоил шаблоны, написал свои итераторы. Книга называется "введение в STL" а введения особо там нет.
Как думаете, лучше BMP файл целиком в память засунуть или читать блоками? Там просто неприятно будет со структурами вначале работать, если сделать блочно.
>>1650231 Зависит от файловой системы, дефрагментации и т.п., проверяй экспериментально. >>1650228 Я сначала вообще не разбирался как они работали, тупо копипастил и относился как к чему то типа указателей, на магию инсертеров не обращал внимания. И мне кажется массово это стали использовать только с массовым использованием auto, до этого было лень пердолиться с именами типов.
>>1650255 Братка, я к сожалению профессиональный разработчик, в том числе и на си++, мне нельзя "не понимать как что-то работает". Иначе весь проект пиздой накроется, си++ это такой язык где надо понимать абсолютно все. Досконально. Иначе при большом объеме все развалится.
>>1650467 >Как-то грустно. А ты бы тесты на скорость сделал перед тем как грустить. fstream просто обертка вокруг FILE, там основной затык должен быть в операциях ввода/вывода. ЗЫ и никогда не используй end
Пчелы, а использования синтаксиса Си в С++ является правилом плохого тона? т.е. могу ли я например юзать define и прочие вещи в С++ и не быть обсмеянным? Или лучше юзать какой-нибудь const глобальную переменную для таких вещей и полностью отказываться от синтаксиса Си?
Анон, а почему для data science так популярен питон, а не си++, ведь это статистика, ведь там больше данные, точнее их объем, по идее должна быть важна скорость и для этого с++ подходит точнее всего. Так отчего питон топ 1 для data science?
>>1643956 (OP) Как пишут настоящие крутые прогеры, когда у нас есть condition с булевой перменной? if (condition) { do_some_code() } или: if (condition == true) { do_some_code() } ? я просто в ЖС-параше обитал
Как следить за очисткой ресурсов на си (без эксепшенов) ? Goto? Do-while цикл? Проще конечно разделить функцию на подпрограммы, но не всегда есть возможность.
>>1651499 Поверка на нулевой это и есть condition. >>1651528 >Проще конечно разделить функцию на подпрограммы, но не всегда есть возможность. Ты там корутины с помощью goto эмулируешь что ли?
>>1651222 Чёрт, я после этого поста почему-то вспомнил, как года 3-4 назад пытался разобраться, как в Tensorflow устроена свёртка. Это ЁБАНЫЙ ПИЗДЕЦ, а не кодовая база. Caffe намного лучше зашло.
В общем, есть одна программа, которая работает на нескольких компах с виндой. Думаю запилить для нее автоапдейтер/перезапускатель. План таков: поднимаю веб-сервер, апдейтер таксает с него курлом текстовый файл с версией раз в несколько часов и, если версия оказывается больше, чем локальная, то скачиваем зип-файл с апдейтом с того же сервера и распаковываем.
Какие подводные камни? Я просто совсем нуб в этих делах, никогда не видел как профессионалы такие вещи делают.
>>1651846 В смысле он сам себя залочит? Ну это понятная ситуация с перезапуском. Или ты имеешь ввиду, что какой-нибудь условный антивирус может залочить файл и стоит долбить его, пока он не освободится?
>>1651921 Это то, как в памяти и процессоре что будет располагаться - например, через какие регистры/смещения в стеке передаются параметры, кто чистит стек вызывающий или вызываемый, и т.д.
>>1652053 Мой интеллект намного превосходит медиану по Европе, между прочим. Это просто давно установленный факт, ничего не поделать Так что выбирай слова осмотрительнее, когда со мной разговариваешь
>>1651964 Занятно, что согласно базару Аленки, ABI - это вещи, которые стандарт не описывает. Каким образом в С++20,30,100500 они планируют поменять то, что к стандарту не имеет никакого отношения? Мб ориентацию рубистов еще свапнут?
Не могу инициализировать карту. Надо каждой строке дать в соответствие русский символ, сделал такую карту std::map<std::string, wchar_t> ={{"str", 'д'}} Но пишет, что д слишком большое число для этого литерального типа.
>>1652363 Не смотря на то, что в стандарте нихера нет - они все равно стараются не ломать ничего. Считай, некое джентельменское соглашение с дополнительными гарантиями.
>>1652669 И компьютерное зрение пишется на питончике. Так же, как и с машобом, питон под капотом дёргает плюсовые либы, сам питон там в роли glue code.
>>1652514 В стандарте от ABI и всяких подобных вещей по типу выбора конкретных механизмов реализации виртуальных методов абстрагировались намеренно и полностью, а не так что "пацаны ну тип мы тут канешна не будем писать в стандарте тут и так дохуя но забьемся что виртуальные методы через таблицы делаем". Поэтому нихуя так и не понятно
>>1652481 В Пистоне я мог открыть файл (файловый объект unix) с помощью функции open и задать там кодировку для открытого объекта. Мог сохранять в иной кодировке, мог работать с двоичными данными (bytes, bytearray) и свободно кодировать/декодировать инфу Как это работает в плюсах?
>>1652931 Так Shape же их родитель, почему что-то должно не работать? Объекты класса всегда можно приводить к типу который родитель этого класса и работать с ними как с объектами родительского класса, наоборот вот нельзя.
>>1652953 > В шапе нету того, что есть Ну так то чего нет использовать нельзя. Даже если у тебя объект типа Круг - ты его можешь использовать только как шейп, пока явно не приведешь к типу круг.
>>1653207 метод аккаунт возвращает какой-то объект, назовём его "ret". представь теперь, что > x0.Account("123456") превратилось в ret, а значит > x0.Account("123456").Balance() == -2190 превратилось в > ret.Balance() == -2190
>>1652361 clang более строго следит за стандартом: шаг влево, шаг вправо - ошибка. gcc скомпилит всякое говно и слова тебе не скажет. Вообще, со сложным кодом gcc работает хуже, тут тебе и Internal compiler error, и неспособность шаблоны сопоставить иногда, и сжирание памяти. Короче, с clangом приятнее работается, не говоря уже про сопутствующие с ним утилиты.
Наши треды состоят почти целиком из глупых вопросов уровня людей, которые кресты первый или второй раз в жизни видят. Посмотрите на треды о других языках, там реально интересные задачи и проблемы обсуждают, новые концепции и либы. Вам не стыдно? Тут вообще есть люди, которые серьезные вещи на крестах пишут, а не круды на винформах/Qt и не лабы?
Есть ли какой-либо способ узнать полный список доменов, зная IP и имя хоста? Хочу чтобы выводился пример как на пикрилейтед. Готового кода не прошу, максимум хочется направление где копать. Спасибо :)
>>1653295 Что такое круды? Дело наверное в том, что с++ изучают во всех универах и по факту это первый серьезный язык для всех после школьного паскаля или что там сейчас преподают.
Вопрос про структуры. Структура - это способ сгруппировать какие-то данные в месте, и расположить в месте в одном участке памяти.
struct person { char const * name; size_t age; };
Исходя их этого, можно ли рассматривать эту группировку так, как мы рассматривает обычные переменные - при создании экземпляров или когда возвращаем значения типа структуры.
>>1653470 >первый серьезный язык + Мылись недавно в бане с потом информационной безопасности, у всех мощные такие хуи по 17-20 см. А вот у дизайнеров-верстальщиков поменьше будут, потому что плюсы для Серьезных Мужиков, а фронт - для пидоров
>>1653879 Тогда у тебя 3 плохих варианта. Самый простой сделать алиас gcc с нужными флагами. Второй, экспортировать переменную окружения CFLAGS. Ну и самый сложный это отредактировать spec файл https://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html
Но я бы посоветовал освоить хотя бы самые азы make и пользоваться им для всех проектов.
>>1653934 Всё TMP шизофрения. Вот завезут метаклассы и будешь месяцами весь невидимый нагенеренный код отлаживать, потому что о тулинге никто никогда не думает
>>1653838 template <class> using T = void; >>1653934 Это задача на отсеивание кандидатов с шизофренией шаблонов типа >>1653926 (у которого все равно не скомпилируется), на знание элементарных правил преобразования указателей.
>>1653993 Ты создал алиас, а не реализовал шаблонный класс А вот этот клоун >>1653926 просто переопределил сравнение, но так нихуя не будет работать, потому что там именно указатели
>>1654083 Дай угадаю, ты из тех дурачков, которые влезли в спор, обосрались с ключевыми терминами, а потом начинают маневрировать, что они это и имели в виду.
В общем, шапку на гитхабе прочитал. Не увидел там проблем с моим ньюфажеским вопросом. В общем, меня смущает кодить в IDE, хочу как хацкер настоящий в каком-нибудь текстовом редакторе кодить. В связи с этим вопросы по правильной структуре проекта и базовым инструментарием. Что я понял в процессе недолгого гугления: нужно gcc или какой-нибудь еще нормальный компилятор и make изучить. Но я что-то не понял а как организовать структуру проекта нормально, чтобы эти штуки нормально же работали. Просто хочется сделать какой-то шаблон, чтобы потом я мог его скопировать и кодить что хочу, а потом нажав одну кнопочку чтобы все собиралось и я не о сборке всего что накодил думал, а о том что именно накодил. Понимаю, что IDE решает все эти проблемы, но как-то несолидно же.
>>1654228 >В общем, меня смущает кодить в IDE, хочу как хацкер настоящий в каком-нибудь текстовом редакторе кодить Потом ты поймешь, что даже сверхлюди типа Эрика Ниблера и Херба Саттера пишут в обычной Вижуал Студии, а студентики надрачивают на консольную хуйню. А никак не наоборот.
>>1654228 Начни с элементарного мейка, потому по мере накопления wet кода в нём, смотри, что можно заменить на переменные, что на макросы. Потом и по папочкам распихаешь, на пяти файлах этого смысла нет делать.
>>1654224 Чет не угадал. Я в курсе про переопределение, но не знаю что такое сравнение и присвоение? Слижешь после себя говно. Страуструп с комитетом подо мной ходят, а ты залезай обратно на хуй
Немного странный таск, но мне нужно считать файл как бинарный не используя потоки (ifstream) и без использования С. Есть какой-то способ, который относится к современному С++?
Где норм работу на удаленке можно найти на крестах? В моих пердях требуются от 7 лет опыта только лол. На SO нихуя не нашёл, на who is hiring тоже чето не того. Есть идеи где поискать можно?
>>1654418 Хз, мне самому пришлось после двух лет на плюсах на питон катиться как проект кончился, пушо вакансий на плюсы не нашлось, а кушать хочется. Мб если месяц посидеть подождать чё и нашлось бы, но нахуй.
>>1654460 Да буквально "здаров есть работа, но там питон, пойдёшь на собес? ну можно", перекатываться на него не нужно, потому что питон по сути псевдокод, ты уже на нём пишешь, лол, ну за неделю перед собесом пописал на нём, задачки всякие поделал, с асинхронностью познакомился, сделал фреймворчик для работы с апи одного сайта ну и всё, на собесе честно сказал, что неделю назад на нём не писал, но описал, чё делал и что за выходные ваш фреймворк покурю и от опытного питониста не отличите.
Двач, пробую считывать информацию из другой программы. В cheat engine много где (к примеру в Pointer scan for this address) пишется "Название процесса"+Адрес. Что это значит? Правильно ли я понимаю что "Название процесса" имеется ввиду базовый адрес с которого запущена программа а +Адрес это сдвиг на котором находится нужный указатель? Я больше 5 лет на C++, просто никогда особо никогда не лез в эти дебри дизассемблинга. Подскажите. Вопрос наверное не совсем по теме треда, но я хз где ещё спросить, а тут всё равно много разбирающихся в этом людей.
>>1654587 Так а чё, всё равно это не ответ на задачу, это типа мысли вслух как бы я пытался выкрутиться, если бы мне такое дали. А так чёт хз, похоже никак не сделать?
В qt память сама освобождается, я правильно понимаю? В деструкторе не надо вызывать delete, если при вызове new указан в качестве предка главный виджет или его производные. И с компоновочными виджетами это как работает?
>>1655085 А что по-твоему есть полигон, если не набор вершин? Зайди в исходники и посмотри, как работает этот метод. Судя по описанию второго параметра, алгоритма там два и оба простые
>>1654717 >Я больше 5 лет на C++ >"Название процесса"+Адрес. Что это значит? >В cheat engine >просто никогда особо никогда не лез в эти дебри дизассемблинга
Когда STL напишут для C++20? Ну всм когда я на довольно свежей версии дистра сделаю apt upgrade, использую что-нибудь из std::ranges::* и оно найдётся компилятором?
>>1655175 Имхо во времена антиальясинга и субпиксельного рендеринга наивно надеяться что есть некий четкий набор пикселей. Но ты можешь попробовать провести линию между вершинами, алгоритм Брезенхема простой.
Двач, как перевести hex значение из void указателя в int? Что-бы арифметикой пользоваться можно было, в самих указателях на сколько я понял это делать нельзя.
>>1655513 > Ну и рисуй свой полигон через QPainter. Зачем тебе пиксели-то? Мне надо не полигон нарисовать, а выделить область и нарисовать градиент в этой области. А чтобы рассчитать градиент, нужно работать с пикселями.
>>1655887 Да это понятно, если есть конфликт имен, и мы форсим тот что у аутер скопе. В случаях, с которыми я сталкивался, была только одна функция с нужным именем, никакого конфликта не могло возникнуть. Мб это какой-то задел на будущее, в случае если появится функция с таким же именем с текущем пространстве имен, логика не сломается, потому что все равно будет вызвана нужая.
Еще как пример, эти :: некоторые используют даже для вызова WinAPI: ::СreateFile(...). Какой долбаеб будет добавлять функцию с таким же именем, я не знаю; тем не менее эти двоеточия вхуяривают незнамо зачем
>>1655923 Ещё вариант, что код писался адептами Unity build. Лет десять назад в одном довольно большом проекте с одним ебланом поссорился, когда он мой лаконичный код начал мазать своим говном, состоящим из :::::::::::::. Видите ли, у него иначе не собирается
>>1655876 >а выделить область и нарисовать градиент в этой области. Тебе надо на битмапе нарисовать область выделения линией, а потом залить ее градиентом. Все это умеет QPainter.
Вопрос про статик методы. Почему здесь компилятор ни на что не жалуется? http://www.cpp.sh/4oall И почему здесь жалуется на Triangle, Rectangle и Octagon в статик методе createShape? http://www.cpp.sh/3545a
Объявление класса само по себе не создает никаких сущностей, только определяет структуру объекта. Соответственно если предполагается использование static-переменной, которая не будет создана конструкторами как в случае с nonstatic-полями (потому что по определению она "общая" для всех объектов класса), её надо создать, что и происходит, когда она определяется в глобальной области видимости.
К слову, если это поле const/constexpr (во всех случаях использования поля компилятор может подставить значение), то возможно определить и в теле.
А вообще я всё это в рот хуярил, кроличья нора ебаная
>>1656626 Это мне даст размер указателей на битность данной скомпилированной программы. Мне надо знать размеры как для 64 бит программ, так и для 32 бит, в разных операционках они разные, вроде где-то для 32 программ указатели могут быть 6 бит, а для 64 8 бит.
>>1656628 >PAE >The 32-bit size of the virtual address is not changed, so regular application software continues to use instructions with 32-bit addresses and (in a flat memory model) is limited to 4 gigabytes of virtual address space. >PSE-36 >Newer Microsoft operating systems, including Windows 2000, support only PAE. Некроговно и ненужно. Даже если используется PAE, у приложения адресное пространство больше 4Гб быть не может. Используй sizeof от указателя и будет тебе счастье.
Пчелы, это пиздец! Какую ide предпочитаете? Я до недавнего времени Clion, но это пиздец, какое обновление подряд они не фиксят проблему высокой нагрузки на проц под 350% тупа с того, когда ты вводишь пару строчек кода, блять ну это неадекват нахуй, почему я на маке блять с 16гб оперативки и нормальным процом должен слушать звук вертолета и жарить яйца нахуй на своем процессоре, блять ладно бы я был такой один, но нет нахуй, весь багтрекер JetBrains заполнен ебучими блять просьбами исправить эту хуету и им похуй. сука заебало. Так что продублирую свой вопрос: Какая ide довольно удобно и хороша для разработки? Алсо: а как починить CLion?
Какой максимальный размер буфера, который можно отправить по TCP? И происходил ли автоматическая фрагментация данных при отправке больших файлов по WinSock? Отправлял файлы до 80 мб - все отлично Попробовал отправить 2гб - badalloc
Объясните, пожалуйста, как мне передать в функцию другую функцию с помощью указателя, но так, чтобы одна из двух переменных этой ф-ции была зафиксирована. Например, у меня есть f(k,x) и я хочу передать ее в другую функцию, зафиксировав k. Т.е. у меня она будет уже функцией одной переменной. Вариант передать и функцию, и k, а потом просто подставить не подходит
Поясните плиз, чому я добавляю виджеты в QVBoxLayout по порядку, а они потом накладываются друг на дружку? Получается что то типа пикрила. Блин, эти лэйауты все время подлянку устраивают, устал уже, не понимаю их логики.
• https://github.com/sosachbot/cppthreadhat/wiki
Ответы на вопросы:
• https://en.cppreference.com/w/
• https://www.cplusplus.com/reference/
Прошлый тред