Этого треда уже нет.
Это копия, сохраненная 7 августа 2019 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
1561664916815.png23 Кб, 360x405
C++ №90 /cpp/ 1423580 В конец треда | Веб
Вместо шапки - https://github.com/sosachbot/cppthreadhat/wiki
Ответы на все вопросы - http://en.cppreference.com/w/ http://www.cplusplus.com/reference/
Прошлый: >>1413564 (OP)
2 1423584
Первыйнах!
3 1423593
>>1423547

>Ты вообще в курсе, как устроен raw-файл?


>Это по сути одномерный массив байтов.



Я не доебываюсь, мне просто интересно: а так bmp же, по факту, тоже одномерный массив байтов(после хедеров). Или ты к тому, что в raw формате чистый сигнал должен быть записан?
4 1423599
>>23593
В bmp есть заголовок, а в raw-формате даже его нету.
5 1423606
>>23599
tl;dr проблема в том, что функции, которые ты хочешь перенести в новую единицу компиляции, привязаны к глобальным переменным. Если их нельзя/влом переписать без глобальных переменных, то почему бы просто не объявить их как extern в твоём новом файле и просто продолжать пользоваться ими?
Мимопроходил
6 1423608
>>23599
Есть там заголовок и много чего ещё. Всё ещё зависит от конкретного формата, у каждого производителя (Canon, Nikon, Sony и другие) он свой.
7 1423610
>>23593
>>23599
>>23608
я не читал исходную дискуссию, но есть специальные библиотеки, которые позволяют открывать рав-файлы разных производителей.

В рав есть всё, и размеры снимка, и масса параметров съёмки, включая цветовой баланс и другое. Просто графические редакторы, кроме родных, часто не умеют с этими данными работать.
8 1423611
>>23593
Бля вы ебанутые? Любой файл это набор байтиков. Вам еще рано С++ учить, пиздуйте мат. часть зубрить.
9 1423614
>>23608
>>23610
Не, raw фотокамер - это немножко другое. У меня другой raw, не знаю, почему у них одинаковый формат.
Если есть фотошоп, то можешь создать черно-белую картинку и сохранить ее в формате photoshop-raw. Размер картинки будет точно высота*ширина картинки. С учётом битности, конечно.
Возможно raw в фотошопе - это один слой raw в фотоаппаратах.
10 1423615
>>23606
Я уже решил проблему. Создал отдельный класс rawfile, в котором есть функции загрузки и сохранения файлов.
11 1423616
>>23611
В raw формате - это одномерный массив пикселей.
12 1423618
>>23616
И куча мета-информации. Чем одномерный массив отличается от двумерного? BMP и TIFF тоже одномерные массивы пикселей, если подумать.
13 1423638
В чем практическая польза полиморфизма(динамического)?
14 1423667
>>23638
Использование общего интерфейса с разными реализациями
15 1423669
>>23611
Шо ты такой агрессивный, ты Панин и у тебя не с той ноги встал?

Понятное дело, что это просто набор байтов. Просто bmp-пикчу проще воспринимать таким образом, так как ебни по клаве - получишь пикчу.
То есть это именно простой набор байтов(хотя тоже сомнительно, там же структуры для пикселей), а не как у жпега - там сложнее хранится инфа.
16 1423673
>>23669
Я не к тому, что ты ебанутый или мы ебанутые, а что в этом контексте можно так выразиться.
17 1423678
>>23669
На самом деле в коммерческих raw форматах сложнее структура, чем bmp, там есть компрессия, поэтому все равы разного размера. Если ты в файле что-нибудь хаотично изменишь, у тебя всё сломается.

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

В прошлой теме автор считал, что в раве даже размера картинки не хранится. Бред, там всё хранится. Там даже помимо пикселей ещё и JPEG с превью хранится.
18 1423680
>>23678
Еба, тут нужен мем из "тачку на прокачку".
Я просто в это не углублялся, только bmp изучал для своих нужд.
Но хранить чистые данные без размеров - это странно. Разве что по "краям" хуячить служебные байты - каждый пятый пиксель для картинки шириной в 4 пикселя. Но тоже такое себе.
19 1423693
О чём вы спорите вообще? В bmp всегда есть заголовок с информацией о картинке, в raw он может как быть, так и отсутствовать полностью, то есть не любой файл можно открыть без дополнительной информации или предположений.
По каким-то причинам вот этому анону попался совсем чистый raw, где есть только пиксели. Видимо, от какой-то программы, которая всегда генерировала равы одного и того же размера с одним и тем же форматом пикселей (или древний фотоаппарат, где всегда одинаковое соотношение сторон, и по размеру файла можно однозначно определить размеры изображения - изображения предназначались для какой-то обработки специальной программой, где явно указывался тип фотоаппарата, например) - не вижу других ситуаций где такое могло бы возникнуть, но и ничего особо удивительного в этом тоже нет.
20 1423706
Есть книга липмана с11 и кресты за 21 день. Какую лучше читать?
image.png36 Кб, 742x376
21 1423722
Сап, эксперты метапрограммирования на месте? Пишу обертку sprintf для форматирования сразу в динамическую строку. Сама обертка работает, но хотелось бы немного улучшить, а именно добавить валидацию форматной строки на этапе компиляции. Типо подсчитать количество символов '%' и сравнить с количеством вариативных аргументов, если они не равны то выдавать ошибку через static_assert. Возможно ли такое сделать и если да то как?
22 1423732
>>23618

> И куча мета-информации


Нету там мета информации >>23614
23 1423733
>>23678

> В прошлой теме автор считал, что в раве даже размера картинки не хранится. Бред, там всё хранится. Там даже помимо пикселей ещё и JPEG с превью хранится.


Чувак, прочитай мой пост >>23614
А лучше попробуй сам сделать это в фотошопе.
24 1423735
>>23693

> По каким-то причинам вот этому анону попался совсем чистый raw, где есть только пиксели.


Не по каким то причинам, а по определенным. Такие raw файлы юзают как карту высот при генерации ландшафта.
25 1423939
>>23722
Это можно сделать через stdarg.h, если хочешь сам, то смотри примеры реализации этого stdarg или читай про устройство cdecl.
26 1423941
>>23939
Так эта хуйня с va_args работает в рантайме и соответственно проверка будет происходить в рантайме.
27 1423961
>>23667
Разве механизма наследования методов недостаточно?
28 1423964
>>23722
Relaxed constexpr не работают на string view? То есть нельзя просто циклом while пройтись по чарам или типа того?
image.png11 Кб, 932x164
29 1423965
>>23941
А, ты так хочешь. Он жалуется.

>static_assert expression is not an integral constant expression


Но constexpr функции которые считают количество аргументов и процентов (самую тупую, естественно, без учёта \% и%%) я вроде бы сделал. Оно выдаёт по 18 тактов, хотя оно совершенно точно не могло с -O0 посчитать в рантайме такую строку за 18 тактов. (без constexpr там что-то порядка 800 и 200 тактов)
https://ideone.com/dm8kpU
А как применять static_assert - не знаю, никогда не пользовался.
30 1423971
>>23961
Я сам в этом не шарю, но здесь может быть тот самый случай, когда нужно хранить в контейнере с указателями на предка кучу указателей на разных наследников и вызывать для них конкретные переопределенные методы.
Без динамического наследования в такой ситуации звался бы метод предка.

Ну, это если я верно понял обрывки инфы, которые видел в инете.
Знающие анонии, поправьте, где мой проеб?
image.png81 Кб, 784x723
31 1423976
>>23964
>>23965

Вот типо так должно работать, но это ебучий костыль оборачивать каждую строку в лямбду через макрос. Вот и думаю может кто знает получше вариант?
32 1423977
>>23638
В том, что ты в рантайме можешь создавать объекты, (реализующие определенный интерфейс) например на основе действий пользователя, генератора случайных чисел или загружая данные из файла, и тебе пофиг сколько и какие именно конкретно объекты ты создаешь.
Т.е. пишешь например ты игру, и тебе не надо хардкодить уровни, ты в рантайме подгружаешь созданные дизайнером, и все части уровня общаются через стандартные интерфейсы не зная конкретно с кем общаются.
33 1423985
>>23977
Можешь пример кинуть откуда-нибудь?
image.png10 Кб, 908x226
34 1423986
>>23976
Кажется, я совсем не понимаю о чём ты говоришь, какая лямбда, зачем там лямбда?
Чем вот такой вариант не подходит? Можно даже проверку на типы прикрутить при желании, чтоб он выпадал если там стоит число напротив %s или ещё что-то такое.
https://ideone.com/zJdssI
35 1424003
>>23961
при наследовании у тебя разные классы. А тут указатель на один базовый класс.
36 1424013
>>23986
Можно конечно попытаться через макросы, но хотелось бы вариант посовременнее через шаблоны как-то, ну и еще в твоей реализации оно не работает если попробовать вывести просто строку без аргументов. Так же если форматная строка будет рантайм, то static_assert не скомпилится вообще. Вот как я пока придумал https://ideone.com/bbn6kB
37 1424048
>>24013
У тебя это вообще комплириуется? В функции fmt ты не принимаешь ни указатели функций, ни объекты функций, так хуле ты туда лямбду пытаешься запихнуть?
38 1424049
>>24013
>>24048
Ах, ты эвальюируешь её в теле функции и получаешь стринг. Ясно. Зачем это надо было - не ясно.
39 1424050
>>24048
Компилируется, так потом через оператор () оно возвращает constexpr строку, иначе я не могу создать constexpr string_view внутри функции. Вот и думаю как без этого костыля сделать вообще.
40 1424065
Qt 4.8 Можно как-то получить сигнал о том, что в QTableWidget поменялось количество строк/столбцов/элементов?
41 1424075
Аноны, подскажите, где можно прочитать про следующие вещи

1. Реализацию умных указателей и умных указателей с подсчетом ссылок, что бы объяснялось от проблемы до ее решения.
2. Какую-нибудь книгу по STL, уровня для тех кто с++ уже знает и хочет познакомиться с основными возможностями и возможно тонкостями.

Меня прежде всего интересует литература среднего уровня, т.е. для тех кто худо бедно осилил страуструпа и эккеля и хочет идти дальше, но всякие майерсы и сартры пока не по зубам. У меня есть дома книга Джосатиса, талмуд по STL на 600 страниц, это блять слишком для меня.
42 1424076
Подскажите про анонимное пространство имен, я так понимаю с помощью его можно скрыть переменную для доступа из других единиц трансляции, т.е. если у меня есть h и cpp и в cpp определена переменная в анонинмном namespace, то хуй кто до нее доберется, но какой мудак будет инклудить cpp файл?
43 1424082
>>24065
rowCountChanged?
44 1424085
>>24075

>умных указателей с подсчетом ссылок http://artemy-kolesnikov.blogspot.com/2014/11/weakptr.html?m=1



Без подсчета там изи, когда область видимости переменной кончается то вызывается ее деструктор, в этом деструкторе просто реализовано освобождение ресурсов.
45 1424099
>>24082
Собственно такого сигнала нет, в этом и проблема.
46 1424107
Есть либа которая умеет сразу в xml yaml и json?
47 1424122
>>24065
К модели подключись, там 100% есть такое
48 1424131
>>24107

> xml yaml и json?


Лучше. Есть три либы
49 1424134
>>24122
Как это сделать?
51 1424158
>>24156
А стоп это не то. Виджет же просто отображает модель, и изменения тоже надо ловить в ней как говорит >>24122
52 1424163
>>24158
Хорошо, как это сделать? Я просто ньюфаг, всего месяц с qt работаю.
.png4 Кб, 339x234
53 1424181
>>23985

> Можешь пример кинуть откуда-нибудь?


Примеры чего? Уровня? Можешь глянуть исходники Квейка 3. Хоть и на Си написано всё, но в общих чертах выглядит именно так.
Сущности на уровне описаны в key-value блоках. Чем-то на json похожи.
Допустим это какой-то предмет (см картинку, поле classname), игра читает файл карты (конкретно секцию отведённую сущностям), читает значения поля classname и ищет в коде функцию (в Квейке 3 все объекты имею тип entity_t, будь то дверь, предмет, игрок и тп) которая ассоциирована с этим значением.
Создаёт в памяти сущность и сохраняет её в какой-то свой массив.
В С++ точно также (точнее как это сделать решает сам), только вместо просто функции будет какой-нибудь make_shared или типа того.
54 1424186
>>24181
Что-то я еще сильнее запутался.
55 1424190
>>24163
Так же, как ты бы делал, если подключался к вьюшке. Только теперь подключаешься к чему-то вроде tableView->getModel
56 1424192
Хочу написать проигрыватель мп3 с нуля, что гуглить? Мне и кодеки нужно будет написать? ОС линукс.
image.png80 Кб, 889x721
57 1424197
>>24190
Оно? Как видно на скрине все равно не работает.
58 1424211
>>24192
Разобрался. Кому интересно будет вот тут http://hzqtc.github.io/2012/05/play-mp3-with-libmpg123-and-libao.html
всё, сначала декодируется, потом проигрывается, libmpg123 и libao опенсурсные, так что можно прям по функциям посмотреть поизучать чё там вызывается и как.
59 1424289
>>24197
Не, если ты хочешь слушать rowsCountChanged, то тебе нужно подключаться к вьюшке и либо использовать новый синтаксис, либо указать типы аргументов сигнала. Если хочешь к модели подключиться, то подключайся а rowsInserted/rowsRemoved
60 1424323
>>24197
дружище, никогда, слышишь, никогда не используй старый синтаксис подключения сигналов. С новым синтаксисом на этапе компиляции валится, если что-то не так, с ним при изменении аргументов не нужно переписывать коннекты.
61 1424330
>>24186
Полиморфизм - это взаимодействие с объектом через интерфейс, через специальные функции, реализации которых могут сильно отличаться в зависимости от объекта.

Например, у тебя есть функция, которая сохраняет дамп какого-то объекта в лог, для дальнейшего анализа.
saveDumpToLog(IDump *obj)

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

Вот ты и реализуешь у каждого объекта метод getDump(), который возвращает строку с тем, что надо сохранить. Это и называется полиморфизм.

Твоя функция просто принимает объект, вызывает этот метод, получает строку и сохраняет. Вот и всё.

Самая обычная идея. В C++ это через виртуальные функции и наследование делается, в Java для этого описываются интерфейсы, в языках вроде JS/PHP/Python и других ещё проще, доступ просто по имени функции, они там уже все виртуальные, других нет.
62 1424331
>>24330
Если кратно, полиморфизм - это сама идея, чтобы взаимодействовать с разными по природе объектами через какие-то одинаковые методы.
63 1424383
>>24331
Это я понимаю, я про практический аспект.
Вот например зачем нужны полиморфные объекты, использования виртуальных функций не достаточно?
64 1424388
Аноны, а объясните про бинарный оператор-функцию, когда она френдом прописывается
friend const Integer opeartor+(const Integer& l, const Integer& r);

Как компилятор понимает, что надо взять объекты справа и слева
т.е.
a + b
Почему тогда нельзя написать ф-ию Koo
которая будет также выглядеть
a Koo b
65 1424393
>>24388
Инфикс операторы это про скалу и борщи.
https://en.cppreference.com/w/cpp/language/operators
Есть список из 40 операторов, которые можно оверлоадить. Тут с++ в некотором роде похож на пистон.
66 1424396
>>24388
Ну, если примут uniform function call syntax или как это называется, то можно будет писать a.foo(b) и too(a,b) одновременно
67 1424405
>>24396
Зачем ждать когда примут, если уже есть дишечка?
68 1424409
>>24383
В креста х это считай одно и тоже
69 1424413
>>24405
Что есть?
70 1424418
>>24413
А ты не знал, что все тру кодеры называют языки в алфавитном порядке? Есть b,c,d,f,h
71 1424421
>>24418
Пиздец. Так бы и написал "D", а то включил тут пидорство и называешь "дишечка", как будто в жопу себе вставляешь. Тьфу блядь.
72 1424425
>>24421
Я не тот
ерк.PNG2 Кб, 322x49
73 1424439
Что представляет собой (зв)pp? Программа выводит шестнадцатиричное число. Чей это адрес?
74 1424442
>>24439
Адрес указателя p, который содержит в себе адрес i.
75 1424551
>>24388
Я имел в виду, что operator+(int, int) это что-то особенное что позволяет вызов ф-ии помещать между двумя переменными?
И можно ли писать например
+(2,3)
?
76 1424568
Что лучше прочесть насчет WinAPI вкратце. Я хотел только украсить парой свистелок хелловорд в консоли, а нашел это, кажется избыточно и сложно.
77 1424569
>>24551
Ключевое слово operator по-твоему там просто так стоит?

> +(2,3)


operator+(2,3)
79 1424611
Аноны, а вас унижали на собеседовании? Мне однажды сказали, студенты и то лучше код пишут, а мне уж 33 было.
80 1424626
>>24611
Неси код.
81 1424644
>>24626
Походу это тот питонокодер с физбусом
83 1424727
Qt. Как выполнить connectToHost по домену?
84 1424729
>>24727
Я же не знаю порт
85 1424748
>>24729
Ебашь 80 для http
86 1424751
>>24568
А то. Графический интерфейс винды хуже пиздеца. На пару контролов целый экран уходит. Лучше сразу в QT вкатывайся какой-нибудь.
87 1424752
>>24748
Спасибо
88 1424753
>>24645
Спасибо, проигрывали с топ-манагером весь вечер, потягивая пивко.
89 1424798
>>24626
я ща попробую поискать, где-то на почте валялся((( пиздец конечно.
90 1424799
>>24569
или вот так
2 operator+() 3
Будет работать?
91 1424805
>>24799
Ты бы быстрее проверил каким-нибудь cpp.sh
нет
92 1424840
При нажатии на кнопку происходит нихуя.
в cpp:
Chat::Chat(QWidget *parent):
QMainWindow(parent)
{
ui.setupUi(this);
connect(ui.Button_Update, SIGNAL(clicked()), this, SLOT(ConIp));
}

void Chat::ConIp(){
MyIp->connectToHost("yandex.ru/internet", 80);
ui.plainTextEdit->appendPlainText("Connecting\n");
}
93 1424841
>>24840
Текст не выводится
94 1424847
>>24841
connect(ui.Button_Update, SIGNAL(clicked()), this, SLOT(ConIp()));
или
connect(&ui.Button_Update, &QPushButton::clicked, this, &Chat::ConIp);
95 1424849
>>24847
Блядь. Я тупо скобки забыл
96 1424852
>>24849
Используй второй вариант коннекта, тогда тебе компилятор хоть что-то скажет, если что-то не так.
97 1424860
>>24645
Такое работает с программистами низкого левела.

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

На одном собеседе мне ответили - к сожалению, я не могу предоставить Вам такую информацию.
Ну на что я ответил - давайте позовем человека, который сможет ответить на эти вопросы, мы же рассчитываем, что я тут буду работать длительное время?
Далее при устройстве в эту контору эйчар занимался только назначением встреч.
98 1424861
>>24860
Там статья не про эйчаров...
И вообще, паттерны подучи :D
99 1424862
>>24852
спасибо
100 1424866
>>24852
connect(&MyIp, &QTcpSocket::readyRead, this,&Chat::getIp);
А тут что?
101 1424867
>>24852
Пока выбрал первый вариант. Иначе не компилится)))
102 1424868
>>24866
А компилятор что говорит?
103 1424870
>>24861
Если лид так себя ведет на собеседовании - то с ним работать будет невозможно, я дропну такое собеседование.

Из своего опыта - нормальных разработчиков найти сложновато, поэтому такой херней в нормальных конторах не занимаются.
105 1424874
>>24645
А практическая польза в чем?
106 1424876
>>24872
MyIp уже указатель, брать адрес у него не нужно.

Сигнатура такая
QObject::connect(указатель на отправителя, указатель на член класса-сигнал, указатель на приемник, укаатель на член класса-слот)

А у тебя получается первым аргументов указатель на указатель.
107 1424877
>>24874
Ну для того, кто проводит собеседование - поднять свое ЧСВ и поднасрать конторе.
108 1424878
>>24876
Спасибо большое
109 1424879
>>24876
Теперь все зеленые подчеркивание исчезли. Спасибо огромное
110 1424880
>>24877
И контор таких держат?
111 1424881
>>24880
*конторы
112 1424882
>>24879
Разберись с операторами & и * и передачей переменных в функции по значению, указателю, ссылке. Это важная тема, её следует хорошо знать, чтобы нормально двигаться дальше.
113 1424883
>>24880
Я не знаю почему, но удивительно, и не таких мудаков держат.
114 1424885
>>24882
Читал, но опыта не хватает. Надеюсь, на таких ошибках буду учиться
115 1424886
>>24885
Самый нормальный кейс.
116 1424888
Объясните пожалуйста, почему везде говорят что для функции нужен void.
Чем плоха моя запись на втором пикриле?
117 1424891
>>24888
По стандарту, всегда нужно явно декларировать возвращаемый тип. (по умолчанию в режиме совместимости с легаси, компилятор добавит туда int, а ты ничего не возвращает вообще - получается, что неопределенное поведение на пустом месте).

P.S. что за изврат с Builder 6?
118 1424896
>>24891
Яннп.

>а ты ничего не возвращает вообще


Но они возвращают max min и avg
119 1424899
>>24896
Я не понял вопроса.

Там где нужно возвращать целое знаковое - пишешь int. (void не нужно писать, уже написали что int)
Там где с плавающей точкой одинарной точности - float.
Там где ничего не возвращаешь - пиши void.

На первом скрине перед функцией sum нужен void, так как она выводит сумму и ничего не возвращает.
image.png14 Кб, 1691x50
120 1424909
>>24899

>Там где ничего не возвращаешь - пиши void.


Я так понял, в С++ нету процедур, а вместо них функция которая ничего не возвращает, т.е с воид?
121 1424911
>>24909
Да, Cи не Паскаль, C++ не Delphi.
122 1424920
>>24911
А какая разница между дельфийской процедурой и сишной void-функцией? Там наверное даже ассемблерный код один и тот же получится, если поставить одинаковое соглашение о вызовах.
Одно и то же это, вкатился в кресты с делфи и никакой разницы (если не обращать внимания на шаблоны, и новые фичи 11 стандарта) не заметил, кроме в десятки раз более удобной работы с указателями, которая в делфи даже с {$POINTERMATH on} едва работает.
123 1424923
>>24920
Я не знаю, как компилит делфийский компилятор, поэтому ничего конкретного сказать не смогу.
124 1424977
Где функцию лучше инициализировать, до main или после?
125 1424978
>>24977
До момента ее использоания
126 1424980
>>24978
Да это очевидно. Просто судя по тырнету не я один задаюсь таким вопросом.
http://www.cyberforum.ru/cpp-beginners/thread2179173.html
127 1424982
>>24980
Без разницы.
Какой-то Васян сказал, что мол правило хорошего тона, и холивар на пустом месте развели. Нужно декларации функций в отдельные заголовочные файлы выносить, а реализации в соответствующие cpp.

И функции нельзя инициализировать. Их имплементируют или реализуют.
По-русски - объявление/реализация
На английский манер - декларация/имплементация.
128 1424986
>>24977
Мне кажется, прототипы не зря придумали, так что лучше после main. А вообще в других файлах обычно хранят если проект более-менее большой.
image.png108 Кб, 1909x746
129 1424998
Что я не так делаю?
130 1424999
>>24998
Как минимум то, что counter не инициализирован нулем.
132 1425001
>>25000
У тебя сначала counter выводится, а пототм увеличивается. Почитай про постфиксный инкремент. Что бы проще было можешь писать counter=counter+1
133 1425002
>>25000
Что за [*] в имени файла? Ты точно его сохранил перед новой сборкой?
134 1425004
>>25001
Неа, внимательно смотри функцию
135 1425005
>>24289
К вьюшке то есть QTableView? У меня там QTableWidget, можешь набросать как это сделать?
>>24323
Братан, у меня QT 4.8, какой новый синтаксис?
136 1425009
пацаны помогите предлагают работу на c/c++ , я очень молод, глуп и опыта нет, им понравилось мое тестовое, страшно что проебусь и нихера не смогу как подготовиться?
image.png118 Кб, 1903x836
137 1425012
Меня трясет от этого компилятора.
Я не помню чтобы его раньше приходилось каждый раз сохранять. Ну или я уже крышей еду.
138 1425013
>>25012
Все же исправил counter++))))
139 1425014
>>25013
А чем это отличается от его записи?
image.png29 Кб, 932x205
140 1425015
>>25013
Да, но он и с ним работает.
141 1425020
>>25009
Что за тестовое? Что надо было сделать?
142 1425026
>>25020
да сделать классы простые с гет сет констр дестр, стек дек, ничего особенного, даже изи
143 1425030
>>25026
Хм, хм.

На самописные реализации дека и стека я бы глянул.
А вообще рили странное тестовое. Проверяли теоретические навыки, а не практические.

Стек сделан на основе дека? С алгоритмами стандартными твои контейнеры работают?
144 1425031
>>25009
С такими запросами обычно рабов покупают, вангую продадут тебя как синьора и будешь хуярить за пятерых за 100гривень, а если захочешь съебаться - минус зп.

шучу, смотри сам, хули. Если платят крохи - ну их нахуй. Если занимаются хуйнёй - ну их нахуй. Если хоть немного подозрительные - ну их нахуй
image.png83 Кб, 1434x690
145 1425038
Как разграничить строки?
cout<<endl не помогает. Ну или я его ставил не туда.
146 1425040
>>25038
\n. Ты же его до этого использовал
147 1425043
>>25030
Да, да. >>25031
Страшно-то как, я ваще нигде не работал, в последнее время на js писал сайтики. 30к предлагают, подозрительно немного да, может найти никого не могут, город небольшой
148 1425044
>>25040
Я использовал. И изменения сохранял, только он выполнял игнорируя их. Перезапустил dev и заработали.
149 1425049
>>25043

> на js писал сайтики


У тебя необратимые повреждения мозга.
изображение.png116 Кб, 1366x768
150 1425053
При выполнении этой строчки выбрасывается исключение.
ui.plainTextEdit->appendPlainText(QString(pReply->readAll()) )
151 1425072
Что будет если написать
ClassName pointer
Вместо ClassName
pointer=new ClassName?
152 1425084
>>25072
Аллоцируется на стеке и вызовет конструктор по умолчанию.
153 1425095
>>25053
билли, я не чувствую выделенной памяти, билли
154 1425100
>>25095
Может это потому. что я написал QNetworkReply pReply;
Вместо QNetworkReply
pReply=new QNetworkReply;
А написал я так потому, что в первом случае он хотя-бы компилируется.
изображение.png93 Кб, 1366x768
155 1425101
>>25100
Во втором случае девяток ошибок
156 1425102
>>25101
*шестяток
157 1425106
>>25101
Я вообще не понимаю какого хуя он ругается на доступ к закрытому члену. Я объект создаю
158 1425109
>>25084
Ты не прав, если учитывать просранные скобки.
159 1425118
>>25106
Долбоёб?

> cannot instantiate abstract class

160 1425121
>>25118
3 строчка сверху
161 1425125
>>25121
Долбоёб? Никто не хочет, чтобы ты мог создать объект именно этого класса.
162 1425127
>>25125
Что тогда? Я хочу принять html страницу
163 1425128
>>25127
Менеджер где твой? Подключись к нему
164 1425132
>>25128
Каким методом текст вывести?
165 1425142
>>24986
Ага, конечно, прототипы придумали только чтобы реализацию функций писать после main, держи карман шире.
Какие-то поехавшие ублюдки иэ пишут код таким образом, что функция А зовёт функцию Б(через цепочку функций, например) и наоборот. Нахуй они нужны, главное - main в самом начале файла.
166 1425145
>>25053
QScopedPointer не создает объект, он хранит его лишь.
Объект создавать нужно самому. Два варината, либо передать объект в конструктор

QScopedPointer ptr(new Object);

Либо вызвать сброс

QScopedPointer ptr;
ptr.restet(new QObject);

Во втором случае, объект, который уже хранил указатель, будет удален.

Вторая проблема.
Не ленимся и заходим сюда:
https://doc.qt.io/qt-5/qnetworkreply.html

Видем в секции protected у объекта есть как минимум
virtual void abort() = 0

Это значит, что класс абстрактный, так как у него есть чистая виртуальная функция.
Что это значит? А это значит, что следуя стандарту, компилятор обломит тебя при попытке создания чисто-абстрактного класса.

Что делать?
1. Унаследоваться от этого класса и реализовать эти виртуальные функции, но это тут нам не нужно.
2. За нас уже реализовали конкретные подклассы, нам нужно работать с ними только через QNetworkAccessManager.

Третье.
В твоем случае нужно работать в таком стиле

Где-то на стеке есть scoped poiter и manager.

QScopedPointer reply;
reply.reset(manager->post(...));
...
//Далее работаем уже с reply.
...

После выхода из функции reply автоматом удалиться.
166 1425145
>>25053
QScopedPointer не создает объект, он хранит его лишь.
Объект создавать нужно самому. Два варината, либо передать объект в конструктор

QScopedPointer ptr(new Object);

Либо вызвать сброс

QScopedPointer ptr;
ptr.restet(new QObject);

Во втором случае, объект, который уже хранил указатель, будет удален.

Вторая проблема.
Не ленимся и заходим сюда:
https://doc.qt.io/qt-5/qnetworkreply.html

Видем в секции protected у объекта есть как минимум
virtual void abort() = 0

Это значит, что класс абстрактный, так как у него есть чистая виртуальная функция.
Что это значит? А это значит, что следуя стандарту, компилятор обломит тебя при попытке создания чисто-абстрактного класса.

Что делать?
1. Унаследоваться от этого класса и реализовать эти виртуальные функции, но это тут нам не нужно.
2. За нас уже реализовали конкретные подклассы, нам нужно работать с ними только через QNetworkAccessManager.

Третье.
В твоем случае нужно работать в таком стиле

Где-то на стеке есть scoped poiter и manager.

QScopedPointer reply;
reply.reset(manager->post(...));
...
//Далее работаем уже с reply.
...

После выхода из функции reply автоматом удалиться.
167 1425150
>>25145
Только корректнее говорить - чисто-абстрактные методы класса.
fix
168 1425152
>>25142
Эти долбаебы, что придумали декомпозицию и SOLID?
Поди и не слышал.
169 1425162
>>25145
И да, поправочка, объект ScopedPointer не хранит, а хранит он указатель на объект.
170 1425163
PRAYER IN C++
171 1425175
Привет. Я НОВЕНЬКИЙ. Хочу вкатиться в программирование, выбрал С++ так как на нём можно писать под Анрил Энжин.
Есть маленький опыт писать скрипты на Баше для xdotool и на... AHK под AHK, чтобы автоматизировать некоторые вещи на Линупсе или Шиндовсе. Ну, там, иф элсы, циклы, свитчи - вот это всё.
Помню когда-то трогал руками Visual Studio Code, очень понравилась идея всего в одном бесплатно под все платформы, но углубленного понимания нету. Можно просто скачать С++ вещи для VSCode и программировать там не разочаровавшись, или мне лучше идти воровать Вижуал Студио или среду от какого-нибудь Джет Брейнс?

Приношу в жертву треду рандомную хуйню, что валялась на рабочем столе.
172 1425177
>>25175
Плес, униси говно от сюда, которое притащил.
173 1425178
>>25175
Полноценная вижуал студия бесплатна для домашнего использования. И да - именно ее и качай.
D.png690 Кб, 1500x1500
174 1425181
175 1425195
>>25005

>QT 4.8


Ты серьезно? Нахуя?
176 1425198
>>25178
А чего тогда люди ебутся с qt вон в треде выше?
177 1425199
>>25198
Где? В чем дрочь?
мимо другой
178 1425202
>>25195
На работе стоит. Переставить не вариант.
179 1425205
>>25195
Пахнуло МСВС.
180 1425206
>>25198
В твоем высказывании потерена логика.

Qt - фреймворк.
Студия - интегрированная среда разработки.

Как это связано?
181 1425210
>>25206
Ну он позволяет делать то же, что и студия, верно? Ну кроме кросс-платформенности.
182 1425212
>>25210
Долбоёб...
183 1425214
>>25210
Друг, ты вообще походу ничего не понимаешь.

Есть разные IDE, например - Microsoft Visual Studio, Qt Creator, CLion..
Есть фреймворки - MFC, Qt, GTK+.
Есть компиляторы - Microsoft Visual Compiler, MinGW, gcc, clag.

Тут вот что, всё что микрософтовское под Linux вообще не годиться.
Студия - только под винду, MFC - обертка под WinAPI, и компилятор только под винду.

Всё остальное имеет либо порты под платформы либо вообще и является портом, как MinGW есть порт GCC под винду.

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

Но API шинды нихуя не по стандарту, поэтому есть ебля, но к твоему счастью, практически все фреймворки имеют адаптацию под винду.

Просто не используй чисто виндовый стек - типа MFC.

А в каком редакторе ты код пишешь (студия или креейтор) - вообще похуй, хоть в блокноте. На переносимость никак не влияет.
184 1425216
>>25214
И C++ под NET тоже не используй. И XAML. Это практически не переносимо на винду.

Boost тоже кроссплатформенный.

Можешь использовать фреймворки - GTK, Qt, Tk и вообще чо хочешь из прыщей. Там практически все переносимо на винду.
185 1425218
>>25216
не переносимо из винды*
186 1425219
>>25214
И Qt Creator написан на Qt и поставляется с ним часто, но это "продвинутый блокнот". На нем можно что хочешь писать, хоть шейдера, хоть питонячьи скрипты.
Также под студией можешь использовать Qt, как анон выше.

Т.е. Qt Creator != Qt != gcc
Visual Studio != .NET != Visual C++ Compiler.
187 1425222
>>25214
>>25219
Спасибо за подробное пояснение.
188 1425228
Раз вы тут это, какие у CodeBlocks минусы камни. Искал ide на древнючего пеку, взял первое что заработало, правильно сделал?
189 1425237
>>25228
Кроме вижуал студии IDE не существует. Все остальное - субпродукты
190 1425241
>>25237
Слишком толсто
191 1425243
>>25175
Возьми qtcreator, там установочник на 100 мб, бесплатный, можно загрузить сразу с компилятором, чтобы не возится с настройкой. Я пробовал вкатываться со студии и дропал два раза, хотя с++ уже понимал (это где-то четвёртый язык, который я приступал изучать) и мог на нём более-менее свободно писать. То есть просто из-за студии не мог вкатится в язык. Это субъективное мнение, но хуже студии просто нет, я лучше в блокноте без подсветки синтаксиса буду писать и собирать через батники руками. Может быть сейчас не актуально уже, это происходило в 2013-2014 примерно. Если хочется воровать - укради cLion, он ничего.
192 1425244
>>25243

> это где-то четвёртый язык, который я приступал изучать


Твое мнение не очень актуально для чего-либо, связанного с разработкой
193 1425245
>>25244
Не понял. Он же тоже собирается изучать, зачем ему это чудовище?
194 1425246
>>25245
Если ты настолько тупой, что не можешь освоить кнопочку с зеленым треугольничком, и контекстное меню добавления нового файла в проект - я не знаю, что тебе еще сказать.
195 1425247
>>25246
Второй раз я дропнул её из-за того, что мой примитивный код для каких-то рассчётов в консольке на 157 строк с тремя функциями компилировлся около семи минут после каждой правки, и это была уже вторая программа, которая урылась подобным образом. А не из-за проблем с треугольниками.
196 1425251
>>25247
Это очень интересно, учитывая, что я сейчас скомпилировал буст в 2х конфигурациях (дебаг и релиз) через VCPKG с нуля. и это заняло 12 минут 54 секунды. В той самой вижуал студии.
197 1425252
>>25228
Кодблокс хорош, хоть автодополнение тупит на трехэтажных шаблонах и большие проекты не вывозит.
Алсо для написания lab2.cpp крайне полезная фича – дебаг с run-to-cursor одной кнопкой. Во всех других иде надо, блять, сначала брейкпоинт руками поставить.
(в дебаггере, правда, уже которое десятилетие не могут сделать нормальное отображение stl-контейнеров, но можно со страшными изъебствами прикрутить pretty-printers)
198 1425300
Корутины будут в 20 стандарте? Или самому лучше костылить? Алсо, накидайте материала по данной теме.
199 1425315
Что за долбоёб срёт на хабре своими зелеными высерами? Завязывай.
200 1425327
>>25315
И что ты мне сделаешь, а?
201 1425339
Читаю Липпмана и дошел до decltype. И я не понимаю как это работает. Почему например decltype(*p) возвращает int&?
Алсо, я не понял, зачем нужно auto, разве не проще самому тип определить?
202 1425346
>>25315
Кидай ссылки, посмеемся вместе.
203 1425348
>>25339
std::map<int, std::vector<std::pair<double, double>>>::value_type::const_iterator it;
Вычисляй, хули.
204 1425390
>>25247
>>25251
А чего так долго? Это норма или вы без ссд?
205 1425392
>>25348
Ну дабл.
206 1425395
>>25392
Какой нахуй дабл блять...
207 1425419
>>25395
Человек не понимает, что auto - это вывод типа, просто чтобы человеку не писать то, что уже известно компилятору. Не триггерись так.
208 1425440
Я в отчаянии. Сколько уже не могу написать простую программу.
QNetworkReply не генерирует ни сигнал error (хтя тут я мог неправильно написать коннект), ни readyRead, ни finished

connect(ui.Button_Update, &QPushButton::clicked, this, &Chat::ConIp);
connect(pReply, &QNetworkReply::finished, this, &Chat::getIp);
connect(pReply, &QNetworkReply::readyRead, this, &Chat::getIp);
connect(pReply,
QOverload<QNetworkReply::NetworkError>::of(&QNetworkReply::error),[=](QNetworkReply::NetworkError code) {
ui.plainTextEdit->appendPlainText("Error");
ui.plainTextEdit->appendPlainText(pReply->errorString());
});
209 1425443
>>25440
Еще такая строчка есть
pReply=MyIp->get(QNetworkRequest(QUrl("https://yandex.ru")));
936544large.jpg71 Кб, 600x600
210 1425543
Посоны, поясните за overflow. Раскуриваю трай катч, а он сука не ловит переполнение целых. Даже в широкие сети catch (...) нихуя не попадается. Или мне надо какой то хитровыебанный ключ в GCC подключить чтобы это мудло отслеживало флаги процессора?
211 1425544
>>25175
GCC + Vim + раскурить немношк Cmake.
На хуй эти комбайны ебаные, больше времени потратишь на то чтобы разобраться как эта ёбань работает, вместо самого языка.
212 1425558
>>25543
это максимум UB знаковых, не отловишь
213 1425575
>>25543
Так там же исключение не вызывается при переполнении.
Покури <climits>, мб там будет что-то подходящее для тебя.
214 1425579
>>25300
Корутины сами будут, а вот обвязку писать. Но на гитхабе я минимум 3 либы уже видел.

>>25544
Это самый худший совет, который существует.
image.png36 Кб, 887x433
215 1425599
Где я опять ошибся?
216 1425601
>>25599
comp=arayaray
Че это?
Может comp=comp
aray;
А до этого comp=1
217 1425602
>>25599
В строчке
comp=array*array
218 1425603
>>25599
Там где считаешь comp ты считаешь квадрат последнего (инициализированого) елемента в массиве.
219 1425608
>>25599
Так тебе произведение нужно или сумма?
220 1425611
>>25608
Произведение элементов.
221 1425616
https://blog.codinghorror.com/separating-programming-sheep-from-non-programming-goats/
Для программирования нужен определенный (врожденный) тип мышления или это просто приобретаемый обычным человеком навык как забивание гвоздей?
222 1425618
>>25611
те ты хочешь умножить каждый элемент массива на следующий?
в твоем пример 3х6х7?
Почему тебя тогда comp=arrayжвездочкаarray?
223 1425622
>>25616
Навык декомпозиции нужен.
image.png65 Кб, 1117x631
224 1425623
>>25618
Потому что по другому он мне 0 выдает, вот я и начал перебирать хуету.
225 1425624
>>25623
Программирование не твое, вот прям совсем. Ну или питон попробуй.
226 1425625
>>25623
comp единицей проинициализируй сначала.
227 1425627
>>25625
Я все время забываю что он с 0 считает.
228 1425664
>>25623
int comp = 1;
for (int i = 0; i < size; ++i)
{
array = 1 + rand() % 10;
comp *= array;
}

надеюсь, понятно.
229 1425665
>>25664

>int comp = 1;


>for (int i = 0; i < size; ++i)


>{


>array = 1 + rand() % 10;


>comp = array;


>}


>


int comp = 1;
for (int i = 0; i < size; ++i)
{
array = 1 + rand() % 10;
comp
= array;
}

сук, поторопился. вот
230 1425669
>>25665
короч, там где array пиши индексацию по i
тут видимо проглатывается она
231 1425670
>>25558
>>25575
Ну я короче порылся в теме поглубже. Суть в том что далеко не всякий машинный код работающий с целыми и далеко не на каждой машине поднимает флаг переполнения. Так что в стандарте эта хуйня закономерно послана на хуй.
Я прост думал может подобные вещи реализованы как нибудь красиво, платформонезависимо, ИЗКАРОПКИ, ан нет. Опять велосипеды городить и курить даташиты.
232 1425677
>>25664
Да я уже понял. Ошибка была в том, что я comp не инициализировал с 1 и он на ноль умножал.
233 1425685
>>25543
Кстати, забудь про этот java-style. Стандартный C++ (за очень редкими исключениями) вообще не бросает исключений. 99% сомнительных операций тупо вызывают UB.
234 1425694
>>25664
>>25665
>>25665
>>25623
int comp;
for (int i = 0, comp = 1; i < size ; comp:*= array[i++] = 1 +rand()%%%10; );
вот как ннада. В одну строку ебатБ!
235 1425715
Почему аноны не заставляют новичков пользоваться Range-based for loop?
Предлагаю двачерам познакомить своих преподов с стандартом 11-го года

https://en.wikipedia.org/wiki/C++11#Range-based_for_loop
236 1425725
>>25715
range-based опирается на итераторы.
новички не могут нормально в обычную индексацию
про итераторы и говорить нечего
поэтому нефиг заставлять, т.к. понимания пока нет.
237 1425728
>>25725
Иди нахуй.
239 1425731
>>25728

во, петухи в треде
241 1425781
>>25205
А она же уже старая, все давно под астра линукс пишут, в астра 1.6 se завезли qt 5.10.1
242 1425782
>>25202
меняй работу, там у вас еще небось проходная с анальными досмотрами, рабочий день от звонка до звонка, совковая мебель, старики начальство, загран паспорт нужно сдавать, а денег плотят 50 тыщ. Беги, она тебя сожрет!
243 1425818
>>25781
Не у всех тащемта есть возможность перехода на Астру 1.6.
Хотя спасибо РусБитТех за хоть это.
244 1425831
>>25782
И тут я вспомнил РАДАР ММС, его холодную бездушную проходную, исполинский силуэт Су-27 перед входом, тесные набитые обшарпанные лаборатории. Говорят, приморский район один из лучших мест города для проживания, но только не окрестности этого адского места. Я вспоминаю: Орловский карьер, хмурый поникший Новоорловский заказник, безлюдный железнодорожный переезд и мрачное и неприветливое здание Радара. Вспоминаю, как в темных комнатах этого здания, буквально до изнеможения и в поте лица, буквально с болью и страданием извергают из себя строки кода безликие программисты, погребенные в хаос менеджмента ГосОборонЗаказа. Бедные, бедные и обреченные, когда то подписавшие по своей юношеской наивности вторую форму, а теперь и без всякой надежды на побег, эти люди пытаются перековать сломленный меч империи.
245 1425892
Че за хуйня?
Есть такое
connect(ui.Button_Update, SIGNAL(clicked()), this, SLOT(GetIp()) );
connect(manager, &QNetworkAccessManager::finished,this, &Chat::replyFinished);

И такое
void Chat::GetIp() {
response = manager->get(QNetworkRequest(QUrl("https://yandex.ru/internet")));
ui.plainTextEdit->appendPlainText("Connecting");
}

void Chat::replyFinished() {
ui.plainTextEdit->appendPlainText("Data recieved");
ui.plainTextEdit->appendPlainText(response->readAll());
ui.plainTextEdit->appendPlainText("Data couted");
}

Когда нажимаю кнопку в первый раз то выводятся Connecting, Data recieved и Data couted меньше чем за секунду, а у меня браузер намного дольше грузит страницу. Во второй раз вообще только Connecting
246 1425893
>>25892
И еще между Data recieved и couted пустая строка
248 1425918
Может не совсем вопрос по плюсам, не хочу создавать лишний тред. Значит ли что-то типовое сумма четырех байт, где каждый последующий байт сдвигается на +8 бит влево.

https://pastebin.com/qRidKfcD

Чувствую что это может какая-то идиома байтоебства, типа представление числа в big endianness или чем-то таком, но не уверен.

Наткнулся на это при попытке разобтаться как работает парсер реликовских текстур(dawn of war).
249 1425924
Куда нынче перекатываются с крестов, чтобы не умереть с голода?
250 1425936
251 1425948
>>25936
CUDAH?
252 1425995
>>25918
Это 32 битное число в little endian, но обычно такой хуйней надо страдать как раз на небайтоебских языках. С си/крестах ты просто делаешь юнион из массива и числа.
253 1425996
Или вообще берешь адрес начала массива и разименовываешь как число.
254 1426051
>>25995

>С си/крестах ты просто делаешь юнион из массива и числа.


И получаешь UB при попытке читать из неактивного члена union-а
>>25996

> Или вообще берешь адрес начала массива и разименовываешь как число.


UB
255 1426064
>>25175
Визуал Студио Коде мне лично очень нравится, я бы его и рекомендовал.
256 1426079
>>26064
Говно.
Если нужно немного покодить - лучше всего CodeBlocks. Если при этом хочешь гуй запилить, то лучше наверное qtcreator.
Если что-то серьёзное - на работе у тебя один хуй будет студия.
Если некуда деть деньги - CLion.
VSCode оставь для вебмакак и для самописных языков.
257 1426157
>>25924
Java?
258 1426255
>>26079

>CodeBlocks


Гуй может делать только для wxWidgets, да и хуй знает как.

>qtcreator


Тормознутое говно с никакой совместимостью. Но удобное, даже удобнее, чем C::B для отладки. Само Qt - тоже говно.

>VSCode


Тормознутое говно и вообще не нужно.
Нормальных IDE нет. Visual Studio 6.0 ещё более-менее, но малофункционально и поделка дядеБилла, который не нужен.
259 1426262
>>25924
Куда угодно (кроме Си). Другое дело, что почти никуда не берут. В других языках совсем другие предметные области, процессы и подходы к разработке. То есть нельзя например сразу вкатиться в Скалу, Котлин, JS и другие высокооплачиваемые языки. Придется ломать себя, учиться с нуля и вкатываться с нуля.
260 1426264
>>25175
Vim\emacs + gcc+\clang + cmake.
И усе, ide тебе не надо, это петушиная хрень для школьников-вкатывальщиков.
261 1426273
>>25924

>чтобы не умереть с голода


Да ты охуел. Нормально же платят.
Или мне повезло
262 1426275
>>26157
Ни тебе структур, ни unsigned, ни main()...
sage 263 1426282
>>26262
Что-то ты пиздишь. Я после С++ на любом языке что угодно могу написать. Ни разу не открывал учебник по C#, жаве, питону, но если надо что-то написать на этом говне, то беру и пишу без задней мысли и какого либо напряга.
264 1426283
>>26264
Для программки в сотню-две строк - годится. А отлаживать как? В один-два клика как переименовать переменную во всём коде, посмотреть описание дефайна, найти все вызовы функции?
265 1426284
>>25924
Так ты не формочки клепай в QT, а нормально С++ используй, тогда и деньги платить будут.
266 1426286
>>26284

>ты не формочки клепай в QT


>тогда и деньги платить будут


Да ты охуел.
>>26273-хуй
267 1426299
>>26286
Ну платят тебе 70-80к. Это деньги разве?
268 1426302
>>26299

>70-80к


Умножь на два.
269 1426303
270 1426305
>>26302
Ты точно только формочки клепаешь? Если да, то реально повезло.
271 1426309
>>26305

>Ты точно только формочки клепаешь?


Формочка - только обёртка для кода, который делает ЦОС.
272 1426311
Прочитал "тур по цпп", как можно потренить использование фич из с++11?
273 1426397
>>26264
в комменте отлично перечислена петушиная хрень для школьников, которые думают что они умные.

Мимо-сениор-с-2019-студией
274 1426399
>>26311
берешь @ пишешь
275 1426401
>>26397

>Мимо-пиздабол-вкачтик-вайти-с-2019-студией


Понял, принял.
276 1426404
>>26399
Универсальный ответ. Можно бота сделать, который будет на каждую просьбу о помощи так отвечать
277 1426406
https://ideone.com/mUJr13
Нахуя gcc инстанцирует неиспользуемый шаблон? В msvc работает нормально.
278 1426430
>>26401
считай как хочешь, манюня. Пока ты пердолькаешься в соснольке - нормальные люди продукты делают.
279 1426438
>>26404

>Можно бота сделать


Берёшь @ делаешь
sage 280 1426446
>>26303
Все команды уже выучил, красноглазый?
281 1426452
>>26446
tui enable, s/si, n/ni, c, show фигня, p фигня, b, info b, delete номер
Вроде всё, не?
Не пользовался чистым gdb года 2-кун
282 1426459
Насколько устарела книга липмана с++11?
283 1426463
>>26079

>на работе у тебя один хуй будет студия.


Но у меня на работе VSCode, лул.
284 1426464
>>26463
КЕМ РАБОТАЕШЬ?
@
@
@
@
ФРИЛАНСЕР
285 1426466
>>26464
Да не, рабвеслоер.
286 1426473
Могу ли я написать программу, которая сможет мне в играх деньги прибавлять? Ос же запрещает доступ к чужой памяти
287 1426476
>>26473

> Ос же запрещает


Какая? Гугли artmoney
288 1426480
>>26476
Почему то захотелось самому. Не смогу же я взять и прочитать кусок памяти по нужному мне адресу, а потом и редактировать
289 1426481
>>26480
Да сможешь, почему нет?
290 1426483
>>26480
Зависит от системы. Если у тебя операционная система виндоуз(tm) то
https://docs.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-readprocessmemory
https://docs.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-writeprocessmemory
Также можно внедрятся в процесы, там разного рода инжекты длл да просто банально по типу вирусняка немного подправить код программы чтобы запустить какой-то свой обработчик.
292 1426486
>>26484
Это в идеале, а на практике артмани.
293 1426489
>>26483
Нихуя. А зачем они так сделали? Могу ли я обеслпасить свою программу, что бы ее не прочитали?
294 1426491
>>26486
Он далеко не всегда работает
295 1426493
>>26491
Ну работает же иногда.
296 1426494
>>26406
потому что msvc - кривая поделка

сначала инстанцируется базовый шаблон
потом при вызове функции просматривается базовый шаблон и его перегрузки.
далее вызывается нужный код.
297 1426497
>>26489
Если ты не контролируешь устройство на которым выполняется твоя программы то ты в принципе не можешь никак обезопасить свою программу, даже независимо от системы. Можно применять шифрование, разного рода постоянно меняющийся полиморфный код, но если у твоя программа работает в offline режиме (тоесть она не требует постоянного подключения к контрноллируемым тобой серверам) то любое щифрование буде тпредставлять собой security through obscurity - тоесть будет бесполезным против достаточно целеустремленного злоумышленика. Но может помогать против школяров.
298 1426501
>>26497
Охуеть. Я прям удивлен. Спасибо
299 1426502
>>26497
Обфускация, всякие пакеры будь здоров так проблем создадут.
sage 300 1426505
>>26463
Друг мой, советую подыскивать новую галеру...
301 1426507
>>26505
Но почему? Нормально же всё.
302 1426508
Думаю вкатиться в низкоуровневое программирование. Чет я заебался, когда пишешь как по мануалу, а оно не работает. Компилится, но не работает. А я не могу ничего сделать: не я же писал. Сложно ли?
303 1426519
>>26508

>низкоуровневое программирование


Си тред два треда вниз.
304 1426522
>>26282
Одно дело писать код, другое дело разрабатывать продукт. На перечисленных мною языках делают софт совершенно непохожий на тот, что пишут на крестах.
305 1426536
>>26494
Подозреваю, что static_assert сработал еще до того, как функция начала инстанцироваться, т.к. в нем нет имен, зависимых от параметров шаблона. Если заменим false, скажем, на sizeof(T) < 0, то все нормально скомпилится
306 1426548
>>25782
Менять на что? Я же студент без опыта, куда меня возьмут. Платят больше чем предлагали в других местах, так что мне норм. Конечно куда меньше 50к, но, как говорил выше, в остальных местах в моем городе в этом плане похуже для программиста без опыта. Тобой перечисленные недостатки отсутствуют. Удобное кресло, 2 монитора, так что рабочее место тоже весьма приличное.
307 1426644
>>26548
Формошлепство на крестах на заводе тебе конечно многое даст
Sage 308 1426685
Прикиньте отвечать на вопросы вкатывальщиков
309 1426689
>>25831

>И тут я вспомнил РАДАР ММС


Годная паста, схоронил.
Вместо РАДАР ММС можно подставить, к примеру, импульс, или созвездие, или римр, или титан, или элерон, или градиент или любую другую госпарашу, короче олдскульные места с анальным контролем присутствия, невозможностью в удобное тебе время приходить и уходить, хуевыми условиями, кофе, фрукты и сладости покупать самому, как и воду, самому её носить, ибо пропускной режим. Шкварить резюме такими работами лучше не стоит.
310 1426692
>>26548
Менять на скрам с эджайлом. На нормальное место с профессионалами, которые тебя научат. Где делают продукт, который нужен людям, а не нерабочее говно, которое один хуй примут, ибо задача попилить деньги государства.
311 1426695
>>26685
Зачем тред тогда?
312 1426718
Аноны, подскажите по Qt пожалуйста.

Суть проблемы: имеется виджет с кучей комбобоксов и в зависимости от кликнутых флагов происходит различная генерация. Я эти флаги помещаю в булевую структуру и передаю в класс обработчик, который занимается генерацией. Как итог в этом классе в некоторых методах выходит длинная ебала из if-else. Есть ли какие-либо более адекватные варианты?
sage 313 1426725
>>26718
Как вариант, можно сделать список функций, но это шило на мыло
314 1426745
Изучаю многопоточность. Решил набросать симуляцию производителя-потребителя при помощи стандартных условных переменных: https://ideone.com/NWbGaf

На моей системе и в ideone события тупо чередуются, то есть сначала производитель полностью забивает буфер, а затем потребитель полностью его опустошает. Я ожидал, что будет конкуренция и нельзя будет точно предсказать, какое действие совершится следующим. Я ошибся в реализации или это скедулер так работает?
315 1426761
>>26745
std::thread::
D E T A C H
E
T
A
C
H
бтв это я такой способ нарыл только, мб есть адекватный правильный способ.
316 1426765
>>26761
Только при использовании этого метода нужно будет в main придумать ожидание завершения работы потоков, иначе прога завершит свою работу сразу же.
Я принимал из бд объекты и отпускал их детачем на обработку, сохранение и запись на диск, по окончании приема ждал момента в бесконечном цикле со сном на пару секунд, когда в векторе будет столько же объектов, сколько принял из бд.
317 1426767
>>26745
Поставь слип перед захватом лока. Тред походу освобождает лок, СРАЗУ забирает обратно и где-то при выводе в консоль заканчивается его квант времени.

Насчёт линупсов и бсдей не знаю, но у винды, кажется начиная с висты, замки не "честные". То есть управление не обязательно передаётся следующему ожидающему треду.
318 1426769
>>26761
Detach не должен давать никакого профита. Джоины дают тредам выполняться параллельно и бесконечно (второй джоин вроде даже не нужен).
319 1426773
>>26769
Ну я просто где-то находил инфу, что join ждёт завершения потока и только потом прога продолжает работу - собственно, так и было, когда я игрался с потоками.
Но, может, я неправильно прочёл/понял.
320 1426775
>>26773
Все правильно, но это не значит, что другие потоки не будут выполняться параллельно.
322 1426777
>>26767
Теперь они чередуются каждую итерацию. Интересно.
323 1426780
>>26776
Круто. Короче, это все особенности скедулера. Видимо, если ирл похожую задачу придется решать, будет иметь смысл выносить produce/consume за пределы лока, то есть где у тебя стоит sleep. В примере, конечно, не получится из-за cout.
source.png53 Кб, 1250x475
324 1426781
>>26777
Сделай рандомный слип. Тогда в среднем будут чередоваться, но иногда будут проскакивать несколько продьюсов.
325 1426782
>>26775
Значит, я не разобрался и намутил хуйни. Спасибо, почитаю ещё, чтобы понимать нормально.
326 1426799
>>26406

> Нахуя gcc инстанцирует неиспользуемый шаблон?


Стандартом не запрещено

> В msvc работает нормально.


"ill-formed, no diagnostic required" -> undefined behavior при запуске программы
"undefined behavior" это не "работает нормально".

https://stackoverflow.com/a/14637534/9585016
327 1426801
>>26494

>потому что msvc - кривая поделка


В стандарте сказано "no diagnostic is required", так что MSVC имеет полное право не детектить кривость этого кода.
328 1426802
>>26799

>> Нахуя gcc инстанцирует неиспользуемый шаблон?


>Стандартом не запрещено


Т.е. он, конечно, не инстанциирует. Не запрещено не принимать такой код к трансляции.
329 1426806
>>26536

>Если заменим false, скажем, на sizeof(T) < 0, то все нормально скомпилится


...и код всё равно будет ill-formed (no diagnostic required), а значит при запуске будет UB.
330 1426857
>>26446
Фига маня порвалась с сажей.
331 1426950
В книге сказано, что size имеет тип size_type, а в clion тип указан как int. Кому верить? и я честно сказать так и не понял отличий
332 1426952
>>26950
size_type это тайпдеф
На твоём 32-битном калькуляторе он является элиасом для int
333 1426955
>>26781
Зачем вы треды с мьютексами используете в 2019 году?
334 1426962
>>26955
Чтобы научиться. Это не прилизанный пример с использованием best practices для озеленения гитхаба, а челлендж для себя. Будет здорово, если ты покажешь как сделать данную симуляцию без тредов и мьютексов.
335 1427198
>>26955
CAS и wait-free наше всё?
336 1427282
Что означает запись
int ((зв)pp)[10]
? Написано что это указатель на массив из 10 символом, но как это работает? И почему нельзя например присвоить значение вот так
(зв)p = 42?
337 1427309
>>27282
такой хуйней занимаются, когда хотят в функцию передать двумерный массив а про std::array/std::vector не слыхали
sage 338 1427332
>>27309
Сейчас бы хранить данные не последовательно...
339 1427338
>>27309
Векторы ваши хуйня для зумерков.
340 1427364
Как сделать указатель на произвольный участок памяти?
342 1427399
>>27364
void*
343 1427402
>>27399
Я имею ввиду, как сделать так, чтобы указатель указывал на нужный мне адрес?
344 1427407
>>27402
А какой адрес для тебя нужный?
345 1427408
>>27407
Какой захочу
346 1427411
>>27408
Блин. Тупанул. Все решается p=(int~звездочка~)XXX;
На местн XXX любое число. А в инете че то со строками шаманят
347 1427430
>>27411
Все же в голове не укладывается. Майкрософт САМИ дали мне библиотеку, для чтения и редактирования памяти других процессов. И как я понял без всяких разрешений.
348 1427458
>>27430
Эээ, это вообще возможно, если ты админ в системе, но ты бы почитал https://ru.wikipedia.org/wiki/Блок_управления_памятью
349 1427474
Кьютешники на месте? В каком виде хранятся пиксели в QPixelmap? Сколько бит занимают? Почему то в справочнике не нашел инфы об этом, да и в дебаге это не посмотреть
350 1427477
>>26777
mylock.lock()
std::cout << "блаблабла" << "\n";
mylock.unlock()
351 1427480
>>27474

>QPixelmap


>Почему то в справочнике не нашел инфы об этом


Note that the pixel data in a pixmap is internal and is managed by the underlying window system. Because QPixmap is a QPaintDevice subclass, QPainter can be used to draw directly onto pixmaps. Pixels can only be accessed through QPainter functions or by converting the QPixmap to a QImage. However, the fill() function is available for initializing the entire pixmap with a given color.

Действительно, почему.
352 1427488
>>27480
Не понел. Я могу изменить битность пиксельмапа или он сам что хочет то и делает?
353 1427496
>>26806
Почему? Где-то что-то в стандарте есть на это?
354 1427502
>>27488
Qt - кроссплатформенный фреймворк и твой код может потенциально выполняться на AlienOS с пятицветными мониторами с 7.5 бит на цвет. Ты не должен полагаться на внутреннее представление этого класса. Если что-то нужно, конвертируй в QImage
355 1427514
>>27332
и ты про std::array не слыхал?
Screenshot20190704-003958.jpg267 Кб, 720x1280
356 1427515
Ты из будущего? Посмотрите на мои часы , которые точнее некуда, и даиу последнего поста
357 1427521
>>27496
Я же дал ссылку на SO, где цитируют [temp.res]/8
358 1427536
Нужно на иксах организовать скриншот.
Сначала брал GetImage из Xlib/XCB, но на оф. сайте советуют обходить эту функцию стороной и в целом сложно работать с одномерным вектором сырых ргба, хоть мне это скорее и нужно, ибо единственный пиксель, который мог сам опредедить - первый.
В целом использую system(scrot), но хотел так как безногий вариант, то хотел в исходники скрота залезть, но там Торвальдс ногу сломит.

Можете что посоветовать?
sage 359 1427546
>>27382
>>27514
Блядь. Я про сверхразумов, что пишут T[][] или ещё хуже std::vector<std::vector<T>>
360 1427548
Чет я туплю, анончики. Как присвоить одному указателю значение другого? Не адрес.
361 1427549
>>27548
Блядь. Так нельзя.
362 1427550
>>27548
p1 = p2
363 1427551
>>27548
void p1, p2;
...
p1 = *p2;
364 1427552
>>27550
И тогда значение ячейки, лежащей по адрему p1 станет равным значению ячейки лежащей по адресу p2?
365 1427553
>>27552
Ты хотел значение указателя присваивать, а не объектов, на которые он указывает
366 1427554
>>27551
void (зв)p1, (зв)p2;
hotfix
367 1427555
>>27551
Компилятор меня нахуй шлет.
368 1427557
>>27551
Указатель должен хранить адрес, а не значение по адресу.
369 1427558
>>27553
Ща попробую объяснить. Уже ночь и яплохо соображаю. Вот есть у меня указатель на ячейку B42BAF (это я придумал) и эта ячейка хранит число 6. И мне нужно чтобы 6 оказалась в другой ячейке
370 1427560
>>27557
Я тоже подумал что я хуйню творю. Но постом ниже попытался объяснить что я хочу
371 1427561
>>27560
Постом выше
Фикс
372 1427562
>>27557
блять, ты тупой? p2 хранит адрес на значение, которое является адресом...
373 1427563
>>27558
int (зв)p = 0xB42BAF;
int (зв)p2 = new int;
(зв)p2 = *p
374 1427565
>>27563
(зв)p1=(зв)p2
Делает что то непонятное. Выбрасывается исключение. Память читается чужая
375 1427566
>>27565
мы ж понимаем, что 0xB42BAF надо заменить на валидный адрес?
376 1427567
>>27563
Они на одну ячейку вдвоем указывают и происходит unable to read memory. По крайней мере у меня так работает
377 1427569
>>27566
Так (зв)p=BA52C значение впихивает в адрес p. Чтобы заставить указатель ссылаться на эиу хуйню нужно просто p=BA52C
Короче я хуй знает. Вот моя задача
>>27558
Мне нудно число перенести из одной ячейки памяти в другую
378 1427570
>>27567
в каком месте они на одну ячейку указывают? p указывает на 0xB42BAF, p2 - на только что выделенную, затем мы копируем значение одной ячейки в другую
379 1427575
>>27570
Башка не варит. Лучше высплюсь, а завтра доделаю. Спасибо за советы
380 1427576
>>27567
По тому адресу нет значения.
381 1427577
>>27576
Почему? Какое то случайное должно же быть
382 1427578
>>27569
int (зв) p = 0xBA52C;
и
int (зв) p = ...;
*p = 0xBA52C;
разные вещи,
первое - инициализация указателя
второе - присвоение значение ячейке памяти по указателю p>>27577
Нет, не должно
383 1427588
>>26806
Ебаный рот этого С++. То чувство, когда понимаешь что ты никогда не выучишь этот язык до конца.
384 1427590
>>27588
Ты сишку сначала до конца попробуй выучить, лалка
385 1427605
>>27588
Так у него нет конца
386 1427661
Кто-нибудь ковырял слитый код ядра windows (wrk)? Есть еще какие-нибудь материалы по ядру?
sage 387 1427674
>>27661
Кидай ссылку на раздачу
изображение.png122 Кб, 1366x768
388 1427751
int(зв) p1=new int;
int(зв) p2=new int;
(зв)p1 = 1;
(зв)p2 = 2;

while (true) {
Sleep(rand() % 200);
p2 = p1;
delete p1;
int p1=new int;
p1 = p2;
delete p2;
int
p2 = new int;

}

Почему у меня две паре p1 и p2?
389 1427753
>>27751
Там написано (зв)p2=(зв)p1, int(зв) p1=new int, int(зв) p2=new int
390 1427755
>>27751

> Пожалуйста, пользуйтесь https://ideone.com/ или https://pastebin.com/ для вставки кода, если он длиной больше нескольких строк или содержит [​i​] или ∗.

391 1427759
>>27751
Я все сделал. Странно, но когда код на обозрение выставляешь, мозг будто боится опозориться и начинает лучше думать. В следущий раз буду использовать pastebin
393 1427774
Можно ли использовать неинициализированные переменные как генератор рандомных чисел (не динамические)?
394 1427789
>>27774
Как показал пример выше, нет.
395 1427821
>>27502
Я и делаю в QImage. Только вот выводить в интерфейс приходится, конвертируя QImage в QPixelmap, в результате чего, я подозреваю, 16 бит пидорасятся в 8 бит.
396 1427848
>>27661
ReactOs. Из книг - Windows Internals. Годных блогов - бесчисленное количество, ищи. Также в твитере любят всякие ресерчеры сидеть, ищи там тоже.
397 1427849
>>27661
Для низкоуровневой темы у нас есть отдельный тред:
https://2ch.hk/pr/res/1406213.html (М)

Перекатывайся туда, здесь никто не шарит за лоу левел.
398 1427896
Сап, програмач. Нихуя не понятно. Имеется массив чисел, нужно выбрать из них простые и перевернуть (123 - 321). Написал две функции:
int simple(int n)
{
if(n<=1)
return 0;

for (int i = 2; i<=sqrt(n); i++)
if (n % i == 0)
return 0;

return 1;
}

и
void reverse(int a, int n)
{
int temp, b, k, c, simp;
for (int i = 0; i < n; i++)
{
k = 0; c = 0;
if (a > 0)
c = 1;
else c = -1;
a = abs(a);
temp = a;

if (simple(a)==1)
{
b = a % 10;
a /= 10;
while (a > 0)
{
b = b
10 + a % 10;
a /= 10;
}
a = b;
}
a *= c;
printf("%d ", a);
}
}

Но почему-то в результате работы все неотрицательные элементы массива обращаются в 0. Помогите, пожалуйста.
398 1427896
Сап, програмач. Нихуя не понятно. Имеется массив чисел, нужно выбрать из них простые и перевернуть (123 - 321). Написал две функции:
int simple(int n)
{
if(n<=1)
return 0;

for (int i = 2; i<=sqrt(n); i++)
if (n % i == 0)
return 0;

return 1;
}

и
void reverse(int a, int n)
{
int temp, b, k, c, simp;
for (int i = 0; i < n; i++)
{
k = 0; c = 0;
if (a > 0)
c = 1;
else c = -1;
a = abs(a);
temp = a;

if (simple(a)==1)
{
b = a % 10;
a /= 10;
while (a > 0)
{
b = b
10 + a % 10;
a /= 10;
}
a = b;
}
a *= c;
printf("%d ", a);
}
}

Но почему-то в результате работы все неотрицательные элементы массива обращаются в 0. Помогите, пожалуйста.
399 1427958
>>27896

>Лабы идут на хуй


>Небольшие фрагменты кода размещай в треде при помощи тега [code] и жабаскрипт-костыля. Для больших фрагментов используй внешние сервисы. Хотя лучше вообще всегда используй последний.



в норм виде скинь свой код тогда может быть помогу, но вобще с такой хуетой должен сам разбираться, а не на форумы бежать сразу
400 1427970
>>27896
Я вообще ничего не понял. Что это вообще за манипуляции в reverse?
401 1428113
Подскажите плиз, что неправильно?
Сначала инициализирую картинку.
QImage image = QImage(fileWidth, fileHeight, QImage::Format_Grayscale16);
Потом код берет значения и записывает их в QImage в цикле. resultColor - это quint16.
for (int i = 0; i < map.size(); i++)
{
...
image.setPixelColor(x, y, resultColor);
}

Затем я конвертирую QImage в QPixmap и вывожу в GUI.
QPixmap pixmap(QPixmap::fromImage(image));
imageLabel->setPixmap(pixmap);


Проблема в том, что в QImage почему то получается картинка с глубиной 8-бит, а не 16 бит. И выводится 8-битный greyscale, хотя я прописываю QImage::Format_Grayscale16. Почему так может быть? Кто нибудь вообще знает, как устроен Format_Grayscale16 в Qt?

Первый пик - как должно быть, второй пик - скрин из GUI.
SmugThoughtfulFox-max-1mb.gif866 Кб, 420x236
402 1428138
//Использую GIFImage.
//q:Какого фига пишешь в Билдере?!
//a:Практика в колледже. Заставляють нахой.
Можно как-то реализовать прозрачность гифки в C++ Builder 6?
Чтобы как-то убрать черный фон. Хотел через Transparent Color, но TImage не имеет такую опцию.
403 1428156
Как же заебал qml. Устраивался на работу кодить на цпп, а заставили заниматься формошлепством.
sage 404 1428172
>>28113

> QPixmap pixmap(QPixmap::fromImage(image));


Попробуй
[code]
QPixmap pixmap;
pixmap.convertFromImage(image);
[/code]
И с флагами поиграться
1410593018481.PNG94 Кб, 322x320
405 1428179
>>28172
Не помогло, анончик. Все равно пидорасит.
sage 406 1428226
>>28179
А ты в файл пробовал сохранять? Может это на экране уже пидорасит, а не в QPixmap. Выложи картинку заодно.
407 1428248
>>28113
что то со страйдом не так
408 1428263
Какой самый каноничный способ конвертации string в wstring и обратно? На SO предлагают целый зоопарк от MultibyteToWideChar до бустовского string_cast. Неужели нет простого способа сделать это средствами стандартной библиотеки?
409 1428264
>>28263
std::string f = "lol";
std::wstring f2(f.begin(), f.end());

таким же раком и обратно
410 1428265
>>28263
>>28264
но в стандарте вроде пока нет работы именно с конвертацией кодировок
411 1428266
>>28263

>Какой самый каноничный способ конвертации string в wstring


Что ты имеешь ввиду под "конвертацией"? Просто преобразовать можно так как написал >>28264 , конвертация с учетом кодировки (чтобы non-ASCII символы корректно сконвертировались в юникод) потребует или библиотеки для работы с юникодом, либо функций WinAPI (вроде MultibyteToWideChar).

В стандартной библиотеке С++ пока нет поддержки для юникода.
412 1428267
Сап, анон. У меня есть контейнер данных, м которым приходится работать типа как разделить, выделить подмножество и т.п. Сейчас этот контейнер - std::list, и когда я делаю подмножество, то там std::list<MyData*>. Мне это не нравится вообще, ибо бллядские указатели (даже шаредптр) отдает плохим дизайном.
Не умнее ли использовать карты, благо в каждом классе есть уникальный id? И работать, типа получаешь список ключей, которые меняешь, потом проходиться по ним?
sage 413 1428273
>>28267
Чем тебе указатели не нравятся? Храни unique_ptrы, при передаче куда-нибудь объектов разыменовывай.
414 1428347
>>28263

>Какой самый каноничный способ конвертации string в wstring и обратно?


Самый каноничный — не конвертировать.
415 1428358
>>28267
gsl::span?
416 1428402
>>28226
Пробовал QImage сохранять в файл, там та же белиберда. То есть это происходит именно после записи 16-битных значений в QImage.
417 1428587
Хочу прочитать память процесса, используя ReadProcessMemory.Там есть такой параметр как lpBaseAdress. Как его получить? и за что он отвечает?
изображение.png25 Кб, 613x654
419 1428611
>>28607
Я там и читаю. Как я понял базовый адрес это то куда загружается код, относительно начала выделенной памяти. Даже пикчу такую нашел. Но как мне узнать этот адрес?
420 1428619
>>28611
Нет, это просто адрес памяти, с которого начинается чтение. Как именно узнать, что ты хочешь прочитать (без содействия читаемого процесса)? Это вопрос скорее к АСМ треду.
421 1428621
>>28611

> Но как мне узнать этот адре


Сканишь, смотришь что где лежит и берешь что нужно.
422 1428626
>>28621
Так чтобы отсканить мне нужно этот параметр передать. Я вот понять не могу: это адрес относительно всей памяти или относительно выделенной процессу.
423 1428636
>>28626
Относительно процесса. У тебя нет доступа к реальным адресам. Процессы работают с виртуальными адресами (у каждого свои) никак обычно не связанными с реальными физическими.
424 1428638
>>28636
Фух. Так то изи. Спасибо. Я пошел играться
425 1428666
>>28636
Может ли виртуальная память быть фрагментирована?
426 1428669
>>28666
Я не уверен, но скорее всего нет. Память разбивается на страницы, физически они могут распологаться как угодно (не говоря уже о том что некоторые могут быть вообще выгружены из оперативной памяти в своп) но именно виртуальные адреса скорее всего идут всегда непрерывно.
427 1428670
Потоки работают с одной памятью?
428 1428678
>>28670
По сути это главное отличие потоков от процессов, у потоков общее адресное пространство.
429 1428766
>>28669
Регион помечается как недоступный. Это если в юзермоде. В ядре просто страница выгружается.
430 1428767
>>28611
Базовый адрес модуля приложения + офсет относительно него = твой адрес для чтения/записи памяти.
431 1428785
>>28678
Спасибо
432 1428792
>>28626
Вообще, если я правильно помню, там можно подсасываться как-то к процессу ещё: кажется, я для примера делал штуку, которая брала окно под координатами мыши, брала над ним управление и посылала ему сигнал выхода - и по запуску проги приложение под курсором закрывалось.
То есть, получить управление над другим процессом можно, а там уже и узнать адреса его памяти, думаю, достаточно просто.
но я шизик-маразматик, так моя память могла сыграть над нами плохую шутку и это все хуйня.
image.png145 Кб, 480x360
433 1428798
Крестач, ты охуел? Я в 87-м распинаюсь, а вы тут уже 90-й захуярили. Внимание, вопрос...

ААААААААААААААА БЛЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯДЬ!!!!!!!! Какого хуя WinHttpSendRequest шлет лишь ебучий глагол?!?! Вот реально, вместо сервера запустил голую слушалку на winsock-ах, и прилетает только 4 байта "POST". Это пиздос, чините мой пердак, аноны!!!
434 1428924
Где взять HANDLE процесса? Пыталсся вводить ид процесса из диспетчера задач, но вижу ошибку 6 "The handle is invalid. "
435 1428927
>>28798
Ты че, ебанутый? Иди в 92 тред
437 1429217
Приветствую вас аноны! Мимо студент изучает плюсы и хочет поинтересоваться - есть ли фриланс на си++, и как до него дорасти?
438 1429292
>>28347

>Самый каноничный — не конвертировать.


Такое бывает только в идеальном манямирке. fstream::open до сих пор принимает только последовательность из char.
439 1429307
>>29292
Начиная с C++17 принимет std::filesystem::path
440 1429331
>>29217
нету
442 1429422
Вот я прочитал значение памяти другого процесса и сверился с CheatEngine'ом. Если читать по адресу, где лежит переменная то все ок, а если прочитать с 0, то ошибка: память прочитана частично. Кстати в первый раз я заметил, что если перевести значение в 2 систему, то там 2 бита просто повторяются. Я за память не шарю. Поэтому прошу ответа на вопросы: почему так происходит и как фиксить. 2(вопрос) не обязательно. Если я узнаю 1, то смогу ответить на 2
443 1429437
>>29422
Может как-то связано с тем что 0 адрес это nullptr.
444 1429440
>>29437
Надо проверить. Спасибо за мысль
445 1429442
>>29437
Интересно стало что будет, если я захочу прочитать с нулевого адреса (1 в языке обычных людей) как тогда быть?
446 1429444
>>29442

> как тогда быть?


Захотеть прочитать с другого адреса.
447 1429448
>>29437
Брал другие адреса (пробовал кратные 8, 64). Тоже самое.
448 1429555
Антуаны, такой вопрос к вам. Ни разу не плюсист, но вот понадобилось мне вкорячить OpenCV на моё приложение. Но всё оно мне не сдалось, только 1-2 функции. Есть какой-нибудь вариант собрать какую-нибудь либу-враппер так, чтобы собралось только самое необходимое для выполнения этих функций?
Из исходников самому выдирать неохота, слишком уж много там одно другое за собой тянет.
449 1429558
>>29555
Посмотри сюда
https://stackoverflow.com/questions/6687630/how-to-remove-unused-c-c-symbols-with-gcc-and-ld
Там пишут использовать ключи типа -fdata-sections -ffunction-sections. Нужно собрать OpenCV с этими ключами и как статическую либу. Он собирается cmake'ом, то есть клонируешь репу его гитом, чекаутишь нужную версию, дальше
mkdir build
cd build
cmake -DCMAKE_CXX_FLAGS= "-fdata-sections -ffunction-sections" -DCMAKE_BUILD_TYPE=Release .. -DBUILD_SHARED_LIBS=OFF #тут еще много флагов может понадобится
make -j12

А дальше статически прилинковать к своей проге, и при линковке указать -Wl,--gc-sections , согласно тому же ответу с SO.
Как-то так. Сам я этого не делал, но должно сработать.

Более ленивый способ, если тебе нужно просто спиздить пару алгоритмов и структуры данных к ним типа cv::Mat, это заинклудить все нужные cpp файлы

#include "opencv2/yoba.cpp"
#include "opencv2/peka.cpp"

И получившегося монстра собрать или как часть твоего проекта, или с соответствующими include-директориями и теми же флагами -fdata-sections -ffunction-sections и -Wl,--gc-sections (хотя в этом случае можно и отдельные cpp файлы билдить). Это на самом деле не очень долго, достаточно начать билдить, он будет ругаться на unresolved external, далее grep -R в руки для поиска и через полчаса соберешь свой мини-OpenCV. Правда может не повезти и действительно оно потянет все исходники, но вряд ли, компьютерное зрение все-таки, алгоритмы должны быть быстрыми и компактными.
450 1429626
Страутструп в книженции заставляет сделать упражнение на сортировку чисел и строк, практически не пояснив за if-ы и логические операции, ни разу не показав массивы и прочее. Заебись ему.
451 1429639
>>29626
Страуструп хуево косплеит кернигана и ричи. Лучше почитать их а по крестам саттера или мейерса. И точно не как первый язык, ифы и массивы надо знать уже хорошо
452 1429647
>>29639
Да тут даже не в сложности дело. В начале он писал что книга также для людей у кого это первый язык, то есть он же серъезно ожидает что я после 50стр его книги нахуячу ему сортировку на голом if, даже без else???
Тут же головной боли и адской лапши никак не обойтись.

> по крестам саттера или мейерса


Гляну их, спс.
453 1429659
>>29647
Прошел почти всего Страуструпа (не осилил только последние пару глав). Насколько помню там задание было отсортировать даже не массив, а просто 3 числа (строки). И это вполне возможно сделать только с if-ами и else-ами. Но вообще согласен, упражнение так себе.
454 1429672
>>29659
Да, я про него, немного переоценил масштаб трагедии. Но задание все еще на усидчивость, а не логику.
455 1429859
>>29647

> В начале он писал что книга также для людей у кого это первый язык


Как и K&R

>то есть он же серъезно ожидает что я после 50стр его книги нахуячу ему сортировку на голом if, даже без else???


Ты не очень умный. Я бы лет в 12 такое написал.
456 1429869
>>29859

>Я бы лет в 12 такое написал


Но заместо этого получал пизды в школе.
457 1429882
>>29626
Вам же дали норм учебник - "С. Прата - Язык программирования С++. Лекции и упражнения". Почему его не используешь?
458 1429884
А я читаю липпмана и у него задания для олигофренов. После кернигана с ритчи, где после первой же главы предлагали написать простейшую прогу для проверки ошибок в коде, этот учебник выглядит несерьёзно.
1422360325950.jpg41 Кб, 620x418
459 1429890
Мне надо приравнять один pixmap к другому.
Пишу QPixmap pixMap = imageLabel->pixmap(); а он мне отвечает no viable conversion from 'const QPixmap ' to 'QPixmap'.
Пишу QPixmap
pixMap = imageLabel->pixmap(); а он мне отвечает cannot initialize a variable of type 'QPixmap ' with an rvalue of type 'const QPixmap '.
Что я не так делаю?
460 1429895
>>29859
Количество элементов известно? В любом случае это задание на логику. То можешь хоть 10000 страниц прочитать, но если не будешь тренировать логическое мышление все равно не напишешь
461 1429896
>>29890

> Что я не так делаю?


Пытаешся приравнять один pixmap к другому.
462 1429898
>>29896
А что, нельзя что ли приравнивать? В описании класса оператор = определен, по идее можно.
463 1429901
>>29898
Ну так оператор= работает с объектами класса, а pixmap() возвращает указатель, если я правильно помню.
464 1429904
>>29901
Ну так я во втором примере пытаюсь приравнять указатель, но он все равно не хочет.
465 1429905
>>29901
Только сейчас заметил, что звездочки нет, двач проебывает их. Во втором примере у меня указатель на pixMap.
466 1429913
>>25831
пиздец. там очень душный собес был.
467 1429917
>>29890
QPixmap pixMap(*imageLabel->pixmap());
Срочно врубаться что такое ссылки, а что такое значения.
468 1429924
>>29917
Спасибо, работает.
469 1429938
>>29913
Что сказали?
470 1429952
>>29898
Попробуй
const QPixmap pixMap = imageLabel->pixmap();
или тип того.
а у нас в расте заимплементил Clone или Copy и присваивай шо хошь
471 1430035
Как найти программу в памяти? Программе доступно 4гб вроде. И как мне в этих 4гб найти программу, весом 800кб? Как узнать адрес стека, кучи, чего угодно?
472 1430145
>>30035
Виртуальный адрес
473 1430157
>>30145
Так ей в виртуальном жи пространстве доступно 4 гб. И когда я читаю память с помощью read process memory я читаю виртуальную память. И в виртуальной памяти она распологается хуй знает где
474 1430310
Какие пути развития есть в c++ кроме qt? Вот выучил я язык как дальше развиваться?
475 1430339
>>30310
Не стоит его учить, если возникают такие вопросы.
476 1430342
>>30310
Какие пути развития есть у молотка или у перфоратора?
477 1430357
>>30342
Моё развитие в языке, как мне дальше развиваться ?
478 1430403
>>30357
А в русском языке куда ты можешь развиваться?
479 1430405
>>30310

>Вот выучил я язык


Его даже Страуструп не выучил, лол.
480 1430421
>>30310
Идешь получать опыт. По-другому никак.
481 1430422
И почему я не пошёл учить питон. На крестах нет работы, совсем.
482 1430429
>>30310
пишешь код
483 1430439
>>30422
На питоне тоже.
484 1430463
>>30439
>>30422
заебись
вкатывающийся плюсопитонщик
485 1430542
Я не понимаю как динамический базовый адрес поможет защитить программу от взлома. Ну попробовал я начать чтение с 0x40000000. Ну не получилось. Пойду искать с 0x0 до 0xFFFFFFFF. Ну будет дольше. Ну и что. В конце концов найду программу
486 1430547
>>30542
А если у тебя 64 бит ОС и надо будет идти до 0xFFFFFFFFFFFFFFFF?
487 1430548
Сука. Ну не понимаю как cheat engine ищет так быстро. Даже по всей оперативке. С 0x0 до 0xFFFFFFFFFF (Хуй знает сколько там F). Секунды не проходит. Моя же программа за это время успевает сместить указатель на ~300 байт. Мой алгоритм такой: ставлю указатель на 0x0. Проверяю располодено, ли число по этому адресу. Если нет, то перемещаю указатель на 1 байт дальше. Дайте совет по ускорению поиска
488 1430549
Господа, необходимо в qt запилить постоянный вывод системного времени. Как это можно сделать попроще?
489 1430550
>>30547
Тогда оооочень долго. Расчет на то, что злоумышленнику не захочется тратить столько времени?
490 1430553
>>30550
Как насчет бинарного поиска?
491 1430555
>>30548
Как насчет бинарного поиска?
492 1430560
>>30555
Трипл врать не будет
изображение.png106 Кб, 1366x768
493 1430562
>>30548
Это просто магия какая то. Даже при таких настройках cheat engine ищет за доли секунды. КАААААК?
>>30553
Я вот не понял при чем тут бинарный поиск. Это же для отсортированного массива.
494 1430573
>>30548
Мб можно найти нужный кусок оперативки и только его читать?
Есть виндовая ReadProcessMemory(). Хендл процесса по его имени вроде тоже можно получить.
495 1430575
>>30573
Так я использую эту функцию. Но как я понял я работаю с виртуальной памятью и будто программа одна на весь комп и у нее в распоряжении 4гб. Я искал функцию, которая скажет мне первый, используемый программой, адрес, но такой нет. Иначе весь смысл в рандомизации базового адреса пропадет
496 1430576
>>30548

> перемещаю указатель на 1 байт дальше


Перемещай на слово. Чтение одного байта медленное. Вроде как стандарт рекомендует чтобы int был такого размера который обеспечивает оптималную скорость для конкретной системы (на практике это значит что он должен быть равен машинному слову) но я не уверен насчет этой хуйни. Попробуй читать ансигнед интами. Если надо искать данные размером с байт то используй побитовые операции - число будет крутиться в регистрах, должно быть быстрее чес по байту из памяти тянуть.
498 1430579
>>30576
Так вдруг получится так, что первое чтение заканчивается на адресе 10, следущее чтение с 10 по 42, а число расположено с 6 по 38
499 1430580
>>30578
Дескриптор я могу получить. Но честно говоря не очень понимаю смысл. Считал что это типо идентефикатор процесса, и бугуртил с того что есть handle, и есть process id
500 1430582
>>30548
Поиск подстроки (число) в строке (RAM).
501 1430589
>>30562
Ой, я какую-то хуйню про бинарный поиск сказал.
А вообще, почему бы не найти сегмент кода в бинаре тем же путем, которым его находит ОС, когда выполняет?
502 1430590
>>30589
Ой, опять хуйню сказал. Вообще в тему дискуссии не въехал. Сука. Мне теперь стыдно в тред заходить будет.
503 1430618
>>30548
А ты ТОЧНА погуглил прежде чем этой хуйней заниматься? Не верю, чтобы тебе не давали функцию, с которой ты можешь получить желаемое или это не было на СО.
ну что-то вроде https://stackoverflow.com/questions/11564148/how-to-get-the-starting-base-address-of-a-process-in-c наверное

я бы свои слова проверил, чтобы глупую хуйню не спиздануть и не ПОКАЗАТЬСЯ ДУРАКОМ НА ВЕСЬ С++ ТРЕД, но я не виндоблядок
504 1430625
>>30549
Выводить по таймеру, куда уж проще?
505 1430790
>>30548
GetSystemInfo для того, чтобы узнать в каких пределах искать.
Затем итерируемся в пределах памяти приложения не по 1 байту , а по выделенному региону, границы, статус (MEM_COMMIT) и защиту (PAGE_NOACCESS, PAGE_READWRITE...) которого можно узнать через VirtualQueryEx. Внутри прочитанного региона ищем по какому нибуть умному алгоритму типа Бойера — Мура.
506 1430957
//...
std::string buf;

std::cout << "String: ";
std::getline(std::cin, buf);
std::istringstream ist(buf);
while ( ist >> buf )
//...
Можете объяснить этот кусочек кода?
А именно что значить - std::istringstream ist(buf);
while ( ist >> buf )
И можно как-то по-другому, написать последние 2 строки?
507 1430961
Помогите советом по C++/Qt. Есть встроенный в Qt пример - Editable Tree Model. Пытаюсь закрасить определенную ячейку в какой-нибудь цвет и сталкиваюсь с тем, что не понимаю как должны работать роли в Qt. Получается, что я должен через If() или switch() вручную обрабатывать Qt::Role, которые поступают вместе с вызовом TreeModel::setData(), чтобы записать данные. А затем также вручную их обрабатывать, когда я хочу их отобразить при помощи TreeModel::Data() ?
508 1430963
Что происходит при malloc и free? Ну понятно что выделяется/освобождается память, а что конкретно под этим подразумевается? Как ОС отличает занятую память от свободной, и как освобождается память, удаляется из какой-то виртуальной таблицы с адресами, или как? Не могу нагуглить ничего, выдает только какие-то советы для работы с поинтерами
509 1430965
>>30963

> Что происходит при malloc и free?


Тоже самое что при int, double и тд.
510 1430967
>>30965
Ты только первое предложение прочёл чтоль?
511 1430969
>>30963
В конце K&R простая реализация есть.
512 1430971
>>30969

>K&R


Язык программирования СИ?
image.png20 Кб, 472x118
513 1430975
>>30969
Нашел вот это, как-то тоже скомканно и абстрактно рассказано.
Начнем с того, что рассмотрим упрощенную схему организации памяти. Память типичной машины
представляет собой массив последовательно пронумерованных или проадресованных ячеек, с которыми
можно работать по отдельности или связными кусками. Применительно к любой машине верны следующие
утверждения: один байт может хранить значение типа char, двухбайтовые ячейки могут рассматриваться как
целое типа short, а четырехбайтовые — как целые типа long. Указатель — это группа ячеек (как правило,
две или четыре), в которых может храниться адрес. Так, если с имеет тип char, а р — указатель на с, то
ситуация выглядит следующим образом:
514 1430976
>>30975
А всё, нашел. Спасибо анончик раздел 8.7 если кому нужно будет
515 1430977
>>30963
В windows, грубо говоря, будут вызываться функции VirtualAlloc/VirtualFree. Как там работает их пул - хз, память не удаляется, а помечается как незанятая MEM_FREE. Можно глянуть MEMORY_BASIC_INFORMATION
516 1431099
>>30548
Ну так ты на каждый байт стучишься в ядро, естественно это медленно. Сначала сделай выборку из нужных регионов через virtual query, далее читай весь нужный регион полностью в буфер через read virtual memory, далее ищи в нем совпадение.
517 1431104
>>30977
Если мне не изменяет память, то выделяется хип. HeapAlloc/HeapFree.
3ca.jpg151 Кб, 1080x780
518 1431133
Полчаса пытался понять почему хеллоу, ворлд не работает - оказывается к clang забыл ++ дописать.
519 1431135
>>31133
ой бля, я так однажды gcc вместо g++ пытался конпелировать, обосрался с лога stderr на 25 скринов
520 1431147
>>30961
Ну бамп же.
90ый тред по крестам. Неужели никто не работал с моделями в Qt?
521 1431167
522 1431180
>>31147

>Qt


Фу нафиг
image.png7 Кб, 451x386
523 1431301
Создание вот такого te_2 для многострочной строки вне возможностей препроцессора, да?
524 1431321
>>31133
Помню в студии пытался С++ код в .c файле написать. Часа 2 мучился.
525 1431333
Даже после написания такой хуйни
VirtualQueryEx(hProcess,(LPVOID)lpBaseAddress, &procInfo, sizeof(procInfo));
lpBaseAddress = (INT64)procInfo.BaseAddress;

lpBaseAddress равен 0
526 1431399
Нихуя непонятно, Qt платный или нет? Одни пишут бесплатный, на сайте тем не менее я вижу только триалы.
527 1431406
>>31399
как же ты с кутями справляться будешь, если с сайтом не можешь? под жпл бесплатный прямым текстом написано https://www.qt.io/download
528 1431462
>>31104
Грубо говоря, HeapAlloc свою очередь вызывает VirtualAlloc.
529 1431563
>>31406

> под жпл бесплатный


Кстати, поясните насчет этой хуйни. Допустим кьют по гпл бесплатный. Могу ли я с его помощью создать прогу и продавать ее? Или нет?
На что вообще распространяется гпл в данном случае? Только на исходный код кьюта или же на все, что было написано с помощью него?
Или вот багтрекер есть один, redmine называется. Он тоже по гпл идет. Его можно использовать в коммерческих целях? Могу я его использовать бесплатно для багтрекинга своей программы, которую собираюсь продавать? Или нет?
Непонятная хуйня для меня.
530 1431586
>>31563
Там чёрт ногу сломит. Очень много разных ньансов, с которыми нужно разбираться. Не зря же они у себя пишут:
Qt is licensed under a commercial and open source licenses (GNU General Public License version 3 and GNU Lesser General Public License version 2.1).

We want to make sure that you are fully aware of the license types of Qt and which is the correct one to use based on your development project. It is important that you are in the know of the requirements of developing under the GPL or LGPL. Learn about the LGPL requirements here and the GPL requirements here.

Questions about the Qt commercial license?
We recommend you contact Qt by Digia for more information on the Qt commercial license, what it enables and how you can start developing with it. Contact Qt by Digia.
532 1431591
>>31563
твой вопрос про продажу говорит о том, что ты даже в гпл не разбираешься. из ресерча что я делал предыдущие с++ треды, можешь писать на кутях что угодно и продавать это, но по требованию должен предоставеть сорсы. даже не нужно их размещать пока не попросят.
533 1431708
>>31591
Да? там же какая то хня с лицензиями на компоненты типа Chart и тд
534 1431757
>>31708
я так понял, что эти компоненты вроде Chart, перечисленные в https://doc.qt.io/qt-5/qtmodules.html#gpl-licensed-addons это жпл3. а все остальные компоненты, перечисленные вверху - LGPL3 или GPL2.

>Note: For open-source licensed Qt, some specific parts (modules) are not available under the GNU LGPL version 3, but under the GNU General Public License (GPL) instead

535 1431832
Есть отдельные книги/чит-щиты по препроцессору в студии? Хочется что-то большее делать, чем #define #ifdef.
536 1431838
>>31832
Они в любой книге есть
1433231752821.png56 Кб, 645x729
537 1431883
Аноны, че то я в тупике.
Мне нужно вызывать диалоговое окно, в котором есть QLineEdit filePathLine с путем к файлу и кнопка browseButton, при нажатии вызывающая QFileDialog::getOpenFileName(). Все это внутри отдельного QDialog, который является дочерним для QMainWindow.
И вот, мне нужно сделать что то типа:
connect(browseButton, &QPushButton::clicked, this, &ImageEditor::browseCurrentFile);
connect(browseButton, &QPushButton::clicked, &filePathLine, QLineEdit::setText(currentFilePath));
Чтобы при нажатии на кнопку сначала вызывался метод browseCurrentFile, а потом менялся текст в QLineEdit. Метод browseCurrentFile должен будет вызывать QFileDialog::getOpenFileName() и записывать результат в глобальную переменную QString, а в QLineEdit и должна записаться эта глобальная переменная QString.
Какая то запутанная хуета получается, я что то не могу придумать решение.
На пикче я кстати.
sage 538 1431890
>>31883
Ты же уже сам ответ написал. Хотя я бы не делал второй коннект, а обновлял бы строку в методе из первого коннекта
539 1431897
>>31890

> Ты же уже сам ответ написал.


Он ругается на такой ответ, хотя я не вижу ошибку, вроде все логично.

> Хотя я бы не делал второй коннект, а обновлял бы строку в методе из первого коннекта


Я бы с удовольствием, но QLineEdit filePathLine - не глобальный, он существует только в области видимости QDialog, а QDialog лежит внутри слота openFile() моего QMainWindow. А метод из первого коннекта принадлежит - это тоже слот QMainWindow. Наверно вся проблема в дебильной архитектуре всего этого, но мне что то сегодня в голову не лезут правильные решения.
sage 540 1431906
>>31897
Так перекинь всё в диалог и потом у него спрашивай, какой путь введен
541 1431910
>>31906
Ты имеешь в виду создать отдельный хедер и cpp для QDialog?
542 1431911
>>31838

>Хочется что-то большее делать, чем #define #ifdef

543 1431926
>>31911
Ну хз. Я 12 штук насчитал у себя
sage 544 1432205
>>31910
Почему нет?
545 1432281
Читаю "Шаблоны c++. Справочник разработчика", вроде всё понятно, кроме одного: где это всё блять использовать. Можете описать юзкейсы метапрограммирования, если речь идёт не о создании библиотек? Вот в обычном приложении, скажем мобильное приложение с расписанием автобусов или что-то из своего опыта. Пытаюсь как-то практиковаться, но пока всё ограничивается примерами из книжки в 10 строк, а чего-то более серьезного не могу придумать.
546 1432319
>>32281

#if defined(__kitayskaya_zalupa)
...
#endif

#if defined(__another_chinese_zalupa)
...
#endif

Это единственный пример метапрограммирования, который тебе когда-либо понадобится в реальной разработке на крестах
547 1432327
>>32281
Но зачем? Пиши быдлокод и не выебывайся.
548 1432390
Сууука. Помню спрашивал почему так долго память сканируется. А у меня задержка до 300 миллисекуд стояла хуй знает зачем. Наверное что бы успеть прочитатьтекущий адрес. Пизлец я лох
549 1432423
Почему cheat engine нашел адрес, расположенный на 130 000 гигабайте. Как такое возможно?
изображение.png189 Кб, 800x187
550 1432433
Если верить пику то я смогу найти базовый адрес по дескриптору. Это правда?
551 1432455
>>32433
Дескриптор HMODULE, которого возвращает GetModuleHandle, будет равен base address
552 1432465
>>32319
если ты необучамый даун - то да.
553 1432472
>>32281
На шаблонах ничего в тысячи строк и не городят. Они нужны для того, чтобы решать сложные проблемы элегантно. Пихать их нужно только туда, где без них прям ну никак нельзя.
554 1432477
Можно ли передать строку из Gen в Work1?
void Gen(int &gen) {
char arr1[] = "abcdefghijklmopqrstuvwzxy0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char arr2[10] = {};
int pars = 0;
int size = 4 + rand() % 5;
srand(time(NULL));
string dd= "ddddd";

for (pars = 0; pars < gen; pars++) {

for (int i = 0; i <= size; i++) {
arr2 = arr1[rand() % 62];
}
string fulldd = dd + arr2;
Work1(fulldd);
}

}
555 1432485
>>32477

>int &gen


Я чуть не лопнул.
556 1432569
>>32477
можно
557 1432751
>>32472
Нет ну а вообще их используют где-то за пределами либостроения? Обычному студентику их использовать то и негде выходит, или как?
558 1432756
>>32751
Угу. Писать свой контейнер для каких-то специфических нужд, не более, и 90% возможностей описанных в той книге там всё-равно не потребуются.
559 1432760
>>32756
Грустно это как-то, вроде и звучит охуенно, и всё круто работает, но в итоге максимум пользы это чтение исходников без слишком большого ахуевания.
560 1432815
>>32760
Мне кажется, эту фиготу добавили чтобы только чтобы сделать stl с нужными возможностями, это что-то на уровне около компиляторов языка, способ описать правила работы стандартной библиотеки - то есть то что это будет использовать кто-то ещё не подразумевалось. Но такая возможность всё-таки есть и он написал про это книгу.
562 1432873
>>32485
От чего?
563 1432905
https://ideone.com/XvFenZ
В чем сакральный смысл отсутствия свапа для правых ссылок?
564 1432916
>>30310
пиши хаки для ксго
565 1433183
>>32815
Не ну в целом согласен, но заменить stl на любую более-менее большую либу, и тогда норм. Буст тот же чуть ли не полностью на шаблонах написан.
566 1433240
int i=9;
int main() {
int i = 8,b=0;

while(b++!=1)
{
int i =7;
std::cout << i<< endl; // 7
std::cout << ::i<< endl;// 9
}
return 0;
}
Как вывести i=8?
567 1433246
>>33240
Перед return 0?
568 1433256
>>33246
Не, мне именно в цикле интересно.
569 1433266
>>33256
По идее ты ее перекрыл, то есть никак.
570 1433309
while ((string::iterator ink = s.begin()) != s.end())
Где ошибка? В плане синтаксиса. ink подчеркнуто красным и !=
571 1433349
>>32905
std::exchange
572 1433367
>>33309

>Где ошибка?


Нельзя сразу объявлять переменную и сравнивать значение с ней. И написал хотя бы вывод компилятора. MSVC выдаёт:

>conditional expression of type 'std::_String_iterator<std::_String_val<std::_Simple_types<_Elem>>>' is illegal


То есть ожидает условие, а получил что-то невнятное.

Тебе нужно разнести:

>std::string::iterator ink = s.begin();


>while (ink != s.end()) { ... }

573 1433445
>>33367

> Нельзя сразу объявлять переменную и сравнивать значение с ней.


С int все работало.
574 1433448
>>33445
A если new добавить перед твоей строкой?
575 1433450
>>33445

>while ((int x = 2) != 1)


Так? Не компилируется. Проверил Godbolt также и на gcc.
Да и какой смысл несёт эта строка? В начале каждого цикла ты создаёшь новую переменную, которая равняется begin(), и сравниваешь её с end()? Или ты хотел что-то типа цикла for, где можно в начале объявить переменную?
576 1433454
>>33450
Вообще это странное решение, хз, зачем ему так. Но можно объявить static переменную, тогда должно сработать.

Но это ж в самом деле range-based for, смысл велосипеды строить.
sage 577 1433464
>>33309
Дебич, переходи на 17 стандарт, там такое искаропки есть
578 1433467
>>33464
В while нет:
https://en.cppreference.com/w/cpp/language/while
А в if объявление по-другому описывается:
if (auto ink = s.begin(); ink != s.end()) { ... }
579 1433600
Есть код небольшого примера из книги М. Шлее - "Qt 5.10. Профессиональное программирование."
https://ideone.com/mYUbVa

В примере рассматривают создание класса-делегата. В нем есть функция-элемент:

QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex&) const
{
return QSize(option.rect.width(), 55);
}

Так вот, в самой программе прямого вызова sizeHint нет. Но эта функция точно отрабатывает, изменяя размер элемента из ListView. Вопрос - как так?
sage 580 1433662
>>33600
Ты не врубаешься, как наследование работает? Полиморфизм там, все дела
581 1433675
>>33662
Дело не в наследовании. Вопрос - откуда вызывается метод sizeHint(), если явного вызова в коде программы нет?
582 1433686
Перекат то будет?
583 1433707
>>33686
Нет
мимо путин
585 1433795
>>33711
Задам вопрос по-другому:
https://ideone.com/mYUbVa

Где, как и кем в этом коде происходит вызов SimpleDelegate::sizeHint()
?
586 1433860
>>33795
https://doc.qt.io/qt-5/model-view-programming.html здесь полюбому что-то полезное должно быть
587 1433866
>>33795
По ссылке из >>33711 через delegate. можно также посмотреть https://code.woboq.org/qt5/qtbase/src/widgets/itemviews/qabstractitemview.h.html
588 1434020
>>33600
Она виртуальная.
Её вызывают не из твоего кода, ты лишь меняешь поведение, перегружая её.

Такая фишка зовется - полиморфизм.
589 1434024
>>29938
Да там свой цирк и свои клоуны есть.

Атмосфера та еще.

Но всё таки по доброму и помнишь наш Радар.
590 1434044
>>34020
Но ведь у перегруженной функции будет то же самое название, не?
591 1434053
>>34044
Должна быть точно такая же декларация (возвращаемый тип и тип и количество аргументов). В базовом классе помечается ключевым словом virtual.
Далее в С++ введено специальное ключевое слово - override. Не влияет на поведение программы, но если в декларации перегружаемой функции будет допущена ошибка - компилятор выдаст ошибку.
592 1434095
>>34053
Имя-то то же самое останется, правильно? Следовательно где-то должен быть вызов функции по-любому, либо он скорее всего перепутал функцию.
Алсо по поводу перегрузки функций:

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

593 1434110
>>34095
Имя конечно.

Мы говорим о разных вещах.
Есть перегрузка функции или метода - это просто одноименные функции с разными параметрами вызова и да - разными возвращаемыми значениями.

Касаемо перегрузки виртуальных функций - перегружаемый метод должен возвращать ковариантный тип.

Перегрузка просты функций
double sum(double, double);
int sum(int, int);

Перегрузка виртуальных функций
class A {
public virtual double sum(double, double) = 0;
};

class B: public A
{
public double sum(double, double) override;
}
594 1434159
https://ideone.com/IB9Wbq
Почему не работает?
595 1434190
>>34159
Нахуя ты этот глючный cin/cout мусор используешь? Ставлю рарку, что там нужно что-то сделать с cin-ом, какой-то режим для него активировать, примерно так же, как для cout-а настройки форматирования дробных чисел можно поставить.
Поставь i=getchar() или i=cin.get() если так хочется вместо cin >> i
Настоятельно рекомендую залезть в файлы компилятора и удалить оттуда iostream, и никогда больше его не использовать.
596 1434198
>>34110
А, понял, спасибо.
Все-таки мне кажется он просто функцию перепутал, там даже модификатор const стоит, а функция должна менять что-то у него.
597 1434199
>>34190
Си тред в другой стороне.
598 1434217
>>34159
using namespace std забыл.
Ну и EOF разве для буфера подходит?
599 1434398
Не знаю куда еще писать, подскажите как написать регулярку чтобы достать символ именно один символ,который находится между двумя другими символами.
600 1434452
>>34398
Другой символ(символ который надо достать)другой символ.
А там бэкреференсом вытаскиваешь его. Само выражение - это нулевая группа, первые скобки - первая и т.д. Вложенные скобки считаются после тех, в которых они сидят.
То есть ((x)y)(z):
0 группа: xyz
1 группа: xy
2 группа: x
3 группа: z
601 1434505
>>34452
От души завтра напишу уже, сейчас уже голова не варит, но спасибо огромное
sage 602 1435019
>>34398
Почему просто не найти подстроку XYZ?
603 1435028
>>35019
так может у него символ переменный между двумя другими? иначе зачем ему вообще его доставать, если он его знает? ему наверняка нужно что-то вроде A(.)B или A([A-Za-z])B или A(\w)B и так далее
604 1435418
Кто там за метапрограммирование спрашивал? Вот, посмотрите.
https://www.youtube.com/watch?v=8ihLJFkrZvU
605 1435604
>>35418
Надо бы сделать C+=2. С нормальным метапрограммированием. (даже лучше, чем в D). С нормальной моделью компиляции.
1533185996931.jpg47 Кб, 960x640
606 1436282
Почему у меня метод resize() QLabel-а не работает?
Пишу:
imageLabel->setPixmap(QPixmap::fromImage(currentFile.toImage()));
imageLabel->resize(2 * imageLabel->pixmap()->size());
А ему поебать, все равно рисует картинку такого же размера.
607 1436299
>>36282
Картинку ресайзь
1484973692471.PNG16 Кб, 652x241
608 1436305
>>36299
Не помогло. А смысл ее ресайзить каждый раз? Я ориентировался на этот пример
https://doc.qt.io/qt-5/qtwidgets-widgets-imageviewer-example.html
А там в методе scaleImage() нету ничего подобного, только пикрил.
609 1436628
Аноны, можете что-то посоветовать желательно книги для изучения устройства Unix-систем? Устал шарахаться от всяких терминов по типу shared memory или кэш процессора. Желательно что-то вводное, что просто расскажет об устройстве без сверхуглубления в детали, лишь бы мог понимать о чём люди говорят.
610 1436842
>>36628
А причём тут Unix?
Таненбаума осилил уже?
611 1436847
>>36842
Читал Таненбаума по сетям. По архитектуре стоит читать? Я сюда зашёл посоветоваться, чтобы зря 1к страниц не читать.
612 1437011
>>36847
Стоит, если плохо понимаешь устройство комплюктерна.
614 1447391
Зачем в объявлении указателя на функцию так дохуя скобочек?
615 1447508
>>47391
потому что ты объявляешь не функцию, которая возвращает указатель на int, а указатель на функцию, которая возвращает int, очевидно же. Приоритет, ептить
Тред утонул или удален.
Это копия, сохраненная 7 августа 2019 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски