Это копия, сохраненная 12 июня 2020 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
• https://github.com/sosachbot/cppthreadhat/wiki
Ответы на вопросы:
• https://en.cppreference.com/w/
• https://www.cplusplus.com/reference/
Прошлый тред >>1626937 (OP)
>(вектором векторов
Если матрица постоянного размера то лучше array, не будет резервирования больших размеров и переаллокаций. Про сет не понял.
Реализую Nist Frequency Test Within a Block на С++. Собственно, у меня есть бинарный файл, который я читаю в unsigned char и его длина в байтах. Работать мне нужно непосредственно с битами. Требуется разбить последовательность бит на блоки длины M и посчитать в них какую-то хуйню. Вопрос в том как этот ебучий char разбить на блоки? Это ведь не цельная последовательность 0 и 1, а массив из элементов по 8 битов каждый, как из этой залупы нормально блоки выделить, если M может быть и не кратно 8ми? Можно конечно выделять по одному биту, пихать в массив чисел, но это схавает в 8 раз больше памяти. Пиздос, короче.
Сука вакаба бля посчитала char* как курсив.
Я пока писал вопрос кажись понял как можно сделать, ща попробую.
>Работать мне нужно непосредственно с битами.
>Можно конечно выделять по одному биту
Пиздос, короче.
Блять, не заскринил. Тип autoRowProxy показывает Matrix<int>::Row
Ебать ты хацкер. А не проще было сделать вызов метода get_что-то(строка, колонка) и из прокси вызвать его?передавая значения?
Да это не важно. Каким образом инстанциируется приватный прокси класс - вот это непонятно.
Может он у тебя был публичный? Дело в том что визуалка не всегда компилирует проект, а тупо запускает уже скомпилированный. Всегда когда такое видишь меняй 32 и 64
А что не так? У тебя приватных методов нет
Объясни, пожалуйста. Как это соотносится с моим примером? Я уж было подумал, что может в gcc баг, потому что компилирую с помощью 9.2, а на ideone 8.3, но скомпилировал у себя при помощи 7.5 и ничего не поменялось.
Ты насоздавал кучу вариаций и удивляешь чему-то. скинул бы тот код который у тебя работает
Гуглить не пробовал?
https://stackoverflow.com/questions/13532784/why-can-i-use-auto-on-a-private-type
Алсо если бы это не работало, как бы по твоему работало matrix[1][1] если там тоже доступ к привату?
Он все правильно написал, ты просто чего то недопонял (ясен хуй часть с твоего скрина нужно дописать, без этого не соберется)
Платиновые вопросы
Ты не видишь что это чмо над нами издевается и пишет открывающие скобки с новой строки
Тут соглы
Да, меняет. Не надо ждать от разного кода одинакового поведения.
Чмо с бардаком в голове. Ты тупорылая хуесосоина сама не видишь свой код из уебанского оформления
Вот тут все работает
https://ideone.com/VdkzPq
Чел угомонись выше уже дан ответ, он наоборот хочет чтобы auto r = matrix[1] не работало.
Да пошёл нахуй гуру блять, я захотел сделать так, как сделал, и столкнулся с какой-то непонятной для меня приколюхой. Нахуй ты тут срёшь по поводу скобок и интерфейсов уебище?
>я захотел сделать так, как сделал
"Вот пока ты это делал, дебил, ебаная сука, БЛЯДЬ, так все и происходило!"
Так сложилось исторически. Я начинал программировать с Фортрана под FreeBSD, а под него там были только Eclipse да Code::Blocks вроде.
Мб с c++17 связано, проверь на godbolt
Братцы, кто-то занимается разработкой используя VS Code? Подскажите, как настроить его, чтобы можно было из него запускать программы и отладку? Ловлю такую ошибку
В папке воркспейса, надо настроить вот эти файлы
tasks.json (build instructions)
launch.json (debugger settings)
c_cpp_properties.json (compiler path and IntelliSense settings)
Конкретные инструкции есть в гугле, vs code gcc и т.д.
Спасибо, может если что, поможешь мне настроить? Заебался гуглить, миллион ссылок ебанутых ни о чем.
Я не очень хочу сейчас этим заниматься. Оф. инструкция выглядит вполне адекватной https://code.visualstudio.com/docs/cpp/config-linux
Понял, спасибо, братиш, извини что отвлек. Рад, что ты отписался. Еще раз спасибо тебе!
Задроты ебучие со своим уебанским синтаксисом. Идите на хуй, а я буду писать на си.
Так, может, он байтоебушек? Для них кроме текстового редактора и бутылки водки ничего больше не нужно.
Знание C++ — абсолютно негодное, никому не нужное и никак не продаётся. Вы не сможете купить на знание C++ квартиры, машины, дачи. Пользуясь нормальными языками программирования, вы можете стать художниками, учёными, инженерами, программистами. Пользуясь C++ вы сможете стать лишь дурно пахнущими портвешковыми байтоговнариками в свитере и работать за нищенскую зарплату. И несмотря на то, что, пока вы учитесь в школе (или в университете, но вы безработный), вам такая перспектива нравится и кажется романтичной, через несколько лет вы поймёте, что время утекло в унитаз и его не вернуть.
Все обещания, которые дает комитет стандартизации C++, да и, по большому счёту, все C++говноеды — это пшик, пустые слова, ничего не исполняется. Все достижения этих разработчиков — лишь изобретание велосипеда, копирование технологий; ничего нового они не предложили ни разу. В C++ со скрипом, треском и проблемами работает то, что в других языках уже лет 5 вообще не вызывает вопросов.
C++ — это информационная черная дыра. Занимая всего 1% рынка IT, информацией о нём забит весь IT-сектор интернета. Более того, если вы начнете писать на C++ — вы будете интересоваться только им, читать только о нём, говорить только о нём. C++ — это ложь, сплошная ложь, как в тоталитарном государстве — вам будут рассказывать, что ещё чуть-чуть, ещё несколько лет и мы победим, но на самом деле, если вы посмотрите на обычную статистику, то увидите, что интерес к этому языку с годами лишь падает.
C++ — это черная дыра для вашей самоидентификации. Пока вы молоды, вам кажется, что отличаться от других, принадлежать к какой-то узкой группе людей — это круто, это здорово. Однако, на самом деле, неформалы — это синоним неудачников. C++ изменит ваш взгляд на мир, вы перестанете воспринимать компьютеры просто как инструмент для решения задач, а будете судить людей по тому, на каком языке они пишут. Вам будет казаться, что раз вы принадлежите к 1% людей, то вы стали элитой, ваше мнение важно и значимо. На самом деле, C++обрыганов никто не любит, а единственная реакция на их высказывания — покрутить пальцем у виска.
Если вам хочется программировать на C++, то вас, разумеется, никто не может удержать. Но задумайтесь на секунду — если вы потратите 3-4 года на изучение джавы или котлина, не станете ли вы гуру? Если вы 3-4 года будете изучать науки — не станете ли вы бакалавром? Если будете работать — не заработаете ли вы несколько десятков тысяч долларов? В конце концов, если у вас внезапно появилось 3-4 года свободного времени, то играйте в игры. Хотя бы удовольствие получите.
Знание C++ — абсолютно негодное, никому не нужное и никак не продаётся. Вы не сможете купить на знание C++ квартиры, машины, дачи. Пользуясь нормальными языками программирования, вы можете стать художниками, учёными, инженерами, программистами. Пользуясь C++ вы сможете стать лишь дурно пахнущими портвешковыми байтоговнариками в свитере и работать за нищенскую зарплату. И несмотря на то, что, пока вы учитесь в школе (или в университете, но вы безработный), вам такая перспектива нравится и кажется романтичной, через несколько лет вы поймёте, что время утекло в унитаз и его не вернуть.
Все обещания, которые дает комитет стандартизации C++, да и, по большому счёту, все C++говноеды — это пшик, пустые слова, ничего не исполняется. Все достижения этих разработчиков — лишь изобретание велосипеда, копирование технологий; ничего нового они не предложили ни разу. В C++ со скрипом, треском и проблемами работает то, что в других языках уже лет 5 вообще не вызывает вопросов.
C++ — это информационная черная дыра. Занимая всего 1% рынка IT, информацией о нём забит весь IT-сектор интернета. Более того, если вы начнете писать на C++ — вы будете интересоваться только им, читать только о нём, говорить только о нём. C++ — это ложь, сплошная ложь, как в тоталитарном государстве — вам будут рассказывать, что ещё чуть-чуть, ещё несколько лет и мы победим, но на самом деле, если вы посмотрите на обычную статистику, то увидите, что интерес к этому языку с годами лишь падает.
C++ — это черная дыра для вашей самоидентификации. Пока вы молоды, вам кажется, что отличаться от других, принадлежать к какой-то узкой группе людей — это круто, это здорово. Однако, на самом деле, неформалы — это синоним неудачников. C++ изменит ваш взгляд на мир, вы перестанете воспринимать компьютеры просто как инструмент для решения задач, а будете судить людей по тому, на каком языке они пишут. Вам будет казаться, что раз вы принадлежите к 1% людей, то вы стали элитой, ваше мнение важно и значимо. На самом деле, C++обрыганов никто не любит, а единственная реакция на их высказывания — покрутить пальцем у виска.
Если вам хочется программировать на C++, то вас, разумеется, никто не может удержать. Но задумайтесь на секунду — если вы потратите 3-4 года на изучение джавы или котлина, не станете ли вы гуру? Если вы 3-4 года будете изучать науки — не станете ли вы бакалавром? Если будете работать — не заработаете ли вы несколько десятков тысяч долларов? В конце концов, если у вас внезапно появилось 3-4 года свободного времени, то играйте в игры. Хотя бы удовольствие получите.
т.е. не it, а что бы было it*. Сейчас пишу итератор свой.
Нет
мне интересно, это только для постфиксных операторов класса для их перегрузки передается еще один параметр неиспользуемые или любой оператор можно сделать постфиксным
Я байтоебушек и использую CLion.
Все верно, у меня знакомый работает в одной конторе, ядро системы пишется на си++, прикладуха на всем остальном. Разработчики ядра получают на 30% меньше джавистов. Забавно.
битовое поле, имеешь ввиду?
C/C++ программисты это цари современного айти, все рантаймы других языков написаны на сишке или плюсах. Знать как работает компьютер можно только при условии знания и программирования на C/С++. В конечном итоге сишка и плюсы это хардкор, так что человек, прошедший его, сможет с легкостью осовить какую-нить jvm хуйню, дот нет, или фронтенд языки и фреймворки. В айти нет ничего невозможного для байтобояр!
>В айти нет ничего невозможного для байтобояр!
Почему же тогда байтобояре не хотят оставаться байтобоярами, а изучают джаву или JS?
>Знать как работает компьютер можно только при условии знания и программирования на C
А вот и веб макаки, считающие сишку языком низкого уровня.
>Знать как работает компьютер можно только при условии знания и программирования на C/С++.
Не совсем так, есть еще Forth.
Чел, ос написаны на си. Ниже операционных систем только чистый ассемблер в ring 0, который без слоя абстракций в виде например ядра линукса, нахуй никому не нужен бы был.
DOS был написан на асме, так что ты опять обосрался.
Вроде, даже загрузчики ОС написаны на си. Даже первичный загрузчик можно написать на си с вставками asm для прерываний
ОС пишут задроты. Хакеры пишут под ОС эксплоиты и трояны. Хакеры это рациональные люди, которые не тратят время на переизобретение велосипедов и взламывают жопы по фану.
А вдруг ты бабушке взломаешь виндовс ХР и ей goatse на рабочий стол поставишь и у нее инфаркт случится?
Stack::Link *sp;
ошибка: C2955: 'Stack' : use of class template requires template argument list
https://pastebin.com/mY3wrwZy
Там нет говнокода, это стандартная реализация [][]
И что тебе непонятно? В сообщении об ошибке все предельно четко сказано.
Делаешь класс итератор шаблонным, в классе дописываешь аргумент шаблона к стаку
Итераторы обычно пихают прямо в класс контейнер, будет и тип понятен и доступ к твоему приватному Link - это будет следующий взвизг компилятора.
А где про это можно подробно почитать? Раньше я вообще не понимал на хуй все это нужно, сейчас стало чуть понятней. Но один хуй лишь только чуть.
Шутка 2010 года!
у пожилых женщин влагалищный секрет почти не выделяется, сухо там, нужна дополнительная смазка
у пожилых женщин влагалищный секрет почти не выделяется, сухо там, нужна дополнительная смазка
в питере, в дс - да
Нарешивать литкод?
Тупо нарешивать не поможет. Составь список алгоритмов и структур данных, которые ты хочешь изучить, и по ним нарешивай.
Вот после вымирания этих самых 10% и можно будет устроиться на их место. Тот анон как раз правильно мыслит.
Вообщем, такой вопрос - можно ли как-то перебросить данные в оперативку с жесткого диска, чтобы при повторной компиляции слегка измененного кода не приходилось бы ждать повторного перекидывания файла с HDD.
Поясню. Например, я пишу алгоритм подсчета облака координат для вывода среднего и чтобы проверить прямоту своих рук, я, разумеется, жму F5 в VS. Код компилируется, данные грузятся из базы несколько минут.
Код оказывается хуевым, я переписываю пару строчек, опять жму F5 и опять жду пару минут загрузку базы.
Собственно, если я меняю лишь пару строк алгоритма, то мне не хочется каждый раз грузить базу одних и тех же данных. Можно ли как-то один раз грузануть в оперативку, а потом уже дебажить свой алгоритм?
Первые неопытные мысли, это как-то создать утечку памяти искусственно, не применив delete к массиву/вектору, и в следующий раз сослаться на адрес. Есть какое-то простое решение этой хуйни?
Варианты сходу:
1. Погуглить c++ hot reloading, может есть готовые решения
2. либо грузить файл через mmap
3. Либо сделать виртуальный диск, ram disk и подобное
4. Совсем дурацкая мысль - сохранить дамп памяти, хоть через проги для читов в играх
5. Погуглить про memory serialization, может тоже есть готовое решение, что-то типа того что ты напишешь свой класс по специальной форме, загрузишь в него базу, и потом сериализуешь.
>пару минут загрузку базы
Что так долго? Оперативка за такое время переполнится десять раз успеет.
А так можно наверное вынести загрузку базы отдельно в виде длл или сервиса, чтобы она постоянно висела. Или может базу поместить на ram диске.
Нет, в си это вообще может программист задавать через _Alignas(). Меньше не будет, но поставить, например 5 для инта можно легко.
Процессор (точнее в своременном мире поток ядра) работает только с одним процессом за раз. Его вершина и хранится.
У меня на компе 100 одновременно работающих процессов. И если им нужны регистры, то ос постоянно распределяет эти регистры между ними? Это же куча операций
>100 одновременно работающих процессов
Они не работают все одновременно, только сколько у тебя ядер в процессоре. Там у каждого регистры свои.
> Это же куча операций
Добро пожаловать в вытесняющую многозадачность. Кооперативная многозадачность проиграла, потому что программировать, будто ты единственный во вселенной, гораздо проще. А, как известно, "worse is better".
Это называется 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млн циклов на переключение.
То есть если убрать _mcount и домножить процент оставшихся пунктов на два, то получится распределение по времени для релизной версии?
С++*
Не обязательно, там другой язык, изучение займет пару лет, а алгоритмы и в учебниках крестов разъясняются и на ютубе
SICP - это мем для ньюфагов. Учи сразу С++
Sicp, с++, и уж тем более си тебе изучать не надо. Учи реакт, пей смузи и получай реальные деньги.
>Первые неопытные мысли, это как-то создать утечку памяти искусственно, не применив delete к массиву/вектору, и в следующий раз сослаться на адрес.
Это так не работает. Когда программа завершается, ОС чистит всю её память.
Можеть попробывать загрузить данные в отдельном процессе (другой программе), а потом из твоего процесса получать доступ к ним с помощью API твоей ОС. Или навернуть какую-то in-memory базу данных.
Можно сделать программу, которая тупа загрузит данные в оперативку и выведет адрес. Потом с основной можно к ней присоединится и прочитать
Не уверен что она именно очищается/стирается. Но в любом случае сейчас в ос всякие антихакерские штуки, типа каждый раз загрузка по рандомному адресу при запуске.
Не путай размер и адрес.
Хотя экспериментируя с типами получилась сделать double с адресом кратным 5.
Строго говоря это он у тебя на компьютере равен 4. На каком нибудь древнем компе или микроплатнике int может быть 2 байта. А char может быть от 5 до 9 битов.
вначале надо написать на плюсах короновирус
Там же сам ручками выбираешь, не?
Опять ты вылез блядь? За это время мог бы в мастерстве освоить гидру и реверснуть свой сраный cheat engine.
Роман.
Порешай задачи на codeforces
Как правило треды запускаются с функцией принимающей указатель на void, и самим указателем который туда передать при запуске.
Есть класс A с конструктором A(int, bool).
Объект этого класса лежит в классе B.
Вопрос:
Как проинициализировать класс A в конструкторе B, если код для получения аргументов конструктора A не очень тривиален? То есть
int arg1;
bool arg2;
getArgs(arg1, arg2).
Понимаю, что можно навернуть unique_ptr или optional, но хотелось бы без всего лишнего. Думал через IILE аргументы получить, но тогда придется вызывать getArgs два раза.
Непонятно зачем тебе именно этот 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()){}
};
Спасибо! Только вот тут
> __B () : a(buildA()){}
Вызовется move-конструктор или "a" создастся на месте? Важно, т.к. тип не копируется и не перемещается
Так и выходит.
>std::string_view я тебе дам
>перегрузки стандартных функций я тебе не дам
Ты не можешь что-ли поверить, пересекает луч треугольник?
Тогда ignore >>48046
>std::string_view
>гарантии на терминатор нет
>в функции хуй передашь потому-что функции принимают const char*
>нельзя создать из двух итераторов до 20-го года
заебись класс, прямо по заветам плюсов - неудобный, ненужный, и бессмысленный.
> Понятно с положительными, но как он меняет отрицательные числа
Объясните в чём прикол.
Положительные и отрицательные же одинаково представлены в памяти, только у отрицательных первый бит в 1 установлен. В чём проблема тогда?
> гарантии на терминатор нет
Гарантия на плечах программиста
> в функции хуй передашь потому-что функции принимают const char*
.data() как бы?
> нельзя создать из двух итераторов до 20-го года
Ну ведь можно же теперь, че бухтишь то?
>.data() как бы?
А думаешь к чему первый пункт был? Тебе нужно ГАРАНТИРОВАТЬ что у тебя там будет нолик, иначе либа где-то в своих недрях крякнется и ты уйдешь на пару дней в дебаггинг. Зато на каждом углу пиздят что const std::string& устарел и его только долбаебы используют.
Препроцессор останется, можешь и дальше свою laba2.h инклюдить. Модули не для этого придумывали
Как будто что-то плохое
А зачем они нужны? Просто некоторые примеры кода на последних стандартах уже начинают походить на С# или Java. Походу всё в эту степь движется.
>Положительные и отрицательные же одинаково представлены в памяти, только у отрицательных первый бит в 1 установлен.
>Почитал. Представление чисел от этого не поменялось.
Позорище.
Сразу видно чуваков, которые никогда не видели INVALID_HANDLE_VALUD в OllyDbg
Модули решают проблему скорости компиляции достаточно серьезно.
Значит, они не
>одинаково представлены в памяти, только у отрицательных первый бит в 1 установлен.
Я не это имел в виду.
Хоть число положительно, хоть оно отрицательно, оно займёт одно и то же количество бит, но при этом у отрицательных первый бит всегда будет установлен в 1.
Получается что string_view бесполезен везде кроме двух случаев (это вся строка целиком или это последняя подстрока). В каком-нибудь сплите csv строки придется для каждой подстроки все равно создавать копию string. Ну и нахуа? Вообще очень плохо сделали этот вью.
>используется точно также как и const char* но весит в 2 раза больше
Охуенно полезный класс, ничего не скажешь.
Подозреваю, это laba3.cpp, в которой хотят, чтобы он продемонстрировал свои потуги в полиморфизм.
Если я нашел положительное и хочу поменять его на отрицательное мне нужно знать его тип.
> Тебе нужны книги по С++, а не по Visual C++.
Мне нужная такая чтобы она одновременно и по плюсам была и по среде. По C# же полно таких, по билдеру таких полно было в эпоху его славы, да и по старым версиям VS не мало.
Я сам пишу на Си и Плюсах, да и вообще я лоу-лвл червь, но меня беспокоит (или, скорее, интересует) один вопрос - почему такие япы как Си и Плюсы жили, живут и будут жить еще N лет, и на которых будут продолжать писать тонну нового софта (а легаси никуда и не денется), а такие языки, как Раст (ничего не имею против Раста, честно, просто как пример) неизвестно еще выстрелят или нет. Выстрелить == господствовать в своей отрасли, в данном случае речь идет о лоу-лвл системном софте.
Делитесь мыслями почему так устроен мир лоу-лвла и почему это, скорее, не изменится в ближайшие лет 20? А если и изменится, то когда, на Ваш взгляд?
>почему что-то (что обошло сотню конкурентов и является исключением из правил) за 50 лет успело устояться, обрасти легаси, всё еще живет и будет продолжать жить (ближайшие 20 лет)??????!!!!!!!
>почему что-то новое неизвестно выстрелит или нет?????!!!!!!!!!!!!!!!!!!!!!!!!
>ДЕЛИТЕСЬ МЫСЛЯМИ ПОЧЕМУ!!!!
глубокие вопросы от лоулвлщика в треде
зачем так жестко, анон
Ведь основная проблема вокруг Си и крестов - это их небезопасность. В серьезных проектах даже боги этого языка делают ошибки, очень неочевидные, но все же ошибки. Раст создали с целью элиминировать класс ошибок с памятью, ибо импакт от атак, связанных с эксплуатацией ошибок работы с памятью, самый сильный, как ни крути. За жалких 5 лет существования Раст даже успел немножечко хайпануть и был избран некоторыми конторами как основной ЯП разработки софта, связанного с блокчейном, как раз из-за его безопасности. От ошибок логики и дизайна не спасет ни один ЯП, но вот от ошибок с памятью - таки реально. Поэтому и интересно сможет ли Раст за N лет выехать чисто на этой своей фишке или же захлебнется, ибо 90% контор похуй на секьюрити, лишь бы в сроки сдавали проекты и лилось бабло?
подразумеваешь, что боги языков не пишут серьезные проекты, кроме самого языка и срания в твиттере?
А ты открой CVE и посмотри.
Как пример, в ядре Линукса за 2019 год нашли около 600 дыр.
Винда, макось, мобильные ОС - не исключение.
Любой крупный софт, написанный на Си и крестах, имеет баги, нередко эксплуатируемые. И патч одной дырки в проектах таких масштабов может вызвать появление 3-5 новых дырок в других местах в проекте. Тебе любой исследователь безопасности об этом расскажет.
Эвристика-то простая. Просто ищешь, до границы какого байта выставлены все биты - это и есть размер твоего целого.
> Вы ещё про goto мне что-нибудь спизданите, выблядки
Это ты тот необучаемый дебил, который лечил, что GOTO заебись?
> Это ты тот необучаемый дебил, который лечил, что GOTO заебись?
Нет. Тот выблядок ничем не лучше первокурсников, которые ни разу в реальном коде goto не видели.
>основная проблема Си и крестов
>Си и крестов
Алсо, я не особо помню, какие широко используемые программы, связанные с безопасностью, вообще написаны на плюсах. Только Botan вспоминается (среди CVE есть несколько с уровнем 10), OpenJDK (в сане и оракле явно не лохи работали, а сколько дыр было) и винда (думаю, нет смысла приводить все её уязвимости).
>напишите дату бага а я напишу что этот разработчик в моем понимании не "разработчика-бог-c++," и затролю вас))))
Залетный блядь, съебись тралить на пикабу.
Тупая необучаемая мразь.
У него есть два наследника
Я создал функцию bool для проверки вводимых значений переменных в классах-наследниках
Проблема в том, что после ввода данных, программа вместо их вывода, снова запрашивает ввод полей базового класса и только потом выводит true или false для поля класса-наследника
Чем фиксить?)
переписыванием своей хуиты правильно. сделай минимальный репродюсибл пример. рассказывает про какую-то функцию проверки, а потом с какого-то хуя у него ввод данных появляется, а потом еще и вывод.
Вкатываюсь с нуля,читаю с++ без страха,какой компилятор для новичка лучше?Язык учу,чтобы вкатиться в 3дпринтеры
чувак это вообще законно?
bool publications :: isOversize()
{
book B;
type T;
return B->getdata() >= 800 ? true : false;
return T->getdata() >= 90 ? true : false;
}
> 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 и не выключай до конца жизни.
в getdata() нет return, возвращаются случайные числа
в isOversize() используются неиниацилизированные указатели и вообще непонятно что должно быть
какую именно основу,не совсем понял?
> какой компилятор для новичка лучше?
мне козалось компиляторы не различаются на "вот этот для новечка лучше", "а вот этот для продвинутого пользователя", и "а вот этот только для экспертов". конечно же нет смысла использовать что-либо кроме кланга или гцц.
> Все на ютубе.
Это вот и хуево, что все пиздят, а не пишут. Терпеть нимагу видеокурсы, это во первых долго, читаю я гораздо быстрее, да и удобнее читать, а во вторых, англ.речь на слух очень плохо понимаю в отличии от текста.
cl.exe
Либо ссылкой, либо перемещением
Ну ты сравнил! Где загнивающий говнопидер, где скоро начнут крыс есть, и где Суперсибирск - город будущего и сверхлюдей, де факто столица мира?
> Ты в универе пока только сортировки еще проходишь рофл.
Сортировки были на первом курсе так то.
Зависит от школы. Во всех провинциальных школах, где я учился (много раз переезжали), везде максимум был ворд с экселем. Один раз в 9 классе что-то на паскале пописали.
Да и пузырёк - дносортировка. Интуитивно её можно вывести, когда хоть раз подумаешь как отсортировать массив, а вот слиянием уже хуй школьцам объяснишь
Я учился в такой же провинциальной школе в 90-е, тогда и компы то не везде были. Никаких всеобщих учебных программ, все зависило от учителя, поэтому успел поизучать бейсик, паскаль и си (сортировке учил сишник, и вообще был самый адекватный)
А где гарантия, что после этой переменной будут ненулевые биты/байты?
Братан, я не понял, а где код в гитхабе? Сорян, я не понял, какая цель треда? Пишем бота? или что происходит?
о да, я целый год смотрил видеоуроки по си++ и прочей хуйне, самое смешное, стал охуенно понимать английскую речь, а вот си++ значительно хуже. Тут блять и на русском хуй проссышь.
Статические функции это некий сверхразум который существует отдельно от класса. Например с помощью статический ф-ий можно следить за количеством экземпляров класса.
Статические функции они как твоя мамаша, такие же тупые и конченые
А что такое глобальные, и какие это свойство имеет?
>целый год
Ору блять, за год можно наизуть стандарт C++20 выучить при желании, в придачу шаблоны и параллелизм
Чел, у меня были эти книжки по Борланд Билдеру в детстве, нахуй такое надо? Там треть книги это скриншоты менюшек (особенно доставляла инструкция к какому-нибудь визарду, которая могла занимать десяток страниц скриншотов next>next>next), треть это невнятные бойлерплейты для создания одной кнопки, и треть тупое перечисление функций или классов из АПИ. Серьезно, обучалки как пользоваться IDE сейчас есть на ютубе.
Все там есть. Итератор это класс- обобщенный интерфейс адресации и доступа к данным, чтобы, упрощенно говоря, ты мог одинаково пройтись и по массиву, и по множеству, и по файлу, и по любому своему хитровыебанному классу со стандартным интерфейсом.
Кстати (другой анон), что курил Степанов, когда придумал "итераторы вывода" https://en.cppreference.com/w/cpp/named_req/OutputIterator. Зачем нужна эта порнография, если это, по сути, равносильно Callable без аргументов?
ну у меня есть работа программистом, семья, бизнес. Я в 20 лет курс матана осваивал за пару недель и сдавал его на отлично, а сейчас мне уже за 30, я где-то час каждый день читаю техническую литературу, за три месяца еле-еле скилл подтянул.
ну вот я смотрю такой код у меня есть
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" а введения особо там нет.
Борщ мамкин ем
есть память - засовывай. Нету - не засовывай, в чем проблема. Или через Memory Mapping читай
Зависит от файловой системы, дефрагментации и т.п., проверяй экспериментально.
>>50228
Я сначала вообще не разбирался как они работали, тупо копипастил и относился как к чему то типа указателей, на магию инсертеров не обращал внимания. И мне кажется массово это стали использовать только с массовым использованием auto, до этого было лень пердолиться с именами типов.
Равный размеру файла, не? Запроси размер файла для начала, а уж потом выделяй под него буфер.
Как-то грустно. С++ же старается выходить максимально быстрым, а тут мне надо тупо уровень сишки юзать.
Из-за чего?
Сложное устаревшее говно с убогим синтаксисом.
Братка, я к сожалению профессиональный разработчик, в том числе и на си++, мне нельзя "не понимать как что-то работает". Иначе весь проект пиздой накроется, си++ это такой язык где надо понимать абсолютно все. Досконально. Иначе при большом объеме все развалится.
Удачи.
Плохой ты проф разработчик, если не знаешь, что суть в стл в том, что тебе не надо знать что и как работает.
Это скорее суть инженерного дела вообще
Address sanitizer
Он старается, но не всегда получается.
>Как-то грустно.
А ты бы тесты на скорость сделал перед тем как грустить. fstream просто обертка вокруг FILE, там основной затык должен быть в операциях ввода/вывода.
ЗЫ и никогда не используй end
Он делает флаш буферу, при больших объемах может сказаться на скорости записи. Старый добрый '\n' - наше все.
Шаблоны, enable_if, constexpr
дефайны нужны только для кроссплатформы или дополнительного кода в дебаг-режиме (собстно вот та самая условная компиляция).
Константы через constexpr auto ебашь
Она не нужна. Создавай отдельные файлы под разные платформы и нужные идут через билдсистему.
Включать отключать функционал, проверки и т.п. У тебя там #define _DEBUG не озвученный.
Зачем в 2к20 вообще может понадобиться условная компиляция? Просто для нужной платформы будут нужные файлы - os_windows.cpp, os_linux.cpp.
Ну, например делать дополнительные проверки/логгинг в дебаг билде
Или отключать отдельные фичи по необходимости
Хз про что ты.
Нупростите, у нас не питончучхе, чтобы верховный лидер определял единый стиль всей библиотеки.
Потому шо сайенсом занимаются сайентисты, а не программмсты.
Питон там обычно только обёртка над плюсовыми либами. Все вычисления делает плюсовый код, а питон - удобный фасадик к нему.
Как пишут настоящие крутые прогеры, когда у нас есть condition с булевой перменной?
if (condition) { do_some_code() }
или:
if (condition == true) { do_some_code() }
?
я просто в ЖС-параше обитал
new fag
Да.
Разе не надо удостовериться что мы используем именно boolean values и напрямую проверить истинность?
Ты в обоих случаях его используешь. If принимает bool.
Чёрт, я после этого поста почему-то вспомнил, как года 3-4 назад пытался разобраться, как в Tensorflow устроена свёртка. Это ЁБАНЫЙ ПИЗДЕЦ, а не кодовая база. Caffe намного лучше зашло.
Истинные олдфаги пишут if (condition != true) exit(-1);
Раз это CPP тред то юзать unique_ptr с кастомным делитером и оно все само когда надо освободит.
Обосрался.
>static_assert(std::if_bool_convertible(condition))
>if constexpr (static_cast<bool>((determine_condition_status::boolean_condition_checker(std::forward(condition))::value))
> if constexpr (std::is_convertible_to<bool, std::invoke_result_t<boolean_condition_checker, condition>>))
> return (static_cast<bool>(boolean_condition_checker(condition)));
class div_exception : public std::exception {};
...
template<typename T>
T operator/(T lhs, T rhs)
{
if (rhs == 0) throw std::div_exception("Divide by zero");
return lhs / rhs;
}
...
try
{
1 / condition;
//do smt if condition is true
}
catch (std::div_exception& ex)
{
//do smt if condition is false
}
У меня нет.
Это не СИ тред.
Бля, это же не скомпилится, я даже здесь налажал.
Ты вообще читаешь на что отвечаешь, выблядок домкратом деланый?
В общем, есть одна программа, которая работает на нескольких компах с виндой. Думаю запилить для нее автоапдейтер/перезапускатель. План таков: поднимаю веб-сервер, апдейтер таксает с него курлом текстовый файл с версией раз в несколько часов и, если версия оказывается больше, чем локальная, то скачиваем зип-файл с апдейтом с того же сервера и распаковываем.
Какие подводные камни? Я просто совсем нуб в этих делах, никогда не видел как профессионалы такие вещи делают.
>какие подводные
Ну например запущенный процесс, может залочить бинарник, поверх которого ты распаковываешь.
В смысле он сам себя залочит? Ну это понятная ситуация с перезапуском.
Или ты имеешь ввиду, что какой-нибудь условный антивирус может залочить файл и стоит долбить его, пока он не освободится?
Зачем, если есть boost::python
Почему выдает какую то залупу? Как сделать, чтобы всё работало?
Все ровно то же самое, мы тут не телепаты.
Это то, как в памяти и процессоре что будет располагаться - например, через какие регистры/смещения в стеке передаются параметры, кто чистит стек вызывающий или вызываемый, и т.д.
Мой интеллект намного превосходит медиану по Европе, между прочим. Это просто давно установленный факт, ничего не поделать
Так что выбирай слова осмотрительнее, когда со мной разговариваешь
Это типа как майкрософтский Component Object Model (COM)? Там тоже вроде бинарный интерфейс.
Abi Winters, это такая австралийская фотограф, её все знают.
Занятно, что согласно базару Аленки, ABI - это вещи, которые стандарт не описывает. Каким образом в С++20,30,100500 они планируют поменять то, что к стандарту не имеет никакого отношения? Мб ориентацию рубистов еще свапнут?
gcc хороший, наверно лучший компилятор (ещё и свободный). llvm не компилятор вовсе
std::map<std::string, wchar_t> ={{"str", 'д'}}
Но пишет, что д слишком большое число для этого литерального типа.
Как в крестах вообще разные кодировки работают? Как перевести чары из скажем ascii в cp1251?
Для начала надо понять что есть кодировка исходника, а есть кодировка уже во время исполнения.
Не смотря на то, что в стандарте нихера нет - они все равно стараются не ломать ничего. Считай, некое джентельменское соглашение с дополнительными гарантиями.
Вопрос, с чего лучше начать? Пока что обладаю базовыми знаниями ООП и немного про STL знаю (из спортпроги, лол)
Ну, начинай писать, хуле еще делать. Скилл так и появляется, когда ты решаешь проблемы, которые не знаешь как решать.
И компьютерное зрение пишется на питончике. Так же, как и с машобом, питон под капотом дёргает плюсовые либы, сам питон там в роли glue code.
В стандарте от ABI и всяких подобных вещей по типу выбора конкретных механизмов реализации виртуальных методов абстрагировались намеренно и полностью, а не так что "пацаны ну тип мы тут канешна не будем писать в стандарте тут и так дохуя но забьемся что виртуальные методы через таблицы делаем". Поэтому нихуя так и не понятно
В Пистоне я мог открыть файл (файловый объект unix) с помощью функции open и задать там кодировку для открытого объекта. Мог сохранять в иной кодировке, мог работать с двоичными данными (bytes, bytearray) и свободно кодировать/декодировать инфу
Как это работает в плюсах?
ну, так и будет первые годика 3
Бери iconv и ICU и еби свои символы
Какие еще теги оформления знаешь, петуш?
Твой сарказм не в тему, никто не настаивает на описании ABI в стандарте - это даже правильно
Нас двое, я вообще мимо проходил, и мне пох на ABI.
нахуя?
Почему оно работает, если на строках 46, 48 и 50 типы до и после new не совпадают?
Потому что читай про наследование.
Так Shape же их родитель, почему что-то должно не работать? Объекты класса всегда можно приводить к типу который родитель этого класса и работать с ними как с объектами родительского класса, наоборот вот нельзя.
Но ведь это всё равно разные классы. В шапе нету того, что есть в производных классах, они отличаются.
> В шапе нету того, что есть
Ну так то чего нет использовать нельзя. Даже если у тебя объект типа Круг - ты его можешь использовать только как шейп, пока явно не приведешь к типу круг.
в классе функция а через точку ещё одна функция или что ?
x0.Account("123456").Balance() == -2190
Посмотри что возвращает Account() и подумой
метод аккаунт возвращает какой-то объект, назовём его "ret". представь теперь, что
> x0.Account("123456")
превратилось в ret, а значит
> x0.Account("123456").Balance() == -2190
превратилось в
> ret.Balance() == -2190
Даю наводку: а что такое 1 + 2 + 3? А если o1.add(o2).add(o3)?
clang более строго следит за стандартом: шаг влево, шаг вправо - ошибка. gcc скомпилит всякое говно и слова тебе не скажет. Вообще, со сложным кодом gcc работает хуже, тут тебе и Internal compiler error, и неспособность шаблоны сопоставить иногда, и сжирание памяти.
Короче, с clangом приятнее работается, не говоря уже про сопутствующие с ним утилиты.
Кресты стабильный язык. Нечего обсуждать.
Стыдно, но я пишу круды на Qt.
Ну что ты такое говоришь? Конечно, студентов много, но синьоров тут тоже хватает. Правда активничаем только мы с нвидия-куном
Есть ли какой-либо способ узнать полный список доменов, зная IP и имя хоста? Хочу чтобы выводился пример как на пикрилейтед. Готового кода не прошу, максимум хочется направление где копать. Спасибо :)
Ну вот, хоть кто-то это написал.
Что такое круды?
Дело наверное в том, что с++ изучают во всех универах и по факту это первый серьезный язык для всех после школьного паскаля или что там сейчас преподают.
А что не так?
Это Арч Линукс, а не винда.
>руководство есть?
Вот тебе руководство: https://wiki.archlinux.org/index.php/installation_guide
Есть-ли другой способ помимо использования API сайта?
>Курлом дерни то, что ты дернул браузером и распарси ответ
За наводку спасибо!
Анус себе дерни
Ответ в стиле "Чтобы решить таск, спихни его индусам на аутсорс за полцены вопроса"
У первой не плохой, но встречаются порой ошибки. Впрочем не мешает.
struct person
{
char const * name;
size_t age;
};
Исходя их этого, можно ли рассматривать эту группировку так, как мы рассматривает обычные переменные - при создании экземпляров или когда возвращаем значения типа структуры.
person analysis(int x, int y);
да?
Да.
Да, это такие же обычные переменные, как переменные типа int. Разве что не примитивы.
Да
T<A> pa;
T<B> pb;
pa = pb;
нужно написать шаблонный класс T, чтоб этот код скомпилился. Как это сделать, ничего придумать не смог/
>первый серьезный язык
+
Мылись недавно в бане с потом информационной безопасности, у всех мощные такие хуи по 17-20 см. А вот у дизайнеров-верстальщиков поменьше будут, потому что плюсы для Серьезных Мужиков, а фронт - для пидоров
харчки от стенли б липпмана и барбары му
Анонче, а не подскажешь, как сделать 17 стандартом по умолчанию, или чтобы g++ автоматически с этим флагом начинал работать?
Тогда у тебя 3 плохих варианта. Самый простой сделать алиас gcc с нужными флагами. Второй, экспортировать переменную окружения CFLAGS. Ну и самый сложный это отредактировать spec файл
https://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html
Но я бы посоветовал освоить хотя бы самые азы make и пользоваться им для всех проектов.
Почему я зумер? У нас порядок другое бывал.
template <template <typename> class T, typename B>
decltype(auto) operator=()(const T<B>) {}
Не блягодари.
Хотя template <typename> class T> не нужен.
Всё TMP шизофрения. Вот завезут метаклассы и будешь месяцами весь невидимый нагенеренный код отлаживать, потому что о тулинге никто никогда не думает
class TBase {};
template<class AB>
class T : public TBase {};
Хуйня, давай следующую
inb4 кококо новые сущности вводить нельзя ИДИ НАХУЙ
Скомпилировать попробуй, клоун.
А тебе?
В fallthrough.
Там разметка курсивом от двух съеденных макабой звёзд + следующий пост с пояснением. Без указателей и спрашивать бы никто не стал.
Ну или кроме void может быть любой другой простой тип.
Дай угадаю, ты из тех дурачков, которые влезли в спор, обосрались с ключевыми терминами, а потом начинают маневрировать, что они это и имели в виду.
В общем, меня смущает кодить в IDE, хочу как хацкер настоящий в каком-нибудь текстовом редакторе кодить. В связи с этим вопросы по правильной структуре проекта и базовым инструментарием. Что я понял в процессе недолгого гугления: нужно gcc или какой-нибудь еще нормальный компилятор и make изучить. Но я что-то не понял а как организовать структуру проекта нормально, чтобы эти штуки нормально же работали. Просто хочется сделать какой-то шаблон, чтобы потом я мог его скопировать и кодить что хочу, а потом нажав одну кнопочку чтобы все собиралось и я не о сборке всего что накодил думал, а о том что именно накодил. Понимаю, что IDE решает все эти проблемы, но как-то несолидно же.
>В общем, меня смущает кодить в IDE, хочу как хацкер настоящий в каком-нибудь текстовом редакторе кодить
Потом ты поймешь, что даже сверхлюди типа Эрика Ниблера и Херба Саттера пишут в обычной Вижуал Студии, а студентики надрачивают на консольную хуйню. А никак не наоборот.
Начни с элементарного мейка, потому по мере накопления wet кода в нём, смотри, что можно заменить на переменные, что на макросы. Потом и по папочкам распихаешь, на пяти файлах этого смысла нет делать.
Сам компилятор джая на плюсах же. Хотя да, от плюсов там мало чего.
Глубоко.
Чет не угадал. Я в курсе про переопределение, но не знаю что такое сравнение и присвоение? Слижешь после себя говно. Страуструп с комитетом подо мной ходят, а ты залезай обратно на хуй
Нуу типа ыыы
class A
{};
class B
{};
template<typename Type>
struct T{};
template<>
struct T<A>{};
template<>
struct T<B> : public T<A>{};
Ну чё ты, формально условия соблюдены же!
#define A B
Звёзд нет, присваивается значение указателя другому.
class A;
class B;
template<typename Type>
struct Helper
{
typedef void type;
};
template<typename Type>
using T = typename Helper<Type>::type;
А так?
vs code + cmake + cmake tools экстеншен
На SO нихуя не нашёл, на who is hiring тоже чето не того.
Есть идеи где поискать можно?
Ебать долго ждать наверное, если сейчас только 23. Как они на почти полторы тысячи стандартов все распланировали?
Хз, мне самому пришлось после двух лет на плюсах на питон катиться как проект кончился, пушо вакансий на плюсы не нашлось, а кушать хочется. Мб если месяц посидеть подождать чё и нашлось бы, но нахуй.
Расскажи о перекате с плюсов на питон. Изучил его во время работы на крестах? Трудно ли было перекатиться? И как это вообще происходило?
Да буквально "здаров есть работа, но там питон, пойдёшь на собес? ну можно", перекатываться на него не нужно, потому что питон по сути псевдокод, ты уже на нём пишешь, лол, ну за неделю перед собесом пописал на нём, задачки всякие поделал, с асинхронностью познакомился, сделал фреймворчик для работы с апи одного сайта ну и всё, на собесе честно сказал, что неделю назад на нём не писал, но описал, чё делал и что за выходные ваш фреймворк покурю и от опытного питониста не отличите.
в том же сраном паскале ввели модули и пидорнули препроцессор еще в 1978году.
Потому что его не Страуструп развивает.
Тот же алиас, что там думать.
Потому что он мертв. Точнее, жив, конечно, но как COBOL или Fortran - легаси и узкие ниши.
Страуструп точно легаси.
Так а чё, всё равно это не ответ на задачу, это типа мысли вслух как бы я пытался выкрутиться, если бы мне такое дали. А так чёт хз, похоже никак не сделать?
Разве он вышел за пределы черновика?
Рантайм - вся стандартная библиотека, эксепшены, статические не-POD переменные.
Я про Qt, если что.
Бля, но ведь в векторе только вершины. Где остальные точки? Как метод contains() работает?
И с компоновочными виджетами это как работает?
По моему освобождается, когда удаляется родительский виджет. Но я не уверен.
А что по-твоему есть полигон, если не набор вершин?
Зайди в исходники и посмотри, как работает этот метод. Судя по описанию второго параметра, алгоритма там два и оба простые
Получается, нельзя получить граничные точки никак готовым методом? А как тогда их получают?
А есть что то другое, кроме QPolygon, чтобы можно было область на рисунке выделить?
400x300, 0:10
>Я больше 5 лет на C++
>"Название процесса"+Адрес. Что это значит?
>В cheat engine
>просто никогда особо никогда не лез в эти дебри дизассемблинга
Ну всм когда я на довольно свежей версии дистра сделаю apt upgrade, использую что-нибудь из std::ranges::* и оно найдётся компилятором?
>const char
>const wchar_t
>std::string
>std::wstring
>std::u8string
>std::u16string
>std::u32string
>std::string_view
>std::wstring_view
>std::u8string_view
>std::u16string_view
>std::u32string_view
>А есть что то другое, кроме QPolygon, чтобы можно было область на рисунке выделить?
Что тебе сделать-то надо в итоге?
А также QString, boost::algorithm::string и ещё 100500 реализаций строк, а им всё мало.
>Выделить область, нарисовать градиент.
Ну и рисуй свой полигон через QPainter. Зачем тебе пиксели-то?
Имхо во времена антиальясинга и субпиксельного рендеринга наивно надеяться что есть некий четкий набор пикселей. Но ты можешь попробовать провести линию между вершинами, алгоритм Брезенхема простой.
Всё, разобрался, спасибо.
Время от времени в коде на гитхабе как перед вызовом функции ставят ::, при том что функция из текущего скоупа видна. Вот например так:
auto mamkaOPa=::roditMamku();
Вопрос: зачем так делать?
> Ну и рисуй свой полигон через QPainter. Зачем тебе пиксели-то?
Мне надо не полигон нарисовать, а выделить область и нарисовать градиент в этой области. А чтобы рассчитать градиент, нужно работать с пикселями.
Да это понятно, если есть конфликт имен, и мы форсим тот что у аутер скопе.
В случаях, с которыми я сталкивался, была только одна функция с нужным именем, никакого конфликта не могло возникнуть. Мб это какой-то задел на будущее, в случае если появится функция с таким же именем с текущем пространстве имен, логика не сломается, потому что все равно будет вызвана нужая.
Еще как пример, эти :: некоторые используют даже для вызова WinAPI: ::СreateFile(...). Какой долбаеб будет добавлять функцию с таким же именем, я не знаю; тем не менее эти двоеточия вхуяривают незнамо зачем
Абсолютно верно - задел на будущее
Что скажете по книге Лафоре ООП(дошёл до 11 главы и застопорился на ебанутой задаче)? Какие рекомендации к изучению?
Ещё вариант, что код писался адептами Unity build. Лет десять назад в одном довольно большом проекте с одним ебланом поссорился, когда он мой лаконичный код начал мазать своим говном, состоящим из :::::::::::::. Видите ли, у него иначе не собирается
На С++ естественно, хотя и псевдокод пойдёт
>а выделить область и нарисовать градиент в этой области.
Тебе надо на битмапе нарисовать область выделения линией, а потом залить ее градиентом. Все это умеет QPainter.
Не надо.
Почему здесь компилятор ни на что не жалуется?
http://www.cpp.sh/4oall
И почему здесь жалуется на Triangle, Rectangle и Octagon в статик методе createShape?
http://www.cpp.sh/3545a
Наверное. А зачем оно тебе внутри? Обычно внутри только объявления, а тела отдельно уже идут.
Ну в 1990-х, наверное. А сейчас координаты линии уйдут на gpu, где будут рисоваться по float
Можно и в классе, ты просто не умеешь
Объявление класса само по себе не создает никаких сущностей, только определяет структуру объекта.
Соответственно если предполагается использование static-переменной, которая не будет создана конструкторами как в случае с nonstatic-полями (потому что по определению она "общая" для всех объектов класса), её надо создать, что и происходит, когда она определяется в глобальной области видимости.
К слову, если это поле const/constexpr (во всех случаях использования поля компилятор может подставить значение), то возможно определить и в теле.
А вообще я всё это в рот хуярил, кроличья нора ебаная
Это мне даст размер указателей на битность данной скомпилированной программы.
Мне надо знать размеры как для 64 бит программ, так и для 32 бит, в разных операционках они разные, вроде где-то для 32 программ указатели могут быть 6 бит, а для 64 8 бит.
>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?
И происходил ли автоматическая фрагментация данных при отправке больших файлов по WinSock?
Отправлял файлы до 80 мб - все отлично
Попробовал отправить 2гб - badalloc
Visual Studio
qt creator
vs code
VS Code.
Вкратце, если кто-то пиздец шарит, то может помочь решить задания по универу? Там банальная хуйня какая-то, но все же. Буду признателен, всем спасибо.
Динамическое выделение памяти?
зачем нам это
За 1к готов решить.
ROLL https://2ch.hk/pr/res/1657102.html (М)
ROLL https://2ch.hk/pr/res/1657102.html (М)
ROLL https://2ch.hk/pr/res/1657102.html (М)
ROLL https://2ch.hk/pr/res/1657102.html (М)
ROLL https://2ch.hk/pr/res/1657102.html (М)
ROLL https://2ch.hk/pr/res/1657102.html (М)
ROLL https://2ch.hk/pr/res/1657102.html (М)
ROLL https://2ch.hk/pr/res/1657102.html (М)
std::thread::hardware_concurrency
Просто берешь std::bind и без задней мысли передаешь.
лямбду передаешь с одной стороны, с другой стороны принимаешь std::function
Лямбда. [k = k](x) { f(k,x); }
Если на этапе компиляции:
#if sizeof(void) == 4
// my govnocode for 32 bit pointers
#elif sizeof(void) == 8
// my govnocode for 64 bit pointers
#else
// ya debil
#endif
Фу блядь, фу на хуй - у тебя там один неинициализированный указатель другого в жопу ебёт! Брысь к себе под шконку - формочки на ПХП писать за борщ!
Используй Qt Designer. Там формы за пару минут накидываются. Намного удобнее, чем в коде что-то пытаться изобразить.
Это копия, сохраненная 12 июня 2020 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.