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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
2 1381999
Почему от C++ программистов ждут дохуя, а платят нихуя? 180к в Москве каждый второй JS-кодер может за круды получать, а нам столько отвалят только за computer vision какой-нибудь.
3 1382001
>>381999
а ты не работай в говне, а работай в нвидии
4 1382007
>>382001
В нвидию тоже просто так не берут, там рендеринг знать надо.
5 1382027
Посоветуйте хорошую книжку/гайды по симейку.
 .jpg200 Кб, 1280x1761
6 1382070
>>381999
Мне кажется, фенгомен JS связан с тем, что создание сайтов сейчас очень востребовано на рынке, много заказчиков и за это хорошо платят. C++ это в основном наука, разработка игр и программ для десктопа. В науке никогда не заработаешь, в геймдеве зарабатывают только какие-нибудь транснациональные сверхмонополисты вроде Valve или EA, а десктоп в 2019 никому не нужен и стремительно умирает, его вытесняют смартфоны и мобильные приложения.
7 1382094

>создание сайтов сейчас очень востребовано на рынке


а в биз жалуются, что веб-студии дохлый номер
8 1382096
>>382094
Возможно, но студия разработки игр или своя научная лаборатория определённо ещё более дохлый номер в экономическом плане, конечно.
9 1382103
>>382096

> студия разработки игр или своя научная лаборатория определённо ещё более дохлый номер


фак ю!!!!
мы все это сделаем! не сдавайтесь работяги!!!!!!!!!!
10 1382107
>>382070
Потому что быдло пишет сайтики для быдла. Весь веб уже лет десять как в жопе, всё благодаря пиздоглазым братьям нашим меньшим, а всяким васянам и бабкам сракам похуй, что всё тормозит, не работает, выглядит как оргазм шизофреника и всё в этом духе.
image.png326 Кб, 941x974
11 1382109
>>382107
Двачую, web 2.0. был ошибкой, но это неизбежно должно было произойти в связи с популяризацией интернета и компьютерных технологий. Вот на пике пример хорошего стиля: нейтральный спокойный фон, черный текст на белом фоне хорошим шрифтом, концентрация на информации, никаких отвлекающих картинок и анимации, только ссылки и текст. Благоря этому, кстати, страница весит максимально мало и загружается практически мгновенно.
12 1382120
>>382109
черно-белый стиль имеет очень высокий контраст, который далеко не всем нравится. я бы например сделал эту страницу менее контрастной в мягких цветах, аналоговая цветовая схема или что-то вроде. алсо т.к. бэк это кишки негра и вообще перегружать страницу это фу то я бы сделал чтобы весь текст генерился джаваскриптом динамически с помощью реакта и все это была бы одна страница

мимо воннаби джаваскриптмакака
image01res22.jpg256 Кб, 915x454
13 1382149
Двощ помогай
Пишу курсовик на тему "Распознавание неба на фотографии"
Речь идет о синем небе если облака и могут быть то немного. Хуярю на плюсах и библиотекой opencv. Нейросети и прочее не предлагать так как время поджимает. Сначала расписал тупо алгоритмы сегментации но препод такую хуйню не принял и поставил парашу в полугодии. Сейчас уже горит конкретно не знаю за что хвататься. Кто готов помочь отпишитесь расскажу поподробнее. Может закину копеечку какую на пиццу с пивасом хватит. Застрял на ситуации с пика. Посчитал градиент и видно что то что темное это небо. А че дальше делать и как это писать не представляю
14 1382164
>>382120

> перегружать страницу это фу


Пожри говна и сдохни, долбоёб.

> Я бы сделал чтобы весь текст генерился джаваскриптом динамически с помощью реакта и все это была бы одна страница


Почему эвтаназия незаконна?
15 1382266
Есть qt-мастера?
Как к rectangle или text свойство onClicked присобачить. Делаю датчики и хочу к ним присобачить Tooltip, но он требует окно собственно.
16 1382274
>>382266
Ты хочешь кликабельный лейбл сделать?
17 1382279
>>382274
Мне вообще либо к лейблу, либо к ректанглу нужно тултип присобачить
ytjtyjtyj.png92 Кб, 1596x820
18 1382280
>>382279
Пикрилейтед. Или тебя именно програмный путь интересует?
5t45t.png39 Кб, 1200x298
19 1382283
>>382279
Если програмно то тоже всё работает.
В чём проблема то?
20 1382294
>>382266

>onClicked


>Tooltip


Как это связано?
Вообще в кюмл клики присобачиваются оче просто к чему угодно с помощью
AnyItem {
MouseArea {
anchors.fill: parent
onClicked: { /code/ }
}
}
21 1382296
>>382294
Бля, чувак. Ты меня спас.
Вот что я и забыл, так это MouseArea.
Я забыл написать, что я qml ебеню, простите.
22 1382298
Всем привет. Какую книгу прочитать, чтоб прям завтра забахать чо-нибудь патипу Андертейл?
23 1382299
>>382298
Массивы, циклы и прочее говно изучал миллион раз
24 1382306
>>382298
Паттерны проектирования
25 1382315
>>382298
Программирование игр с SFML
26 1382386
>>382103

>мы все это сделаем


Зизз, ты?
27 1382391
>>382149
Попробуй большим медианным фильтром пройтись что-ли, затем выбери то, что осталось тёмным.
28 1382411
Двач, как указатель (любой обычный указатель, void* к примеру) перевести в std::string? Интернет хуйню выдаёт, указатели можно выводить в cout, но что-то не получается у меня перевести его в строку.
29 1382413
>>382411
что такое "перевести в std::string"? Записать содержимое адреса*
30 1382414
>>382413
Привести указатель к текстовому виду и записать в std::string к примеру. (явно не static_cast<std::string>(void))
31 1382416
>>382414
sprintf с %p тебе в помощь
32 1382417
>>382416
Для далбаёбов я тут специально написал
>>382411

> указатели можно выводить в cout, но что-то не получается у меня перевести его в строку

33 1382418
>>382417
sprintf не выводит в stdout ничего, "далбаёб" мамин.
34 1382419
>>382414
itoa не в стандарте, но там есть указание основы (16-чной для адресов)
35 1382420
>>382418
сам ты далбаёбю
36 1382423
>>382411
std::stringstream, не?
37 1382424
>>382418
Ладно, ладно, видимо на этот раз далбаёб здесь только я, я просто уже забыл сишные функции, всё проверил, всё работает, спасибо.
38 1382456
>>382391
нормально только все равно некоторые части остаются черными. Вот если бы начать заливать сверху то тогда нормально будет. Осталось понять как это делать
39 1382541
Блятьб, как проект на ебучей вижуал студио может использовать либу, но при этом она нигде в настройках проекта не указана? Нигде даже рядом с проектом не лежит либа. Что за хуйня?
40 1382549
>>382541
если ты не можешь найти это - то это не вижуал студия ебучая, а ты.

Про-тип - grep -rin для поиска текста из гит баша
41 1382554
Как в istream передать целую строку с пробелами:
friend std::istream&operator>>(std::istream&in, Movie&object) {
std::cout << "Movie name: "; in >> object.name;
std::cout << "Show time: "; in >> object.time;
...
...
}
Надо чтобы в object.name записывалась строчка с пробелами
42 1382559
спасибо
44 1382564
>>382563
А если у меня массив charов?
46 1382567
>>382566
недопустимый вызов нестатической функции-члена
47 1382569
Окей, я переделал под стринг, но теперь он перепрыгивает сразу на время сеанса и ничего не записывает в название
friend std::istream&operator>>(std::istream&in, Movie&object) {
std::cout << "Название:\ "; std::getline(in, object.name);
std::cout << "Время сеанса:\ "; std::getline(in, object.time);
std::cout << "Цена:\ "; std::getline(in, object.price);
std::cout << "Зал:\ "; std::getline(in, object.room);
return in;
}
48 1382572
>>382567
Потому что читать надо внимательнее.
>>382569

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


Опять же, читать надо внимательнее. По умолчанию сепаратор стоит '\n'. Непонятно, какой у тебя формат файла, может ты записал всё в одну строку и теперь искренне надеешься прочитать обратно так, как записывал.
Кстати, нахера тебе эти вызовы std::cout при чтении из потока?
49 1382575
>>382572
Записываю в бинарный файл в строку, да. cout'ы чтобы сказать пользователю, что вводить надо.
Извините меня, пожалуйста, но у меня до завтра курсач горит, а я не совсем выкупаю, что делаю.
50 1382576
>>382572
Подожди, я же еще в файл ничего не записываю на этом этапе, почему он сразу перепрыгивает на время?
51 1382577
>>382575

> Записываю в бинарный файл в строку, да.


Чё?

> cout'ы чтобы сказать пользователю, что вводить надо.


Ну так и пиши тогда cin, зачем тебе отдельная функция? Ты же понимаешь, что если на неё натравить ifstream, то у тебя на экране появятся ненужные строки

PS: никто в код твоего курсача смотреть не будет, пиши как тебе удобно
52 1382579
>>382576
Я не знаю, что ты там не так делаешь, но вот такая херня работает:
pastebin.com/Grbd5jKM
53 1382580
>>382579
Спасибо, дядь. У меня походу в другом месте где-то проблема, что он сразу перескакивает.
54 1382583
>>382579
В общем заколхозил, что он просто дважды спрашивает это и всё работает)
std::cout << ""; in.getline(object.name, 32);
std::cout << "Название: "; in.getline(object.name, 32);
55 1382595
>>382583
Не помню, cin буферизированый? Возможно ты что-то до этого вводил и поток не почистил
56 1382597
>>382595
До этого у меня менюшка через switch
cin>>choice;
switch(choise) {
case '2':
cin>>movie;
}
57 1382705
>>382597
У тебя после цифрового ввода остается '/n' в потоке. Гетлайн ее считывает и получает пустую строку. После ввода цифр делай cin.ignore(1000, '/n');
58 1382712
>>382705
Спасибо. Бтв, курсач всё-таки не написал и буду заново переделывать с нуля уже своё. Можешь совет дать?
У меня есть класс movie а ля сеансы в кинотеатре и мне нужно хранить все эти сеансы в бинарном файле. Как лучше сделать: 2 отдельных класса для сеанса и файла, или методы с работой с файлом просто в классе фильма сделать? И как лучше реализовывать поиск и редактирование?
59 1382716
>>382712
Показ фильма это данные в программе. За каждый показ отвечает объект твоего класса. Файл -- это способ вывода из программы. Твой класс должен отвечать и за возможность своего вывода. Короче: класс для сеанса и метод в нем для вывода.
60 1382722
>>382712

> У меня есть класс movie а ля сеансы в кинотеатре и мне нужно хранить все эти сеансы в бинарном файле. Как лучше сделать: 2 отдельных класса для сеанса и файла, или методы с работой с файлом просто в классе фильма сделать?


У класса Movie заводишь метод для сохранения/загрузки, делаешь ещё один класс, который будет иметь допустим std::vector<Movie>, вот у него и делай методы поиска/редактирования/etc. Заодно и сохранение всего списка.

> И как лучше реализовывать поиск и редактирование?


Поиск либо как find(enum критерий, строка), а внутри уже в зависимости от критерия использовать эту строку (например, для поиска по названию обычным find_if проходишься по вектору, предикат будет сравнивать название с аргументом, для поиска по году можешь сначала перевести строку в число и точно так же искать) ИЛИ сделать несколько разных методов findByName, findByYear и т.п.
Для редактирования можешь id какой-нибудь у фильма завести
61 1382726
>>382722
>>382716
Спасибо, мужики. Буду делать.
62 1382800
Есть один enum и функция

>operator<<(ostream, myEnum) {


> static std::map<MyEnum, std::string> map = {{Enum1, "Enum1"}, {Enum2, "Enum2"}};


> ostream<<map[myEnum];


> return ostream;


>}



Можно ли как-то заставить компилятор ругаться в случае, если значения enum'а обновили и они перестали совпадать с созданным map'ом?
63 1382811
>>382722

>У класса Movie заводишь метод для сохранения/загрузки


угу, классический антипаттерн universal object
64 1382873
Написал небольшую програмку. По задумке должна создавать .txt файл. И впринципе создаёт. Но с русским языком- беда. Даже сетлокаль не помогает
[CODE]
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(){
setlocale(LC_ALL, "Russian"); //Не помогает это дерьмо
string text;
cin >> text;
ofstream fout;
fout.open(text + ".txt");
system("pause");
return 0;
}
[/CODE]

Щас потестил cout << text + ".txt";
Почему-то и вывод тоже не работало. ХЗ кто виноват. Я или MINGW, но бля, чё делать?
65 1382882
Вопрос экспертам: почему порядок вычисления аргументов функции не определен? В этом есть смысл? Или по принципу "и так сойдет"?
66 1382919
>>382873
Проблема в кодировке самом терминале

system('chcp 1251');
или
#include <windows.h>
SetConsoleCP(1251);
SetConsoleOutputCp(1251);
должны решать проблему
67 1382944
>>382882
из соображений производительности и
из соображений чтобы удобней разрабам компиляторов было
изображение.png5 Кб, 596x84
68 1382972
>>382919
Дохера всего перепробовал. Даже скатился до стандартного вывода введёной фразы в консоль- не робит вообще ни как.
АЛСО файлы так же создаются в неверной кодировке.
69 1383024
>>382972
Попробуй wstring
70 1383049
>>382800

>Можно ли как-то заставить компилятор ругаться в случае, если значения enum'а обновили и они перестали совпадать с созданным map'ом?


Можно, но обычно костылями. Самый простой способ - это сразу энумы объявлять со строкой.
https://stackoverflow.com/questions/28828957/enum-to-string-in-modern-c11-c14-c17-and-future-c20
Ещё можно закостылить switch и предупреждения C4061/C4062.
71 1383064
>>382811
Значение знаешь?
72 1383065
>>383024
Пиздец, в 2019 советовать людям что-то кроме юникода
73 1383068
>>382919
Конпелятору попробуй поставить флаги -finput_charset=cp1251(или че у тебя там) -fexec_charset=cp866.
74 1383077
>>383065
Посоветуй сам тогда чт-нибудь. Эта хуета ни в какую не поддаётся, и не желает адекватно работать
75 1383085
>>383077
Советую перестать программировать на винде, например.
76 1383160
>>383077
Советую прекратить жрать пердоговно. В студии проекты по умолчанию юникодные. Вместо "ололо" пишешь L"ололо", вместо char - wchar_t, вместо printf - wprintf, и так далее.
77 1383191
>>383160
>>383065
В ответ на >>383024.

Бля, анон, надеюсь, ты прикалываешься.
78 1383194
>>383077
Добавлю. Ядро Windows, графическая подсистема и NTFS, начиная с NT 4.0, полностью на Unicode. Добавлены библиотеки для поддержки ANSI. Но часть вызовов из ANSI конвертируется в Unicode.
мимопроходил
79 1383197
Прочитал пару книжек по плюсам (прата, александреску) + практика около года. Для меня сейчас наиболее сложные вещи, в которых я хуево разбираюсь это аттрибуты (их я и не знаю, кроме [[noreturn]], который я узнал из предпреждений) , fold expressions вкупе с variadic temlates, сам язык темплейтов (в плане как вычислить факториал на этапе компиляции), множественное наследование от разных иерархично построенных классов в вирьуальном виде и нет одновременно (кто там кого перекрыает и с каким приоритетом - в душе не ебу)
, многопоточное проганье - вот за это вообще не шарю, и за пределами std тоже не шарю. Так вот, что и сколько мне нужно еще учиться, чтобы стать гуру в C++ (с учетом того, что вышеперечисленное я например уже выучил (авансом) )?
80 1383205
>>383197
Практика какая?
81 1383286
>>383205
Ну бля дохуя разной, в т. ч. проекты на github, игры там, sdl2 ncurses sfml. Но я прост не понимаю, типо все пиздят мол C++ дохуя сложный, его никто не знает и т. д, но во что эта сложность упирается? В изучение всевозможнвх бустов? В умение писать на темрлейтах тьюринг полные языки?
82 1383291
>>383197
Чтобы стать гуру С++ надо учиться всю жизнь
83 1383300
>>383291
Но на самом деле нужно быть не гуру c++, а разбираться в предметной области и библиотеках, в куче всякой хуйни типа вероятности отказа ячеек памяти, аппаратных багов и прочего.
84 1383413
>>383291
За всю жизнь с++ успеет устареть
85 1383414
>>383197
погоди, а какую книжку александреску ты читал? "современное проектирование" что ли? как ты ее читал, если не понимаешь "как вычислить факториал на этапе компиляции", там без понимания шаблонов вообще не стоит ее открывать, лол
86 1383427
>>383413
Пока что с релиза не устарел, а много воды утекло
87 1383440
https://ideone.com/m5IUBi

Какие возможные подводные камни? На идеоне с простым классом отрабатывает без проблем. В проекте начинает неистово жрать память на моменте с erase (доходит до 10+ ГБ отожранной оперативы и умирает)
88 1383443
>>383440
Видимо время затрачивается на ресайз вектора.
Вариант с vec.erase(vec.begin(), vec.begin()+1000) работает в 1000 раз быстрее.
Вариант с vec.erase(vec.begin(), vec.begin()+10000) работает мнгновенно
Если требуется контролируемые итерации по 1 шт, то vec.pop_back() работает с приемлемой скоростью.
Ща местные гуру разъяснят, мне тоже интересно.
89 1383444
Анон, а как правильно работать с кириллицей в винде?
Мне нужно прочитать кириллические значения из файла с кириллическим названием.

Сначала я ищу нужный файл в папке
wchar_t szPath[MAX_PATH];
GetCurrentDirectory(sizeof(szPath), szPath);
lstrcat(szPath, mask);
hf = FindFirstFile(szPath, &fd);
etc.

Файлы с кириллицей в названии я не нахожу.
Ок, пишу setlocale(LC_ALL, "russian");

Файлы с кириллицей начинают находиться.
Начинаю читать их при помощи кода
std::wstring line;
std::wifstream in(name);
if (in.is_open()){
while (getline(in, line)){
std::wcout << "readed: " << line.c_str() << std::endl;
}}
in.close();

Читаются 2 символа "Ee".
Отрубаю setlocale(LC_ALL, "russian") и хардкожу название файла.
Файл читается нормально.

Получается что я могу или читать файл или искать файл.
Как делается правильно то?
89 1383444
Анон, а как правильно работать с кириллицей в винде?
Мне нужно прочитать кириллические значения из файла с кириллическим названием.

Сначала я ищу нужный файл в папке
wchar_t szPath[MAX_PATH];
GetCurrentDirectory(sizeof(szPath), szPath);
lstrcat(szPath, mask);
hf = FindFirstFile(szPath, &fd);
etc.

Файлы с кириллицей в названии я не нахожу.
Ок, пишу setlocale(LC_ALL, "russian");

Файлы с кириллицей начинают находиться.
Начинаю читать их при помощи кода
std::wstring line;
std::wifstream in(name);
if (in.is_open()){
while (getline(in, line)){
std::wcout << "readed: " << line.c_str() << std::endl;
}}
in.close();

Читаются 2 символа "Ee".
Отрубаю setlocale(LC_ALL, "russian") и хардкожу название файла.
Файл читается нормально.

Получается что я могу или читать файл или искать файл.
Как делается правильно то?
90 1383446
>>383440
проблема в том что ты не понимаешь, как устроен вектор
проблема в том, что удаление первого элемента, как и удаление элементов из середины вектора - дорогая операция
91 1383449
>>383444
В 21 веке интернета, международного текста, неиспользование юникода, свободно поддерживающего все языки сразу, должно быть законодательно объявлено вредительством против человечества и наказываться кастрацией и пожизненными принудительными работами на лесоповале в Колыме.
92 1383451
>>383444

>>std::wcout << "readed: "


std::wcout << l"readed: " хотя к твоей проблеме и не относится.
93 1383452
>>383440
erase шифтит все элементы вектора на один, итого - у тебя N^2 сложность
94 1383454
>>383449
>>383451
Переписал всё с wchar_t на char и всё работает корректно.
95 1383458
>>383454
Зря, зря, зря... Лучше бы boost::filesystem прикрутил. заодно и кросплатформенно
96 1383462
>>383454
В 2019 году говновысер работает только с одним языком, это у него "коррректно". Корректно - убивать таких уродов.
97 1383465
>>383446
>>383452
Я понимаю, что это говнокод и будет долго работать. Как и всё, связанное с большими векторами, лол.

Я не могу понять, почему начинает заниматься память в огромных масштабах.
98 1383467
>>383458
Чем тебе filesystem из std не нравится?
99 1383469
>>383465
Попробуй erase через remove сделать, чтобы удалять не с начала вектора первый элемент, а с конца почитай, как remove работает.
И ты компилишь в дебаге или релизе? Я не такой гуру, чтобы точно знать тонкости и разницу в видах сборки, но мои скудные знания дают предположение, что это может сыграть свою роль.
100 1383483
>>383465
Конкретно в этом примере или с твоим классом?
Потому что здесь память жрать и правда нечему. А вот у тебя может быть утечка памяти в деструкторе или конструкторе копирования/перемещения.
101 1383501
>>383467
Тем что он (since C++17)
102 1383514
>>382109
А все потому что его писал Бог Патрег
103 1383517
>>383414
очевидно нубовскую "Стандарты погромирования"
104 1383524
>>383517
а, ясненько
105 1383528
>>383465

>Я не могу понять, почему начинает заниматься память в огромных масштабах.


потому что ты не понимаешь, что происходит в векторе при удалении первого элемента
а происходит кое-что (что ты должен знать так то) люто непроизводительное
но объяснять я этого не буду здеся
gotrejectedtodayfeelsbadmangoodlucktoallyou9gaggersoutthere[...].jpg31 Кб, 640x426
106 1383553
Объясните. Только вкатился в языки.

Выбрал почему то с++. На ваш взгляд хороший язык? Могу поднимать 300к наносек 50к на нем? Вообще перспективный язык для вкатывальщиков? Чем он отличается от С и C#? Или все как то взаимосвязано. Вроде С++ дополнение к С.

Прошу объяснить адекватно.
107 1383559
>>383553
Все остальные языки это как бы подмножество C++
108 1383581
>>383449
Алло, что такое байты и память, алло блять. Когда не необходимо на юникоде писать и нужна память, используй аски
109 1383583
110 1383586
>>383581
Utf-8 слышал такое? ASCII сосатб
111 1383587
>>383553

> Могу поднимать 50к на нем?


Я примерно столько же и получал на старте без вышки
112 1383588
>>383586
Я ещё слышал, что вместо написания компактных программ, люди покупают память, это так?
Я думаю да, ведь долбоебы все на utf8
113 1383591
>>383553
50 можно. До сотни можно в Москве. Больше уже сложнее. Если нужны деньги, то лучше питон или жс.
114 1383593
>>383501
Какой ужас, последний стандарт. Да, чего это я, надо как настоящий дед писать на C++98, вот где скилл показывали.
115 1383595
>>383593
Не ерничай. Новый проект начали на C++17, правда там без работы с fs. А старые с 11 портировать пока никто не будет.
116 1383606
>>383591
Пиздец, какая сотка в москве, ты ебобо? Это зп джуна однодневного
117 1383608
>>383606
Толсто
118 1383613
У меня вопрос к вам, уважаемые:
Я хочу сделать variadic функцию, но мне нужно передавать в нее два инта, которые имеют разные значения. (Один - высота, другой - ширина) причем я не могу передавать их структурой, т.к. я хочу, чтобы можно было передать что-то одно, а не целую структуру. Короче, как мне различить два инта из параметров?
119 1383620
>>383588

> Я ещё слышал, что вместо написания компактных программ, люди покупают память, это так?


> Я думаю да, ведь долбоебы все на utf8


Гляньте, весь мир - долбаёбы, один ты знаешь, как писать софт.
UTF8 при использовании только ASCII символов занимает столько же памяти, сколько и ASCII.
120 1383625
>>383613
То есть ты точно знаешь, сколько у тебя аргументов будет, но всё равно хочешь использовать variadic функцию? В дурке амнистия?
121 1383629
>>383613
Создай специальный класс, по сути обертку над структурой, которая будет в полях хранить значения аргументов. Создай сеттеры для этих полей. Дефолтный конструктор этого класса будет полям присваивать значения по-умолчанию. Если нужно отслеживать, были ли переданы те или иные аргументы, заведи в пару каждому полю флаг. Для удобства пусть каждый сеттер возвращает ссылку на себя (на объект этого класса, то есть *this). Тогда ты сможешь писать вот так:

Foo(Params().Width(my_width).Height(my_height));
Foo(Params().Height(my_height));
Foo(Params().Width(my_width));

И тп, а внутри будешь делать:

if (params.HasHeight() && params.HasWidth()) {
//есть и ширина, и высота
}
else if (params.HasHeight()) {
//логика на случай, когда дали только высоту
}

Немного заебно, но это самый расширяемый вариант, да и вообще полезный паттерн.
122 1383633
>>383625
Я знаю сколько у меня аргументов будет, но я хочу функцию в которой (1)не принципиален порядок аргументов и (2)можно вызывать с произвольным кол-вом аргументов (их всего 10) Например, так: foo(width) foo(height, witdth) foo(color, width, height) и т.д.
123 1383636
>>383629
Извини, но твой варик мне не особо подходит. Мне это нужно, чтобы уменьшить кол-во букав. Дело в том, что я использую билдер, для создания объекта класса, а хочу, чтобы была вариадик функция в которую я могу передать сам билдер, а потом параметры.
124 1383640
>>383636
Типа так: setBuilder(ОbjectBuilder(), param1, param2, param3) и у всех парамов произвольный порядок и можно их вообще не задавать (типа так - setBuilder(ОbjectBuilder()) )
125 1383642
>>383636
Не понял тебя. Допустим ты смог написать вот это:

>вариадик функция в которую я могу передать сам билдер, а потом параметры


>не принципиален порядок аргументов


>можно вызывать с произвольным кол-вом аргументов


Разве в таком случае необходимость в билдере не отпадет?
Не думаю, что такую функцию возможно написать без именованных аргументов, которые запланированы на 20 год.
126 1383645
>>383633

> (1)не принципиален порядок аргументов


И как же ты собираешься что-то осмысленное с ними делать, если ты не знаешь какой именно у тебя аргумент?

> (2)можно вызывать с произвольным кол-вом аргументов (их всего 10) Например, так: foo(width) foo(height, witdth) foo(color, width, height) и т.д.


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

>Разве в таком случае необходимость в билдере не отпадет?


Мне в некоторых местах нужен именно сам билдер. Например, когда кол-во задаваемых параметров меньше 2(такое часто бывает). В общем, у меня вопрос, как можно отличить один инт от другого?
128 1383649
>>383645

>И как же ты собираешься что-то осмысленное с ними делать, если ты не знаешь какой именно у тебя аргумент?


Именно это я у вас и спрашиваю. Как можно один инт от другого отличить? Я этого не знаю. Можно может, например, создать какой-то свой тип который будет просто оберткой над интом?

>десять методов


>не еби голову ни себе, ни тем, кто твой код поддерживать будет.

129 1383651
>>383647

>как можно отличить один инт от другого?


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

>Ну так запили десять методов, не еби голову ни себе, ни тем, кто твой код поддерживать будет.


Эти 10 функций, что сетят параметры билдера уже есть. Проблема в том, что когда мне нужно засеттить все 10 параметов, например, это выглядит так:ObjectBuilder().withParam1().withParam2().withParam3().withParam4().withParam5().withParam6().withParam7().withParam8().withParam9().withParam10().getResult();
А я хочу так: createBuilder(ObjectBuilder(), param1, param3, param2, param5, param4, param7, param6, param8, param10, param9);
Понятно?
131 1383653
>>383649

> Как можно один инт от другого отличить?


Надеюсь, ты уже понял ответ...

>Можно может, например, создать какой-то свой тип который будет просто оберткой над интом?


Конечно можно, но если я тебя встречу в реальной жизни, то скорее всего сломаю нос. Серьезно, бля, перегрузки писать не хочу, хочу обёртку над интом писать. Пиздец ты гений. Зачем тебе вообще аргументы местами менять? Ты что, на вызывающей стороне не можешь их в правильном порядке расставить?

В общем,

> не еби голову ни себе, ни тем, кто твой код поддерживать будет.

132 1383655
>>383653

>Зачем тебе вообще аргументы местами менять?


Ты совсем бака? А если я захочу засеттить последние три параметра. Мне нужно будет написать:
createBuilder(ObjectBuilder(), param1, param2, param3, param4, param5, param6, param7, param8, param9, param10)
Вместо:
createBuilder(ObjectBuilder(), param8, param9, param10)
Понимаешь, почему мне не нужна перегрузка?
133 1383656
>>383652
Хотя нет, у меня есть безумная идея. Пишешь функцию, которая принимает 10 аргументов и собирает из них билдер в стандартном порядке:

>ObjectBuilder().withParam1().withParam2().withParam3().withParam4().withParam5().withParam6().withParam7().withParam8().withParam9().withParam10()


Когда нужно вызвать функцию в особом порядке, делаешь std::bind и нужным образом расставляешь плейсхолдеры

>std::bind(foo, _1, _3, _2, _5, _4, _7, _6, _8, _10, _9)


А затем вызываешь в стандартном порядке

>createBuilder(ObjectBuilder(), param1, param2, param3...)


Может ты сможешь из этой идеи что-то толковое сделать, но пока это довольно сомнительно.
134 1383658
>>383652

> >Ну так запили десять методов, не еби голову ни себе, ни тем, кто твой код поддерживать будет.


> Эти 10 функций, что сетят параметры билдера уже есть. Проблема в том, что когда мне нужно засеттить все 10 параметов, например, это выглядит так:ObjectBuilder().withParam1().withParam2().withParam3().withParam4().withParam5().withParam6().withParam7().withParam8().withParam9().withParam10().getResult();


> А я хочу так: createBuilder(ObjectBuilder(), param1, param3, param2, param5, param4, param7, param6, param8, param10, param9);


> Понятно?


Попробуй передавать функтор, у которого билдер может спрашивать, нужен ли параметр и его значение.
Что-то типа
std::function<std::optional<int>(enParamType)> getParam
Параметры придется описать енамом (ну а хули ты хотел-то?). Вызывающая сторона будет писать что-то вроде
auto getParamFn = [](enParamType t) -> std::optional<int>
{
....if(t == param1)
........return myParam1;
....else
.........

....return std::nullopt;
}

builder.Build(getParamFn)
135 1383659
>>383656
Не, дело не в том, что мне в особом порядке нужно их вызывать, дело в том, что я хочу сеттить в функции только некоторые из параметров (как я написал в этом посте >>383655)
136 1383664
>>383659
Так что, нельзя так? Я в принципе не против такой хери createBuilder(ObjectBuilder(), width(5), height(20), colorR(255)). Но, как ее лучше реализовать?
137 1383665
>>383659
>>383664
Ну вот я тебе уже ответил, дискасс
>>383658
138 1383666
>>383665
А нельзя просто обертку типа такой?
struct Width
{
int _width;
Width(int w):_width(w){}
}
139 1383672
>>383666
Ну и что ты с ней делать будешь?
140 1383673
>>383672
Передавать в вариадик функцию. createBuilder(ObjectBuilder(), width(5), height(20), colorR(255)) типа так.
141 1383675
>>383673
Ну и что? Тип-то тебе всё равно надо как-то различать, хоть это и обёртка (или опять же, десять перегрузок на каждую обёртку)
142 1383677
>>383675

>Тип-то тебе всё равно надо как-то различать, хоть это и обёртка


Ну, да в плюсах же вроде бы есть способ сравнить типы? >или опять же, десять перегрузок на каждую обёртку
Всмысле? Будет одна вариадик функция, куда я все буду пихать и там в зависимости от типа буду вызывать методы билдера.
143 1383685
>>383677
Говнокод
144 1383688
>>383685
Почему? Как лучше? За этим я в этот тред и пришел. Как можно не говнокод сделать?
145 1383689
>>383677

> Ну, да в плюсах же вроде бы есть способ сравнить типы?


Подумай десять тысяч раз, перед тем, как сравнивать типы.

> Всмысле? Будет одна вариадик функция, куда я все буду пихать и там в зависимости от типа буду вызывать методы билдера.


Можешь обертки свои наследовать от какой-нибудь хуйни с методом getType(), где будешь возвращать свой тип (enum), потому что то, что предлагает язык это совсем пиздец.
146 1383692
147 1383744
>>383553
Выкатывайся. C++ нинужен для ньюфагов в 2019.
Java|JS|Python|C# намного лучше.
148 1383764
>>382027
Самый лучший гайд - https://bazel.build/
рили, cmake - тула из прошлого века с кастомным наркоманским языком описания сборки
15405850926620.jpg190 Кб, 900x825
sage 149 1383783
>>383553
Можешь плюсы выучить для общего понимания. Для заработка советую какой-нибудь С# с вкатом в .NET или Пайон.
Веб-хуеб - js/css/html.
150 1383789
>>383689

>Подумай десять тысяч раз, перед тем, как сравнивать типы


std::is_same + магия перегрузок (или if constexpr) может как нибудь помочь тебе
Мимопроходил-кун
151 1383790
>>383783

>Веб-хуеб - js/css/html


Сюда и >>383783 >.NET или Пайон
Можешь дописывать в веб хуйню.
На дотнете так точно придется пердолить фронт на ангуляре либо нокауте.
152 1383791
>>383764
А у базеля типа не кастомный и не наркоманский?
153 1383806
>>383789
Я имел ввиду то, что такие заклинания в реальной жизни не кастуют
Нариман Намазов 155 1383883
Посоветуйте нуфагу, как вкатиться в C++. Есть ли какие-то реально полезные книги/сайты и пр? Пока что могу только в мертвый Pascal.
И еще один вопрос, хотя возможно не по теме. Что делать с тем чувством лени, когда начинаешь учитить язык, а после бросаешь из-за лени
156 1383914
Комрады, есть кто по QT? Короче написал прогу, она сначала считывает большое количество файлов, потом строит по считанным данным из структур графики. Решил сделать считывание файлов отдельным потоком через QThread (компилятор msvc2010). Вызываю старт треда при загрузке формы. Но фишка в том, что данные он считывает только после перезагрузки формы или обновления формы. Собственно вопрос. Как мне вручную остановить этот тред или же отладить это дело? Не понимаю как правильно его делать
157 1383920
>>383914
Кидай код, телепатов немаэ.
158 1383984
>>383920
Поток создаю так

QThread* thread = new QThread();

this->moveToThread (thread);

connect(thread, SIGNAL(started()), this, SLOT(slotReadFiles()));
connect(thread,SIGNAL(finished()),thread,SLOT(deleteLater ()));
connect(this ,SIGNAL(finished()),thread,SLOT(quit ()));

thread->start(QThread::HighPriority);

slotReadFiles() - слот где идет считывание файлов в структуры

Единственное что, в этом слоте идет создание и удаление объектов класса. На всякий случай и его прикреплю

if (filename == "stream.txt")delete [] streamView;
if (filename == "meas.txt") delete [] measView;
if (filename == "glo.txt") delete [] zrvView;
if (filename == "decoder.txt")delete [] decoderView;

if (filename == "stream.txt")streamView = new stream [ BIS.size() - 1 ];
if (filename == "meas.txt") measView = new meas [ BIS.size() - 1 ];
if (filename == "glo.txt") zrvView = new zrv [ BIS.size() - 1 ];
if (filename == "decoder.txt")decoderView = new decoder [ BIS.size() - 1 ];

int i = 0;
if (filename == "stream.txt") i = 0;
if (filename == "decoder.txt") i = 1;
if (filename == "meas.txt") i = 2;
if (filename == "glo.txt" || filename == "gps.txt" ||
filename == "bdu.txt" || filename == "gal.txt") i = 3;

switch(i){

case (0) : {

streamView->items_.clear();
QDate dBegin = ui.dateEditCurrent->date();
QDate dEnd = ui.dateEditNext->date();

int j = 0;

streamView[j].items_.clear();

for(; dBegin <= dEnd; dBegin = dBegin.addDays(1)){

if (dBegin <= dEnd) {

YYYY = dBegin.toString("yyyy");
DD = dBegin.toString("dd") ;
MM = dBegin.toString("MM") ;

for (int j = 0;j < BIS.size()-1; j++){
NNNN_ = BIS[j];
setMaskDir(path);
u = j;

streamView[j].readFile(path);

}
}
j++;
}
break;
}
case (1) : {

decoderView->items_.clear();
QDate dBegin = ui.dateEditCurrent->date();
QDate dEnd = ui.dateEditNext->date();
int j = 0;

for(; dBegin <= dEnd; dBegin = dBegin.addDays(1)){

if (dBegin <= dEnd) {

YYYY = dBegin.toString("yyyy");
DD = dBegin.toString("dd") ;
MM = dBegin.toString("MM") ;

for (int j = 0; j < BIS.size()-1; j++){
NNNN_ = BIS[j];
setMaskDir(path);
decoderView[j].readFile(path);
}
}
j++;
}

break;
}

case (2) : {
measView->items_.clear();
QDate dBegin = ui.dateEditCurrent->date();
QDate dEnd = ui.dateEditNext->date();
int j = 0;

for(; dBegin <= dEnd; dBegin = dBegin.addDays(1)){

if (dBegin <= dEnd) {

YYYY = dBegin.toString("yyyy");
DD = dBegin.toString("dd") ;
MM = dBegin.toString("MM") ;

for (int i = 0;i < BIS.size()-1; i++){
NNNN_ = BIS;
setMaskDir(path);
measView.readFile(path);
}

}
j++;
}
break;
}

case (3) : {

int j = 0;

for (int i = 0; i < 4;i++) {

if (i == 0){

QDate dBegin = ui.dateEditCurrent->date();
QDate dEnd = ui.dateEditNext->date();

filename = "glo.txt";

for(; dBegin <= dEnd; dBegin = dBegin.addDays(1)){

if (dBegin <= dEnd) {

YYYY = dBegin.toString("yyyy");
DD = dBegin.toString("dd") ;
MM = dBegin.toString("MM") ;

for (int j = 0;j < BIS.size()-1; j++){

NNNN_ = BIS[j];
setMaskDir(path);
zrvView[j].readFileGlo(path);
}
}

j++;
}
}
if (i == 1){

QDate dBegin = ui.dateEditCurrent->date();
QDate dEnd = ui.dateEditNext->date();

filename = "gps.txt";

for(; dBegin <= dEnd; dBegin = dBegin.addDays(1)){

if (dBegin <= dEnd) {

YYYY = dBegin.toString("yyyy");
DD = dBegin.toString("dd") ;
MM = dBegin.toString("MM") ;

for (int j = 0;j < BIS.size()-1; j++){

NNNN_ = BIS[j];
setMaskDir(path);
zrvView[j].readFileGps(path);
}
}

j++;
}
}

if (i == 2){

QDate dBegin = ui.dateEditCurrent->date();
QDate dEnd = ui.dateEditNext->date();

filename = "gal.txt";

for(; dBegin <= dEnd; dBegin = dBegin.addDays(1)){

if (dBegin <= dEnd) {

YYYY = dBegin.toString("yyyy");
DD = dBegin.toString("dd") ;
MM = dBegin.toString("MM") ;

for (int j = 0;j < BIS.size()-1; j++){

NNNN_ = BIS[j];
setMaskDir(path);
zrvView[j].readFileGal(path);

}
}

j++;
}
}

if (i == 3){

QDate dBegin = ui.dateEditCurrent->date();
QDate dEnd = ui.dateEditNext->date();

filename = "bdu.txt";

for(; dBegin <= dEnd; dBegin = dBegin.addDays(1)){

if (dBegin <= dEnd) {

YYYY = dBegin.toString("yyyy");
DD = dBegin.toString("dd") ;
MM = dBegin.toString("MM") ;

for (int j = 0;j < BIS.size()-1; j++){

NNNN_ = BIS[j];
setMaskDir(path);
zrvView[j].readFileBdu(path);

}
}

j++;
}
}

}
break;
}
}
158 1383984
>>383920
Поток создаю так

QThread* thread = new QThread();

this->moveToThread (thread);

connect(thread, SIGNAL(started()), this, SLOT(slotReadFiles()));
connect(thread,SIGNAL(finished()),thread,SLOT(deleteLater ()));
connect(this ,SIGNAL(finished()),thread,SLOT(quit ()));

thread->start(QThread::HighPriority);

slotReadFiles() - слот где идет считывание файлов в структуры

Единственное что, в этом слоте идет создание и удаление объектов класса. На всякий случай и его прикреплю

if (filename == "stream.txt")delete [] streamView;
if (filename == "meas.txt") delete [] measView;
if (filename == "glo.txt") delete [] zrvView;
if (filename == "decoder.txt")delete [] decoderView;

if (filename == "stream.txt")streamView = new stream [ BIS.size() - 1 ];
if (filename == "meas.txt") measView = new meas [ BIS.size() - 1 ];
if (filename == "glo.txt") zrvView = new zrv [ BIS.size() - 1 ];
if (filename == "decoder.txt")decoderView = new decoder [ BIS.size() - 1 ];

int i = 0;
if (filename == "stream.txt") i = 0;
if (filename == "decoder.txt") i = 1;
if (filename == "meas.txt") i = 2;
if (filename == "glo.txt" || filename == "gps.txt" ||
filename == "bdu.txt" || filename == "gal.txt") i = 3;

switch(i){

case (0) : {

streamView->items_.clear();
QDate dBegin = ui.dateEditCurrent->date();
QDate dEnd = ui.dateEditNext->date();

int j = 0;

streamView[j].items_.clear();

for(; dBegin <= dEnd; dBegin = dBegin.addDays(1)){

if (dBegin <= dEnd) {

YYYY = dBegin.toString("yyyy");
DD = dBegin.toString("dd") ;
MM = dBegin.toString("MM") ;

for (int j = 0;j < BIS.size()-1; j++){
NNNN_ = BIS[j];
setMaskDir(path);
u = j;

streamView[j].readFile(path);

}
}
j++;
}
break;
}
case (1) : {

decoderView->items_.clear();
QDate dBegin = ui.dateEditCurrent->date();
QDate dEnd = ui.dateEditNext->date();
int j = 0;

for(; dBegin <= dEnd; dBegin = dBegin.addDays(1)){

if (dBegin <= dEnd) {

YYYY = dBegin.toString("yyyy");
DD = dBegin.toString("dd") ;
MM = dBegin.toString("MM") ;

for (int j = 0; j < BIS.size()-1; j++){
NNNN_ = BIS[j];
setMaskDir(path);
decoderView[j].readFile(path);
}
}
j++;
}

break;
}

case (2) : {
measView->items_.clear();
QDate dBegin = ui.dateEditCurrent->date();
QDate dEnd = ui.dateEditNext->date();
int j = 0;

for(; dBegin <= dEnd; dBegin = dBegin.addDays(1)){

if (dBegin <= dEnd) {

YYYY = dBegin.toString("yyyy");
DD = dBegin.toString("dd") ;
MM = dBegin.toString("MM") ;

for (int i = 0;i < BIS.size()-1; i++){
NNNN_ = BIS;
setMaskDir(path);
measView.readFile(path);
}

}
j++;
}
break;
}

case (3) : {

int j = 0;

for (int i = 0; i < 4;i++) {

if (i == 0){

QDate dBegin = ui.dateEditCurrent->date();
QDate dEnd = ui.dateEditNext->date();

filename = "glo.txt";

for(; dBegin <= dEnd; dBegin = dBegin.addDays(1)){

if (dBegin <= dEnd) {

YYYY = dBegin.toString("yyyy");
DD = dBegin.toString("dd") ;
MM = dBegin.toString("MM") ;

for (int j = 0;j < BIS.size()-1; j++){

NNNN_ = BIS[j];
setMaskDir(path);
zrvView[j].readFileGlo(path);
}
}

j++;
}
}
if (i == 1){

QDate dBegin = ui.dateEditCurrent->date();
QDate dEnd = ui.dateEditNext->date();

filename = "gps.txt";

for(; dBegin <= dEnd; dBegin = dBegin.addDays(1)){

if (dBegin <= dEnd) {

YYYY = dBegin.toString("yyyy");
DD = dBegin.toString("dd") ;
MM = dBegin.toString("MM") ;

for (int j = 0;j < BIS.size()-1; j++){

NNNN_ = BIS[j];
setMaskDir(path);
zrvView[j].readFileGps(path);
}
}

j++;
}
}

if (i == 2){

QDate dBegin = ui.dateEditCurrent->date();
QDate dEnd = ui.dateEditNext->date();

filename = "gal.txt";

for(; dBegin <= dEnd; dBegin = dBegin.addDays(1)){

if (dBegin <= dEnd) {

YYYY = dBegin.toString("yyyy");
DD = dBegin.toString("dd") ;
MM = dBegin.toString("MM") ;

for (int j = 0;j < BIS.size()-1; j++){

NNNN_ = BIS[j];
setMaskDir(path);
zrvView[j].readFileGal(path);

}
}

j++;
}
}

if (i == 3){

QDate dBegin = ui.dateEditCurrent->date();
QDate dEnd = ui.dateEditNext->date();

filename = "bdu.txt";

for(; dBegin <= dEnd; dBegin = dBegin.addDays(1)){

if (dBegin <= dEnd) {

YYYY = dBegin.toString("yyyy");
DD = dBegin.toString("dd") ;
MM = dBegin.toString("MM") ;

for (int j = 0;j < BIS.size()-1; j++){

NNNN_ = BIS[j];
setMaskDir(path);
zrvView[j].readFileBdu(path);

}
}

j++;
}
}

}
break;
}
}
159 1384012
>>383984

>this->moveToThread


зачем?
160 1384046
>>384012
Так чтобы наполнить объект из своего класса. В документации, по крайней мере, писалось так
161 1384049
А ДАВАЙТЕ СДЕЛАЕМ ЭТОТ МЕТОД ШАБЛОННЫМ!!1
@
ДАВАЙТЕ!
@
ДЕЛАЮТ СПЕЦИАЛИЗАЦИЮ ДЛЯ КАЖДОГО ТИПА
162 1384053
>>384049
Зато шаблоны - модно, стильно, молодежно.
163 1384134
>>383791
Ясен хуй. Говняный питон лучше макросопараши из cmake
164 1384389
Кто-то играет на codeforces? Это полезная штука? Она может как-то помочь при устройстве на работу?
165 1384394
>>384046
Давай больше контекста, а то непонятно нихера, что ты собираешься делать.
только без простыни методов
166 1384395
При чтении объекта из файла у меня в начале каждого поля появляются 2 русские буквы. Что это может быть? как фиксить?
167 1384400
>>384395
https://en.m.wikipedia.org/wiki/Byte_order_mark

Сохраняй файлики в utf-8 без BOM
168 1384408
Тусует кто на C++ Russia 2019?
169 1384426
>>384389
ИногДа, но лучше литкод.
170 1384438
Есть классы Viewer и Movie и производный от них двоих Ticket. Как мне сделать так, чтобы пользователь мог посмотреть купленные билеты?
171 1384473
>>384438
Препода нахуй, пользователя на kassir.ru
172 1384481
>>384438
А твой билет является и зрителем и фильмом? Или чем-то одним из них?
173 1384485
>>381995 (OP)
Какой Qt лучше установить на Ubuntu, который в репозитории, с помощью apt, или самый новый, с сайта разработчиков, или какие еще есть варианты? Если с сайта качать, его же ведь автоматически обновить не получиться.
174 1384516
>>384485

>Qt


Тебе в тред php/js
175 1384569
Такой вопрос, как правильно сформулировать вопрос для гугла:
Как устроен контрол типа ListBox, тоесть один поток постоянно перерисовывает данные из некого контейнера, а другой - добавляет данные в этот контейнер. Что там происходит? Как избегается состояние гонки? mutex?
176 1384570
>>384485
Там же свой онлайн установщик, не?
177 1384572
>>384569

>постоянно


Зачем? Только если получит сообщение об изменении контента.
178 1384574
>>384572
Допустим поступил сигнал на добавление и острисовку одновременно (утрирую)

Если конкретно, то ImGui нет контролов, но есть контейнер с данными)
179 1384758
>>384570
Есть, да, думаю, сгодится
180 1384947
>>384574
Видимо добавление с мьютексом идет.
181 1384967
Как я могу при вводе числа 120 , перевести его в символ x
182 1384994
>>384967
static_cast<char> после того как считаешь это число в интовую переменную.
cpp.PNG57 Кб, 1406x771
183 1385001
Двач, подскажи, где я объебался.
184 1385020
>>385001
#include <functional>
185 1385045
>>385001
y = ...
return y
Чему сразу не return
186 1385123
>>385001
У меня такая хуйня была из-за передачи через &.
Попробуй без нее, если выйдет - сделай current position глобальной переменной.
P.S.: не join, а detach, иначе будешь ждать окончания выполнения каждого вызова, а ты же хочешь параллельности.
187 1385142
>>385123

>не join, а detach


UB
188 1385150
>>385001
Насколько я помню, параметры-ссылки надо вручную в std::ref оборачивать.
189 1385155
>>385045
C O P Y E L L I S I O N
O
P
Y
E
L
L
I
S
I
O
N
190 1385197
>>385150
двачую
191 1386123
забавно, в llvm будет официально еще один компилятор - фортрана
а делали его ребята из nvidia
2uiNebpcA4[1].jpg19 Кб, 282x371
192 1386275
193 1386292
чел из яндекса, один из тех что делал курсы по крестам на курсере, в видео обмолвился, что их проходит около 25 тысяч человек на тот момент
вы только вдумайтесь, 25 (!) тыщ вкатывальщиков на платных курсах
по крестам
целая армия, бля
194 1386293
этим летом у июней будет бойня, я чувствую это
по 500 человек на место лол
195 1386298
>>386292
Щас бы за вкатывальщиков переживать
196 1386301
>>386292
на курсере курсы можно аудировать бесплатно, но и платно их ради сертификата много кто проходят. 25к со всего мира сравнительно немного, большая часть не вкатывальщики даже а уже работающие прилепить что-нибудь на линкедин или студенты или просто любопытствующие, немало буржуев просто собирают сертификаты, плюсы фигня для вката же
197 1386400
>>386292

>что их проходит около 25 тысяч человек


В смысле заканчивает с сертификатом? Или смотрит только первый урок и в ужасе убегает?
198 1386541
>>386293
Откуда цифры?
199 1386594
>>384516
Почему?
200 1386596
>>386301

>на курсере курсы можно аудировать бесплатно, но и платно их ради сертификата много кто проходят


неа ((
если бесплатно, то не будет доступа к заданиям и к проверяющей системе
а без выполнения заданий смотреть видео - пустое дело
201 1386603
Сейчас хоть сколько-то востребован бэкэнд на плюсах? Очень нравится сфера компьютерных сетей и Интернета, и в то же время люблю С++ от js убежал в ужасе , но не знаю нужно ли вообще это учить. Геймдев не привлекает вообще
202 1386668
>>386603
во всех больших конторах бэкенд на плюсах.
203 1386706
>>386668
Как попасть в большую контору?
204 1386736
Аноны, помогите срочно, че это говно в сшеле не работает?
https://pastebin.com/wgLiZU5x
205 1386794
>>386736
Что означает запись

>void Rect;


И почему ты передаешь в функцию которая не принимает параметры какие-либо значения?
206 1386802
>>386794
Понимать бы вообще хоть что-то. Просто попросили помочь, но даже гугля ошибки толком ничего найти не получается.
207 1386810
>>386802
Список ошибок то дай, при запихивании твоего кода в компилятор ругается на внешние символы, которые пастбин сам преобразовывает
209 1386824
>>386812
Я не ебу за твои методы треугольников, но вот тебе код который хотя бы начинает выполняется, с моими допущениями что там имелось в виду.
https://pastebin.com/5y5ZBXfp
210 1386832
>>386812
Но а вообще ты бы хоть погуглил перед тем как спрашивать.
Готовые реализации каждого из методов в инете.
211 1386834
>>386824
https://pastebin.com/M4DgPnUZ
Все равно чет не так.
212 1386845
>>386834
LMGTFY
https://stackoverflow.com/questions/1374037/ambiguous-overload-call-to-absdouble
Возможно, самое простое решение - заменить abs на fabs
213 1386846
>>386834
Блять ты скопировал откуда-то код, у тебя операторы ввода и вывода заменились на треугольные кавычки, и компилятор тебе открыто говорит что он не понимает что ты от него хочешь. Во вторых у тебя почему-то стоит точка с запятой после обьявления функции, и отсутствует список формальных параметров а потом ты еще и передаешь в эту недофункцию какие-то значения.
214 1386864
>>386802
Она все равно тебе не даст
215 1387100
>>381995 (OP)
Доброго вечерочка, друзья. Примерно года два назад начал немного увлекаться программированием на C++, до этого никакого опыта в разработке у меня не было. Наверное, сейчас разбираюсь в механиках языка на уровне чуть ниже среднего (как мне кажется) - это STL, ООП, немного шаблонов и лямбд. Но всё это теория. Есть ли какие-либо протоптанные дорожки постижения плюсов на практике? Какие задачи стоит решать для увеличения опыта в разработке на C++? Уж очень мне понравилось программировать и я хотел бы в этом развиваться, книг я набрал, но в каких областях стоит начать применять полученные знания?
216 1387101
>>387100
Нынче машин лёнинг актуален. Вкатывайся, распознавай образы.
217 1387108
>>386864
Ошибаешься дружок пирожок.
218 1387187
Стоит ли перекатываться на Си++98, если обычный Си в общем-то устраивает, но костылить свой ассоциативный массив и как-то париться со строками не хочется? Пишу свой корявенький валидатор текстовых файлов для моддинга одной игры, в перспективе развить до редактора.
219 1387191
>>387187
Если перекатываться, то уж сразу на14-17
220 1387193
>>387191
А смысл? Слишком дохуя всего, а мне хватит и map<string, string>, которые уже в 98 есть.
221 1387194
>>387100
Для практики можешь попробовать LeetCode. Говорят там неплохо
222 1387197
>>387193
Выбор в пользу 14-17 очевиден. Даже если тебе понадобится только map, то в процессе изучения ты попутно узнаешь(а может и попробуешь и тебе понравится) вещи которых нет в 98
223 1387201
>>387197
Это какие, например? С ООП я не дружу и не понимаю его, так что практически все нововведения для меня отпадают.
224 1387204
>>387201
Внезапно, далеко не все нововведения направлены на ООП.
Набери в гугле про 11-14-17 стандарты, почитай краткие выдержки (я вообще впервые на хабре наткнулся на короткое статьи) и почитай.
225 1387205
>>387201
Ну, ООП со времён 98 не изменилось, а так - умные указатели, move- семантика, thread'ы из коробки, лямбдыхуямбды....
226 1387243
А вопросы по qt можно задать? Я чет запутался, если честно
227 1387248
>>387243
Жги
228 1387285
>>387248
Я написал делегат и модель для ListView
В делегате у меня круг, текст внутри круга, текст под кругом и тултип. Пытаюсь добавить элементы с включенным spacing, но вообще ничего не добавляется. ЧЯДНТ?
229 1387287
>>387285
Давай код, телепаты в отпуске.
231 1387298
>>387293
Я конечно подзабыл, но отрицательный спасинг? Это вообще законно?
232 1387299
>>387298
Нет, но я уже тупо начал перебирать
233 1387301
>>387293
В качестве делегата у тебя корневой итем без размеров. Попробуй задать ему размеры, а военному ректанглу стелать анчорс.филлпарент
234 1387303
>>387301
Не, не работает.
235 1387304
>>387303
А размеры для view если проставить?
236 1387306
>>387293
layoutDirection: "LeftToRight"
orientation: "Horizontal"
А так должно вообще работать, со строками, а не элементами енумов?
237 1387321
>>387304
Решил поставив в листаью анчор филл парент

>>387306
Работает.
238 1387325
>>387321
С тебя как обычнонихуя
239 1387326
>>386706
Стать умнее, научиться вертеть деревья и пойти в Яндекс.
240 1387327
>>387326
Я хохол(
241 1387328
>>387327
Тогда Google
242 1387329
>>387328
обкомпилился
243 1387446
Дайте совет, как сделать:
Создайте шаблон класса Stack и заполните его четными числами. Создайте шаблон класса Stack1 и заполните его нечетными числами. С помощью итератора объедините эти контейнеры в вектор.
244 1387451
>>387446
1. Создаёшь шаблон класса Stack
2. Заполняешь его экземпляр четными числами
3. Создаёшь шаблон класса Stack1
4. Заполняешь его экземпляр нечетными числами
5. С помощью итератора объединяешь эти контейнеры в вектор.
245 1387453
>>387446
Как я шаблон класса числами заполнять буду?
246 1387489
>>387446

> заполните его четными числами


Что-то никогда не задумывался, если мы берем какой-то плюсовой контейнер (вектор например) и начинаем его заполнять четными числами то когда ошибка будет? Когда вообще все доступная (скажем 16 гб) оперативная память кончится (с поправкой на фрагментацию) или там есть какие-то технические ограничения которые раньше сработают?
247 1387491
>>387489
Естественно подразумевается 64 битная система.
248 1387492
>>387489
сегодня в рубрике задаем вопросы стаковерфлову через двачь
https://stackoverflow.com/questions/3813124/c-vector-max-size
249 1387508
Господа, как в Qt проще всего вывести на экран матрицу?
250 1387528
>>387508
Тупо в текст едите? Он может в html, показывать таблицы и т.п.
251 1387557
Доброй ночи, друзья. Возможно ли в Qt синхронизировать скроллбары QListWidgetov при наличии в них разного количества информации?
252 1387587
>>387557
Что мешает использовать деление\умножение?
253 1387606
>>387451
Спроси препода. Спроси друзей. Спроси старшекурсников, которым этот вариант попался.
254 1387644
>>387446
интересное задание с учетом того что контейнерные адаптеры не имеют итераторов
https://pastebin.com/VJyyMxrW
11.jpg550 Кб, 1280x923
255 1387699
Я нулевой мешок, из знаний: посчитать интеграл, производную, умножить матрицы, помигать диодом на микроконтроллере с помощью asm или Cи, припаять конденсатор, припаять резистор, сверстать страничку html, css, js. На этом все. Живу в далекой провинции.

Такой вопрос: Сколько лет надо тренировать-тренировать-тренировать навыки С++ одиноко в горах как мастер каратэ, чтобы суметь найти удаленную работу джуниором за дошираки и кипяток? Если хотелось бы научные вычисления делать.
256 1387714
>>387699
Пару-тройку точно
257 1387723
>>387699
Масутацу Ояма в фильме такой няшка, а в жизни это был лысый кабан, который убивал быков кулаком.
258 1387724
>>387699
удаленки джуниором на C++ не существует
259 1387725
Dh
260 1387728
>>387724
Ты скозал?
261 1387730
>>387728
ну давай, найди хоть 1 вакансию джуна-удаленщика, на которую можно устроиться, будучи резидентом РФ.
262 1387732
>>387730
Мне предлагали работать на qt на зарубежную компанию удалённо, но я уже работал в блокчейн-стартапе.
"другой петушин-кун"
263 1387735
>>387732
джуниором?
264 1387738
>>387735
Насколько понимаю, да. Я проходил предварительный этап отбора на их сайте и собеседование в скайпе, когда ещё не работал в стартапе. Эйчар сказал, что доволен, но не прислал оффер. А связался со мной через несколько месяцев, когда я уже работал. Они писали системы удалённого контроля персоналом и видеонаблюдения.
265 1387741
>>387730
Плейрикс, например, раньше брали.
Вот прям щас им правда прогромисты вообще не требуются.
266 1387742
>>387738
ну, думается мне, что ты себя недооцениваешь.
267 1387790
>>387699
Для научных вычислений сильные плюсы не нужны
268 1387817
>>387790
А какие-нибудь йоба шаблоны используются там?
269 1387826
>>387790

>Для научных вычислений сильные плюсы не нужны


Лол
>>387817

>А какие-нибудь йоба шаблоны используются там?


Да. Повсеместно. Открой eigen какой-нибудь. Там сплошная магия на expression templates. Или pcl, там буст обмазанный ейгеном, обмазанные еще десятком либ, и все обклеено шаблонами для нажористости.
image.png278 Кб, 1920x1080
270 1387880
Господа-двачеры, помогите нубу.

Может кто-нибудь сказать какую библиотеку юзать (может даже кто напишет пару строк кода) для чтения веб странички.

Вот я, например, в опере и любом браузере могу просто смотреть "исходный код страницы", и я хочу так же просто, имея адрес страницы (чтобы https поддерживало только) тупо получать в символьный массив весь вот этот текст со всей разметкой и не нужной лапшой без выебонов, чтобы дальше уже без проблем можно было это парсить и сохранять в файл, если понадобиться.

Короче то что в браузере делается нажатием кнопок ctrl+u, я хочу автоматизировать для считывания самой программой, чтобы не копировать каждый раз как бухгалтерша кучу текста мышкой и все на c++, поскольку маломальский опыт только на нем есть.

Curl ставил, он мне пару строк показывал, вместо около 7000, и типо все. Было бы неплохо если кто-то просто своим опытом поделился даже, а не просто знанием необходимых библиотек, хотя рад буду всему.

в
271 1387922
>>387880
libcurl достаточен, вполне вероятно, что ты делаешь что-то не так
272 1387926
>>387880
На сишарпе делается парой строк. И в отличие от говняных браузеров, можно слать нахуй сертификаты, чтобы любые считались как хорошие и всё качалось без проблем.
273 1387927
Как выйти на уровень отцов, которые пишут буст и всякие крутые либы с использованием метапрограммирования? У нас на работе шаблонов почти вообще нет, а хочется чего-нибудь эдакого.
274 1387929
>>387927
надо что-то начать делать
275 1387935
>>387880

> Может кто-нибудь сказать какую библиотеку юзать (может даже кто напишет пару строк кода) для чтения веб странички



Можешь через curl скачивать или через wget
curl -s -X GET $url
wget -q -O page.html $url

Вот этой тулзой можешь выдирать инфу со страниц https://github.com/EricChiang/pup
Она же может и в json конвертировать результат с которым можешь работать дальше как захочешь
Небольшой тутор http://www.compciv.org/recipes/cli/pup-for-parsing-html/
276 1387961
>>387927
ну, дзен заключается в том что метапрограммирование на крестах используется для кодогенерации
соответственно, если у тебя есть какие-нибудь задачи кодогенерации, то можно их попробовать решить с использованием шаблонного метапрограммирования, а не олдскульными макросами или внешними препроцессорами
как то так
277 1387968
>>387927
алсо, щас все проще и понятней стало
почти не нужно использовать рекурсивное инстанцирование, sfinae для условных конструкций и прочие функциональные трюки что мозг выносили раньше
278 1387970
>>387880
щас это делается через плагины для браузера
и точка
279 1387971
>>387970
на крестах ты тоже можешь написать, если дело будет происходить в винде, используешь ie com automation
но таки проще щас плагин на js к хрому или лисе написать
1556130442158.png570 Кб, 735x953
280 1388026
Смотрите.
Я хочу поменять местами данные в шаблонной функции, вот я это и делаю.
template<class T>void kek(T &a, T &b)
{
T tmp(a);
a=b;
b=tmp;
}

То есть я просто два раза вызываю оператор= и один раз конструктор копирования, ничего страшного.

А теперь представим что сюда будет подставляться йоба класс в котором хранится хитрая структура данных там дерево какое-нибудь по указателю лежит и соответственно операция присваивания очень дорогая.
Получается сначала будет супер долгое копирование, а потом два супер долгих присваивания, да ещё и долгий деструктор для tmp. Как мне сделать чтобы вместо этого просто вызывался оператор копирования с переносом? Вот если бы это был конкретный класс то я бы мог просто
сделать
void kek(Dada &a, Dada &b)
{
Node * root = b.root;
b.root=a.root;
a.root=root;
/...
}
И именно это же и делает конструктор копирования с переносом или оператор присваивания с переносом. Только как мне его запустить?...
281 1388032
>>388026
Гугли "template specialization". Суть в том что у тебя может быть шаблонная функция, но в довесок к ней еще и несколько альтернативных реализаций под конкретные типы для которых не подходит базовый шаблонный вариант.
282 1388056
>>388026
Нельзя сделать так?

T tmp(std::move(a))
a = std::move(b)
b = std::move(tmp)
283 1388057
>>388032
То есть в любом случае придётся под каждый хитрый тип данных отдельную реализации писать?
Просто я подумал что было бы круто если бы я в итоге мог сделать например
std::vector<int> v1;
std::vector<int> v2;
//...
swap<std::vector<int>>(v1, v2);
без определения специализаций
и всё - внутренние данные v1 и v2 поменялись местами.

Вообще, даже стандартный автоматически генерируемый оператор присваивания, который просто почленно копирует поля, сделал бы то что мне надо, но проблема в том, что он же в 99% случаев уже переопредлён в подобных классах, как и в этом же std::vector, поэтому я к нему доступа не имею(или имею?).
284 1388060
>>388056
Спасибо, похоже то что надо.
285 1388154
>>387880
Ебать я счаслив, я кажись нашел решение, или по крайней мере приблизился. Какой-то пиндос спрашивал за проблемы с подключением через https, ему ответили.
image.png951 Кб, 1000x600
286 1388156
Люблю вас всех!!!
287 1388166
одна из самых интересных (в смысле изучения) вещей в stl это стандартные функциональные обьекты, привязки и предикаты, позволяющие использовать еще один способ программирования, а именно функциональную композицию
даже жалко, что сейчас в большинстве случаев удобней использовать лямбды стало
288 1388167
>>388026
>>388032
щас с новой мув семантикой это делают по другому
ф-я swap реализуеются как принимающая универсальные ссылки, а классы, объекты которых будут обмениваться своим внутренним состоянием через эту функцию, должны реализовывать мув-конструкторы и мув-оперторы присвоения
все просто
на самом деле std::swap примерно так и написан (чуть сложнее на самом деле), а все стандартные контейнеры щас с мув-конструкторами и операторами присвоения
289 1388168
>>388056
кхе, кхе
ну, как говорится, новые фичи в языке - новые способы отстрелить себе ногу
290 1388180
>>388167
извиняюсь, написал неправильно, нет необходимости в swap делать универсальные ссылки, а вот у него >>388056
правильно
291 1388185
>>388057

>То есть в любом случае придётся под каждый хитрый тип данных отдельную реализации писать?


ты же можешь std::swap воспользоваться, зачем тебе свою функцию писать? но надо реализовать для твоего класса мув-конструктор и мув-присваивание

НО на самом деле ты можешь написать и специализацию для своего класса, если у тебя в интерфейсе класса будет ф-я swap, которая работает эффективней
так собственно, и в стандартной библиотеке сделано - у swap 9 перегрузок для стандартных контейнеров есть, которые вызывают внутренную функцию swap

тем более, все равно для сложных классов приходится делать функцию swap, тк с ее помощью удобно реализовывать конструкторы и операторы присваивания
292 1388233
>>388168
Поясни.
293 1388248
Кто-нибудь может пояснить за надежность хранения данных в текстовом документе?

Вот записано у меня там данных на 1кк байт, какова вероятность что каждый информация будет считана ровно на этот 1кк байт без потерь? Или это зависит от старости моего жесткого диска? Возможны ли ошибки и как их устранять, если возможны, есть что почитать?
294 1388283
Кто шарит в ягуарных регулярных выражениях?

([-. ])? от ([-. ]?) чем отличаются?

у меня в книге явная опечатка, но оба варианта работают вроде как одинаково
295 1388291
>>388248
Это скорее в тред по базам данных нужно, они там по этому как раз должны быть спецы.
296 1388397
>>382070
El. Psy. Congoroo
297 1388518
>>388233
вот, даже извинился
>>388180
298 1388601
Почему в stl названия классов и методов начинаются с маленькой буквы? Вообще на С++ в среднем какой стиль кода принят?
299 1388621
>>388601
как я себе представляю: вот есть такая практика, что классы начинать с большой буквы, а экземпляры этих классов - с маленькой, и тогда их можно отличать друг от друга
но для большинства stl-сущьностей все равно нужно указывать типизацию, тк это шаблоны, поэтому и сделали с маленькой буквы
а стилей кода много разных, все они, правда, получаются некрасивыми, самий уродливый, наверно, их всех, это тот который страуструп придерживается, лол
а так ты все равно будешь следовать стилю кода тому проета, к которому присоединишься
но есть к примеру, у гугла свой стиль кода, у qt, у саттера в книжках (один из самых симпатичных для меня)
выбирай..
300 1388626
>>388601
Обычно придерживаются стандартов крупных компаний. Поищи google/mozilla coding guidelines. На винде можно в vs настроить форматирование под один из популярных стандартов. На линукс/мак можно через clang.
301 1388642
>>388248
Зависит от надёжности носителя. Можешь хранить несколько копий и контрольную сумму. Если совсем параноик - делай raid массив.
302 1388769
Пацаны, такой вопрос:
компилирую ебучий приветмир через консоль g++, а эта хуйня мне выдаёт экзешник на 15 мегабайт. шо за хуйня, чому так много?
303 1388818
>>388769
Лолват, у меня 15кб получается. Со статической линковкой glibc 738кб.

>экзешник


Винда?
304 1388835
>>388769
Ну скинь сюда свой солюшн, посмотрим
image.png109 Кб, 1366x768
305 1388877
>>388835
тип файла не поддерживается, не могу скинуть
это даже не привет мир, а пустой мейн на 14.5 мб , ахуеть
306 1388934
>>388877
может быть его так дебаг надувает?
307 1388935
>>388877
Библиотека iostream большая наверное.
308 1388978
>>388935
С iostream 47кб, с stdout 37кб, у него какой-то компилятор ебнутый просто
309 1388984
>>388877
R g h o s t
G
H
O
S
T
310 1389050
>>388877
Лол, тебе в реверс-инженеров тред. Чтоб там пояснили, чего в твой екзешник налинковалось.
311 1389068
>>388877
Что за версия гцц?
Откуда качал?
312 1389093
>>389068
8.3
>>388935
без библиотеки пустой екз весит 54 кБ
но блин какого хера так много то
314 1389117
>>381995 (OP)
Аноны, пишу в файл через fprintf. Мне нужно записать строку вида:

Fri Apr 26 15:03:22 2019 {

Первую часть я пишу так fprintf(data, "%s", ctime(&_daterow));
Но как записать еще символ "{" без перехода на следующюю строку ? fflush который мне советует гугл не помог
315 1389128
>>389117
fprintf(data, "%s {", ctime(&_daterow));
Так?
316 1389135
>>389128

>fprintf(data, "%s {", ctime(&_daterow));


Первый пик

>fprintf(data, "%s {", "ctime(&_daterow)");


Второй пик

Спасибо, дошло как это работает, но, похоже, именно с ctime(&_daterow) все равно хуячит переход...
317 1389156
>>389093
Почему много? Мало же. Там под капотом много выполняется без твоего участия, ну и у компиляторов, как часто у софта, есть свойство жирнеть. Новые версии либ жирнее старых и дефолтный экзешник получается больше. Бери как можно более старый компилятор если хочешь маленький размер.
319 1389212
>>388877
Какая-то хуйня у тебя. Сейчас проверил, g++ через msys2 делает 142 кб экзешник.
320 1389242
>>389135
Description:
"ctime" converts a time number into a string giving the corresponding date and time. The string has the format

Wed Apr 20 15:32:40 1983\n\0

Таким образом пофиксил так:

char s = ctime(&_daterow);
(s+24) = 0;

В приницпе можно было через setprecision, но тащить iomanip, ну его нахуй.
321 1389277
>>389135
Попробуй сделать форматстринг таким: "%s \b{"
322 1389280
>>389277
Объебался с пробелом.
fprintf(data, "%s\b {", ctime(&_daterow));
image.png3 Кб, 291x106
323 1389300
>>389280
>>389277
Гениальный вариант, жаль не работающий (
324 1389306
Pizdec какой - то, я нихуя не понимаю что тут происходит, такое ощущение что компилятор ебанулся, ну или я не выспался... Какого хуя наличие одного fscanf так влияет на fscanf совершенно иного файла и переменной... I'm Done
325 1389311
>>389306
Скомпилировать забыл, вот правленные пики
326 1389314
>>389311
а хуи ты поправил?
327 1389316
>>389311
ну суть в каменте строки короче
328 1389334
>>389300
Кек. Ну, в консоли бы это сработало, кстати.
А почему ты через fprintf пишешь, а не через ofstream?
329 1389354
>>389334
По ТЗ нужна прямая работа с файлами, никакие другие типы не допускаются.
330 1389367
>>389354
Никогда бы не подумал, что fstream - не прямая работа с файлами.
Или ты какие-нибудь микроконтроллеры прогаешь, в которых std нельзя использовать?
Аноним 331 1389368
>>389367
fstream это поток, я же могу только файл использовать, никаких потоков
1556305696424.jpg240 Кб, 1409x743
332 1389443
>>389368
Прости, тогда и FILE тебе не подходит.
333 1389482
>>389443
Я думаю тому анону не надо пересказывать ТЗ.
Проще было бы ознакомиться с ним самому, а не в пересказе.
334 1389484
>>389443

>СЯОМИ

1556310007098.jpg296 Кб, 1440x2560
335 1389491
>>389482
Ну я думал, я где-то не понимаю чего-то(бтв так и оказалось), но говорит же, потоки нельзя.

>>389484
Прости, ты обосрался, смотри пикрил.шо то хуйня, шо это
336 1389552
Хочу изучить BOOST
Оно того стоит, полезная вещь? С чего начать?
А то выглядит с виду как просто нагромождение кучи всего и создаётся впечатление что проще под конкретную задачу специальную библиотеку найти, чем это всё прикручивать.
337 1389557
>>389552
Буст обычно просят знать если есть куча легаси говна 10+лет, которое лень переписывать и нужно хотя бы понимать, как оно работает

Хотя есть и полезные штуки, которые активно используются, например boost.hana или парсеры ихние
338 1389559
>>389557
А там где не легаси говно чем пользуются, чтобы дополнить стл(по части работы со строками особенно интересует)?
339 1389604
>>388026
юзай std::swap
340 1389620
>>389559

>по части работы со строками особенно интересует)


Да тот же qt. Там есть все что можно придумать, если только тебе не какой-нибудь rope нужен.
341 1389624
>>389552
буст невозможно изучить полностью, это гигантская куча абсолютно разных библиотек. Выучи СТЛ полностью, сначала.
342 1389639
>>389620
если для себя, то это тот же буст, стл он не дополнит, а заменит, если заешься объекты туда сюда гонять
343 1389754
Сап. У меня уровень знаний в плюсах сейчас примерно на наследовании, виртуальных функциях, возможно успеть за 2 дня, примерно 6-8 часов изучить всё необходимое, чтобы сделать на qt окно, где будет предоставляться выбор между двумя уравнениями в виде картинок, и при нажатии вывода их решений?
344 1389755
>>389754
Это можно сделать на чистом qml без плюсов.
345 1389758
>>389755
ну мне решение на плюсах нужно написать, 300 страниц шлее усвоить не успею, мб есть что то более практичное из туторов? могу забить конечно и написать консольную хуйню, но интереснее сделать с интерфейсом.
346 1389762
>>389754
Минут пять и строк 30 кода
347 1389765
>>389762
ну я именно про разобраться, ни разу с Qwidgets и тд. не работал.
348 1389766
>>389758
https://doc.qt.io/qt-5/qtqml-cppintegration-topic.html
Поздно плюсы учить - пиши код. В процессе всё равно перепишешь, и не раз.
349 1389767
>>389766
так я закончу с лабами по плюсам и начну жабу, просто консольные приложения 2 года писать заебало ужасно, интересно что то новое попробовать. Спасибо за ссылку, чекну ещё на ютубе мб что то есть.
350 1389771
Не слушай шизиков - qml для быдла
Q0r5h.jpg66 Кб, 352x444
351 1389773
>>389767
На джве с гуем ещё печальнее, лол.
352 1389774
>>389773
жаба мне онли для того чтобы не пойти работать на завод "интеграл", а попробовать пробиться в ерат на 3-4 курсе.
353 1389779
>>389774
Ясно. Ты студент непту_а_бгуир?
Хочешь чуть-чуть личных наблюдений? Те, кто учил cpp на третьем курсе уже рубили капусту, те, кто учил жабу по полгода ходили на курсы ерата и ещё полгода сидели у них в лабе, а потом полгода работали за копейки. до сих пор работают за копейки

мимо отчислился с последнего курса, ни о чём не жалею
354 1389782
>>389779
у меня нет внутри коммерческого гена что-ли, ну тоесть я в группе остальным 18 челикам делал лабы за спасибо весь год, убивал по 8-9 часов на каждую лабу каждому челику, просто было со своих денег брать как то не оч. ну я долбаёб короч. И нет, даже не в минске, это гомель, тут кроме ерата есть iba, но шот аксиома эскобара в действии.

>рубили капусту


моя проблема в том, что я на самом деле и не знаю где можно такую подработку найти, если подскажешь пару ресурсов и в сторону чего оставшееся время развиваться, буду очень благодарен.
355 1389788
>>389779
У нас плюсовики с прикладной математики занимаются байтоебством на галерах либо в рога и копыта педалят легаси, и все за копейки. Чеды-джависты с программной инженерии в модных стартапах под ведро пишут за нормальные деньги.

мухосрань
356 1389828
Аноны, программа обрабатывает данные, они либо берутся из файла, либо вводятся с клавиатуры. Для различия режимов я решил заюзать аргумент для запуска, так вот, по умолчанию программа будет хуярить данные из файла, но нужно придумать аргумент при котором данные будут вводится с клавы. Аргумент должен быть в витде одной буквы e.g "/m".
Вопрос, какой обычно аргумент используется для обозначения опции ввода с клавы в cli приложениях ?
357 1389870
>>389782
Подработку кодером ты не найдёшь, но в какую-нибудь мелкую контору на полставки вполне. Только не унижайся и не работай бесплатно, двух+месячные стажировки тоже нахуй, хотя испытательный срок два месяца - это нормально, только не бесплатно.
Составь грамотно резюме, не ври в нём, не собеседовании всё равно скорее всего вскроется. Ну а изучить стоит наверное Professional C++ Development 4th Edition и C++ core guidelines, ну и задачки на каком-нибудь hakerrank порешать
358 1389878
>>389870
ну это скорее всего не скоро, я ток наследование понял, ещё гора вещей которые нужно знать, главное блять просто как то победить ебучую лень, самое сложное в этом всём.
359 1389884
>>389878
Какая лень, если ты пиздогруппникам делал лабы за спасибо? Тут не время нужно, а систематическое повторение
360 1389888
>>389884
ну перед одногруппниками был груз ответственности, короче нужно воспитать себя как то, заебалось, что каждая попытка сесть за код, сводится к тому что я не знаю какие задания повыполнять интересные и сажусь катать во что нибудь, буду это исправлять, спасибо за разъяснение!
361 1389895
>>389828
микроконтроллеры еще, асу, софт для приборов - тоже копейки
геймдев еще - копейки
крестовики, в смысле
362 1389897
>>389895
500-700 баксов..
363 1389906
>>389895
За геймдев в рашке нормально платят, но отрасль специфичная и имхо не очень приятная. Вообще не знаю, как найти интересную (не легаси, не эмбед) и оплачиваемую работу на крестах. Вся движуха сейчас в мобилках и вебе, а там кресты почти не нужны (если не считать исключительных примеров уровня применения функциональных языков в энтерпрайзе)
364 1389915
>>389906
Ты забыл посчитать примеры где сам решаешь на чем писать не от хорошей жизни, впрочем, не на ГОвне же в самом деле - так что выбора нет
365 1389989
>>389828

> Вопрос, какой обычно аргумент используется для обозначения опции ввода с клавы в cli приложениях ?


Можешь ознакомиться
https://it.wikireading.ru/29002
366 1390004
Что есть максимально легковесное для гуи(в первую очередь под винду, на остальные платформы похуй, хотя я бы глянул отдельно еще что-нибудь кроссплатформенное)?
367 1390015
>>390004
Под винду - WinAPI. Даже устанавливать ничего не надо, правда заебешься на этом писать. А если нужно что-то кроссплатформенное, то есть FLTK из легковесного, но выглядеть все будет как говно.
368 1390021
Помгите аутисту. Есть строка (string), в цикле выполняется append целого числа + " " таким образом строка выглядит как - то так:
1 2 3 4 55 224 2 4 5 6 ... Нужно выводить эту строку в столбик с фиксированной шириной, если элемент не входит, то переносить его часть на следующюю строку, если на конце пробел (то есть строку завершает пробел) игнорировать его и начинать выводить следующюю строку.

Пиздец, уже всю голову сломал как это лучше сделать

Вот мои попытки

//strlen(stroka.c_str())%10==0?stroka.append("\n"+to_string(element)):stroka.append(to_string(element)+" ");
strlen(stroka.c_str())%10==0?stroka.append("\n"):stroka.append("");
stroka.append(to_string(element)+" ");

Сложность еще в том что строка каждый раз выводится в цикле в котором к ней добавляется очередной элемент.
369 1390027
>>390015
Жаль. А то вот есть например пикрил - выглядит нормально(не считая того что нету адаптации под масштабирование винды, лол) и весит всё вместе 362кб, но это для шарпа с .нет фрейворком. Неужели для С++ вообще ничего подобного нету?
370 1390030
>>390027
Ну это из-за того, что дотнет фреймворк уже установлен на компе юзера где-то в недрах системы. В принципе, тоже самое можно сделать, например, с Qt, т.е. сам экзешник будет весить мало (несколько десятков килобайт), но библиотеки, требуемые для работы весят довольно много (но их также можно установить куда-нибудь в недра системы и их не будет явно видно).
371 1390032
>>390030
Это да, но .нет есть у всех, а qt ни у кого.
372 1390037
>>390021
покажи какой вывод должен быть для твоих исходных данных
373 1390039
>>390021
Так, я придумал как все сделать, но мне нужно знать:
Можно ли сделоть printf("10 символов начинаяя с такого - то", stroka.c_str());
374 1390042
>>390032
Почему бы не написать логику на плюсах, а фронт на C#?
375 1390045
>>390032
Ну тогда твой единственный выбор это хуярить на winapi. Удачно поебаться, лол, но зато экзешники будут весить максимально мало.
image.png8 Кб, 697x222
376 1390048
>>390037
Мне нужно чтобы строка из цифр разделенных пробелами выводилась столбиком более менее фиксированного размера, при этом цифры могут быть разной длинны.

Грубо говоря мне нужно вывести первые (для примера возьмем фиксированную длину в 10 символов) 10 символов строки, потом следующие 10 символов уже после "\n" и так далее.
377 1390052
>>390048
Самый простой способ это разделять цифры не пробелами а '\t'. Соотвественно если у тебя стандартный терминал на 80 символов то после каждых 10 чисел проставляешь '\n' вместо '\t'. Ну и числа должны быть неболее 7 разрядов, иначе все поедет.
sage 378 1390061
>>390052

> цифры


имелись ввиду числа
изображение.png10 Кб, 1070x244
379 1390064
>>390048
string str;
for (int i = 0; i < 20; i++)
{
str += to_string(rand() % 10000);
str += ' ';
}
cout << str << endl << endl;
int maxlen = 15;
int curlen = 0;
for (int i = 0; i < str.length(); i++)
{
cout << str;
curlen++;
if (curlen >= maxlen)
{
if (str == ' ')
{
cout << endl;
curlen = 0;
}
else
{
if (curlen % maxlen == 0)cout << endl;
}
}
}
изображение.png10 Кб, 1070x244
379 1390064
>>390048
string str;
for (int i = 0; i < 20; i++)
{
str += to_string(rand() % 10000);
str += ' ';
}
cout << str << endl << endl;
int maxlen = 15;
int curlen = 0;
for (int i = 0; i < str.length(); i++)
{
cout << str;
curlen++;
if (curlen >= maxlen)
{
if (str == ' ')
{
cout << endl;
curlen = 0;
}
else
{
if (curlen % maxlen == 0)cout << endl;
}
}
}
380 1390074
>>390052
Охуенно, кланяюсь, в ноги пабадю чалом ударая об пол ! Вот я аутист.... Хули нам, велосипеды изобретать мы любим.

>>390064
Анон, тебе тоже спасибо большое, но вариант что предложил >>390052 действительно правильный, со всех точек зрения. Я даже пытаться что - то еще сделать смысла не вижу.
381 1390082
>>389828
Логичнее было бы наоборот. Если ты передал в параметрах запуска имя файла, то считываешь из него, если ничего не передал, то считываешь с клавиатуры.
382 1390096
анон, пытаюсь пройти гайды lazyfoo по sdl
http://lazyfoo.net/tutorials/SDL/13_alpha_blending/
И блин не пойму, как раскидать один файл по нескольким, у меня либо линкер ругается, либо циклические инклуды
383 1390130

>C. В программе должен быть создан визуальный интерфейс.


Что имеется в виду, CLI визуальный али нет ? Вроде прямо -- графический не сказано же.
384 1390132
>>390130
Терминал это тоже абстракция графического(визуального) интерфейса, ссы преподу в лицо.
385 1390135
>>390132
Так поступить и планировал, сенк
386 1390145
Надо всегда делать 2 реализации функции - одну с рассчётом на копирование, другую с расчётом на перенос? Пикрил.

Или на практике обычно делают в виде одной функции - пик2? А то ведь это менее эффективно, потому что будет вызываться на 1 перенос больше в обоих случаях. Разница конечно наверное ниочём, но тем не менее.
387 1390179
>>385155
Ассемблерный листинг сперва посмотри, оптимизатор хуев.
388 1390181
389 1390182
>>389552
А какой смысл? Самое полезное оттуда включили в стандарт, а качество кода там максимально сомнительное временами, так что чтение исходников того не стоит - с использованием же по пути разберёшься.
390 1390185
>>390181
Для imgui нужно ещё что-то, что будет за него рисовать - если брать полностью самостоятельные фреймворки, то из легковесных есть FLTK, но он страшненький и устаревший в плане концепций (я про вёрстку и прочее).
391 1390186
>>390145
На практике смотрят, что у тебя размер структуры сопоставим с размером указателя (надо бы на поля посмотреть, чтобы наверняка), так что перемещение жизнь лучше особо не сделает.
392 1390188
393 1390195
>>390145
Пишут шаблонную функцию, где в качестве параметра универсальная ссылка, а внутри функции std::forward. Что-то такого: https://gcc.godbolt.org/z/5obK4Z
394 1390227
>>390135
Анон, я жопой читал, и мой совет может тебя поставить на долг. Написанно же

>Создайте в программе


Можешь сделать джавой через Javax окно, и нативно в него закрутить крестовые методы
396 1390392
>>390130
Смотря для чего. Интерфейсы бывают программные и пользовательские. Программный интерфейс не визуальный, а интерфейс пользователя всегда визуальный, ведь человек общается с компьютером посредством зрения.

Если у тебя речь идет об интерфейсе пользователя, значит нет смысла говорить про него "визуальный", он и так такой в любом случае, а значит под этим словом подразумевается графический.
397 1390545
Сап, есть вариант с помощью чего написать математические формулы в qt? мне нужен форматированный вывод а-ля пик 1, посоветуйте что нибудь годное, пока что всё что нагуглил это пик 2, проект qt который должен отрисовывать, но на самом деле я хз как его заюзать, никакого тутора не предусмотрели.
398 1390554
https://pastebin.com/Kf6kfQfR
опять трабла с интерфейсом на qml.
Тупо не отображается все ListView/GridView
399 1390561
>>390545
extern "C" {
int printf(не помню чё там за параметры)
}
400 1390562
>>390561

>printf


Шизик, нахуй иди.
401 1390563
>>390562
тож охуел, но писать ничего не стал
402 1390569
^
кутешные долбоебы сверху, тот самый вид быдла, тянущий вилки по сипп вниз с каждым месяцем.
403 1390570
>>390563
С чего ты ахуел, дырявая маня? Ах да, ты же студент-долбоеб дрочащий кутешку и не знаешь, что принтфом можно форматить стринги. Нахуй иди уебан. Я твою мать ебал, кстати.
404 1390571
>>390392

> ведь человек общается с компьютером посредством зрения


Нет. Это я получаю информацию от компьютера посредством зрения (и слуха ещё).
А с компьютером я взаимодействую, обычно, с помощью клавиатуры и мышки.
405 1390573
>>390545
Гугли какой-нибудь mathjax или его аналог для с++
406 1390574
>>390570
знаю конечно, залётная дура, но нахуя мне на плюсах систайл юзать, ты жирное прыщавое чмо, которое обожает байтоёбить и дрочить на фурри?
407 1390577
>>390574
нинужно
408 1390586
>>390574
Ебать, я думал ты просто студентишка позорный, который нихуя не учил и просит помощи потому что ничего не знает, а ты долбоеб который учил и не может строку отформатить.
ЙА ТОЖ АХУЕЛ НО РИШИЛ НИЧИВО НИПИАСАТЬ!!!
Быдло ебаное, сука.
409 1390588
>>390586
нахуй ты рвёшься и мне отвечаешь, иди через printf пиши ебоклак
410 1390593
>>390588
У меня выходные, долбоеб, могу валяться и со студенто-быдлом общаться сколько хочу, соси хуй
411 1390595
>>390593
бля я тож лежу, заебись))
412 1390596
>>390593
>>390595
Вы еще поебитесь тут, педики.
413 1390599
>>390596
ухх гомопетухи-долбежники)))
414 1390603
>>390545
QTextEdit умеет в HTML
415 1390992
>>390603
тоесть я могу туда подрубить latex и сделать просто запуск в браузере или как?
416 1390998
>>390545

>Сап, есть вариант с помощью чего написать математические формулы в qt?


используется тот же подход что и во многих генераторах математических выражений в вебе, а именно сама формула задается в tex формате, далее вызывается tex, которой генерирует это в картинку, далее картинка выводится на страницу (в твоем случае на холст или куда ты там в qt хотел отобразить)
несомненно, это геморно с той точки зрения что tex не имеет апи как такового, то есть его нельзя использовать как шаредбиблиотеку, на линуксах придется тащить с собой зависимость от пакета, если нужна кроссплатформа с виндой, то еще больше еботни будет

альтернативный подход требует еще большего геморроя: а именно использование mathml, а дальше чтобы эта формула рендерилась кутешным встроенным веб-движком
большой плюс этого решения, что в результате будет форматированный текст, а не картинка, и даже можно настроить что при выделении-копировании этой формулы в буфер обмена сохранялось xml-mathml представление, что вообще охуенно в некоторых случаях

хотя может я зря тут расписываю, и тебе нужно всего лишь вывести несколько статичных формул (которые не изменяются)
тогда их просто генеришь заранее через tex и встраиваешь в виде картинок на формочку, это то просто, рас плюнуть
а вот когда формулы меняются во время работы программы, то тут геморроя на порядки больше чтобы их только отобразить
ну а встроенный редактор математических формул - это уже rocket science
изображение.png349 Кб, 1920x1080
417 1391009
>>390998
https://electroandi.ru/toe/metod/metod-konturnykh-tokov-reshenie-zadach.html

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

И ещё, это решение сгодится для сдачи лабы по "КЛАССАМ", я бы говна вьебал смотря на формулы в терминале, поэтому полез туда, где я ничего не знаю, и тут вроде как в мейн файле никакого класса создавать не нужно и все действия я распишу в функции "когда нажата кнопка", так? не до конца ещё концепцию понял.
418 1391054
>>391009
а, ты студентик
ну давай тогда сам
419 1391067
6 лет пишу на Qt/Boost, хочу перекатиться в другую контору на unreal engine. Как думаете, хорошая идея? Знания по unreal engine нулевые на данный момент, но готов учиться.
420 1391075
>>391054
сенкс
421 1391089
>>391067
геймдев - говно
422 1391092
Имеются знания питона,хочу попытаться вкатиться в плюсы,какие подводные?
423 1391095
>>391092
зачем?
424 1391099
>>391095
Почему нет?Знания лишними не бывают
425 1391109
>>391099
нет смысла учить кучу языков программирования, тем более, что до готовности писать прод на крестах пройдет годика 2. Лучше стать полноценным специалистом в чем-то одном
426 1391118
>>390992
Зачем тебе вообще что-то? Вставь картинки и не парься. На крайний случай можешь <sub> и курсив применить
427 1391124
>>391118
так цифры нужно в формулках менять, согласно заданным, я могу например вставить текст например 45I1, 45 могу текстом хуйнуть в зависимости от данных, а I1 картинкой. но это будет уже когда не смогу нормально всё сделать.
428 1391145
>>391089
Чаму? :(
429 1391151
>>391124
А что по-твоему нормально? Вариант с картинками выглядит самым годным, нечего выдумывать какие-то костыли с TeXом
430 1391160
>>391145
нужно много знать из кодинга, кресты - самый сложный язык из мейнстримовых, а на нем чаще всего в геймдеве сидят, постоянные переработки, авралы перед выпуском, и все это за более чем скромную зарплату, конкретно джуны работают за еду буквально - те зп им выставлятся ровно чтобы снять комнату в общаге и не сдохнуть от голода
431 1391162
>>391092

>какие подводные?


лютейшая конкуренция
да, на одно годное рабочее место прилетит не 500 резюмех в первые два дня, а 50, но среди этих 50 будут монстры с 20ти летним опытом работы либо вчерашние выпускники, дрочившие кресты и олимпиады всю учебу
432 1391163
>>391067
на самом то деле, если ты и вправду кресты на уровне спокойного понимания и применения библиотек буста знаешь, то без проблем в геймдев перекатишся (с просадкой в зп, само собой)
только нахуй тебе это надо?
433 1391175
>>391160
Математическое образование есть, плюсы вроде задрочил до неплохого уровня. Так у меня и на текущей работке авралы. Ну мне особо большая зп не нужна, на старте соглашусь на 70к.
>>391067
Хочется попробовать чего-то нового... думал вообще на другой язык перекатываться. Игрульки вроде интересно делать.
434 1391177
435 1391215
>>391175
Посмотри Handmade Hero да сделай сам
436 1391251
>>391160

>конкретно джуны работают за еду буквально


Впрочем, как и любые джуны на крестах.
437 1391270
>>390145

>std:


>std:



Поясните зеленому. Нахуй это писать, если можно вначале вставить using namespace std;
438 1391276
>>391270
Можно. Просто в std много банальных слов забито, а это может быть неприятно.
sage 439 1391277
>>391270
1) Чтобы другой похроммист, читая код,сразу понимал, что используются стандартные средства.
2) Для избежания возможных конфликтов имен. Если в проекте используются другие либы, там тоже могут быть функции с названиями, совпадающими со стандартными.
sage 440 1391279
>>390145
Кстати код здесь странный. Передается rvalue как параметр, а потом кастится опять же к rvalue (std::move) шо шо
441 1391280
>>391279
Если это убрать то оно будет преобразовано к lvalue и будет вызвано присваивание.
442 1391282
>>391279
Оно передалось в функцию как rvalue, да, но теперь внутри setglobal у объекта s появилось имя, и s ведёт себя как обычная переменная (то бишь lvalue). Мы хотим сделать move assignment для переменной global, поэтому мы ещё раз делаем move(s).
sage 443 1391293
>>391282
фак, щас проверил, всё рили как ты сказал)
.png196 Кб, 705x642
444 1391302
445 1391318
Помохите чайнику.

double fyt, dol;
cout << "Введите сумму:";
cin >> fyt;
dol = fyt + 0.487;
cout << dol;

Надо чтобы когда вводишь сумму, например 4, и чтобы он 4 раза прибавил 0.487.
446 1391319
Просто он прибавляет всего 1 раз 0.487, а я не знаю как сделать чтобы прибавлял всегда. >>391318

помогите
447 1391323
>>391319
Блять, ты не можешь 0,487 умножить на 4?
448 1391330
>>391318
dol = fyt;
for(int i=0; i<4;i++) dol += 0.487;
cout << dol;
449 1391344
>>391330
Чтобы не 4 раза, а в любое вводимое мной число.
450 1391350
>>391160

>авралы перед выпуском


Что вообще может срочно перед выпуском потребоваться от программиста? Фичекат разве что, но ломать - не строить.
Сейчас же весь геймдев упирается в контент.
451 1391384
>>391151
ну миллион обьектов создавать для каждой строчки и скрина шот по обезьяньи
452 1391453
>>391344
подставь вместо 4 переменную. не сдавайся, у тебя все получится!
453 1391512
>>391350
ну, у меня честно купленный МК11 так и не заработал, например. Даже после патча.
454 1391517
>>391512
Блин, ну если погромист годами писал бажный код, то наверное не стоит удивляться, что рано или поздно с него за эти баги спросят. Что мешало ему заранее об этом подумать?

Все таки здесь программисты хуевые, а не геймдев злой.
455 1391613
Насколько C++ быстрее шарпа или жавы?
sage 456 1391624
>>391613
на этот вопрос нельзя ответить. С++ просто быстрее, но очень сильно зависит от задачи. Если у тебя крошечный клиент какого-нить IO, то выигрыш от плюсов будет незначительным, т.к. тормозня будет на IO. А если у тебя какая-нить числодробилка - то сильно быстрее.
flat,1000x1000,075,f.u3.jpg99 Кб, 1000x563
457 1391642
Почему бы не добавить аниме в шапку треда?
458 1391644
Сделаю 1 лабу за вас.

Если вы не хотите учиться, то я сделаю это за вас.
459 1391654
>>391644
Сделаю 1 лабу за тебя.
460 1391660
>>391654
Мне не надо.

Когда-то год назад я просил тут делать мои лабы, теперь пришло время отплатить.
461 1391664
Адепты с++ секты, объясните пожалуйста про i/o функции. Вот я хочу прочитать файл, читаю путь к нему с клавиатуры через cin, читаю его самого через ifstream, все хорошо. Я хочу использовать реулярки для проверки пользовательского ввода, все тоже хорошо, но уже не совсем - с кирилицей они работать не хотят. Ага, есть wregex, с которым вполне себе можно юзать кирилицу и все работает. Но я не могу заменить все строки на wstring - тупо для того же пути к файлу мне нужен обычный тип string. Еще я хочу ввод с клавиатуры каких-то строк с пробелами и использую для этого getline. Нахрена придумали такие сложности и как я должен поступить по с++ way, чтобы совместить все хотелки: regexp с кириллицей и открытие файлов, ввод с пробелами? Если я совмещаю все, как я хочу - я получаю вообще странные вещи, потому что юзать cin и wcin вроде нельзя. Пикрелейтед - пример странных вещей
462 1391669
>>391664
Ах да, компилятор g++ 6.3
463 1391672
>>391669
Долбоеб копротивлящийся используй VS.
464 1391680
>>391642
dpt уходи
image.png171 Кб, 960x1040
465 1391705
памахити
466 1391710
>>391705
Открываешь VS.
@
Создаешь проект MFC
@
Жидко пёрнув умираешь
image.png47 Кб, 1244x900
467 1391726
>>391710
А как тут мфыцы создатбь?
468 1391731
>>391726
Земля металлом.
Ты скачал visual studio code, а тебк нудна обычная
469 1391732
>>391705
как ты сделал практические работы 1-6 ?
470 1391735
>>391613
с++ - быстрый как понос, программисты на крестах резкие как пуля
471 1391736
>>391732
Легко! Они консольные были!
472 1391737
>>391350
перед релизом любой игры, даже дженерик срани под мобилку, ключевые разрабочкики вьебывают по 12 часов в сутки и без выходных
в 100% проектах
473 1391738
>>391737
алсо, щас геймдев перепрофилируется на такую хрень как "игра как сервис", это означает что к игре непрерывным потоком идут патчи, новый контент и все остальное
те пока игра приносит прибыль, ее доят
для разработчиков же выстреливших проэктов все это превращается в непрерывный аврал
.jpg39 Кб, 385x368
474 1391745
>>391705

> WinAPI

475 1391778
>>391672
Это поделие еще хуже g++, оно не умеет в кириллицу я уже час не могу понять, какие еще команды, галочки и т.д. нужно поставить, чтобы Гейтс понял, что мне нужна кириллица
476 1391780
>>391778
SetConsoleOutputCP(1251); SetOutputCP( 1251);
477 1391782
>>391780
идентификатор "SetOutputCP" не определен. Там что-нибудь мб из библиотек надо?
478 1391784
Если перекатываться с винды, какие под С++ есть хорошие среды разработки под убунту?
479 1391785
>>391782
iostream или stdio или conio.h
Погугли, но те две функции которые я написал - 100% избавляют от твоей проблемы, проверено мной когда я час ебался и не мог понять почему у меня буква ё не пишется.
480 1391799
>>391784
qt creator
481 1391807
>>391785
Реально помогло, спасибо. Только вторая называется SetConsoleCP(1251)
482 1391829
>>391799
Не показывает отличные от нулевого элементы массива объектов как собственно объекты.
483 1391831
>>391829
Где не показывает?
Как не показывает?
Как должно быть?
484 1391846
>>391784
clion, но нада платить денежку
485 1391858
Так так што тут у нас а студентики с вечными циклами и шизики ну ладно
486 1391862
Какой же сука мерзкий тред из тупой студентоты задающей тупые вопросы и троллей первой стадии даннинга-крюгера, пытающихся давать зАбАвНыЕ ответы
487 1391863
Анон, я сейчас решаю для себя задачу по распознаванию лиц. Использую openCV
Задача:
1. Парсить папку с кучей видео
2. В одном видео может быть несколько людей
3. Один и тот же человек может быть в разных видео
4. На выходе я должен получать список "человек - видеофайл1;видеофайлХ;".
5. Предварительного сета лиц для обучения нет.

Как это лучше сделать?
Пока у меня получается следующее:
1. Нет ни одного лица в сете
1.1. Обучаем модель распознавания на двух чёрных квадратах
2. Берём кадр1 видео1 ищем лица.
2.1. Пытаемся распознать лицо - получаем слишком большую дистанцию
2.2. Всё ок, мы знаем что у нас в модели только чёрные квадраты, поэтому создаём новую персону (персона1) и апдейтим модель распознавания.
2.3. Берём кадр2 видео1 ищем лица.
2.4. Пытаемся распознать лицо - получаем нормальную дистанцию с персона1 и апдейтим модель. Теперь персона1 имеет 2 фотки и распознаётся лучше.
2.5. Начинаются проблемы. В кадр3 видео1 у нас может внезапно поменяться ракурс лица и оно хоть и распознается как персона1, но дистанция получится относительно большой или у нас может появиться персона2 ещё не внесённая в модель распознавания, но она распознается как персона1 с относительно большой дистанцией. Как обойти этот случай? Как понять - это персона1 с другим ракурсом/освещением или персона2?
3. Но ок, допустим в видео1 у нас только персона1. Открываем видео2. Там может быть как персона1, так и персона2. Но у персоны1 будет новый ракурс\освещение. Как результат мы с примерно одинаковой дистанцией распознаем человека и или будем считать что персона2 = персона1 или что персона1видео1 != персона1видео2.

Как всё это правильно сделать?
488 1391864
>>391863
Я думаю тебе надо пойти нахуй.
489 1391865
>>391863
Это в ML тред скорее
490 1391868
Пока полуруками кароч обучу/распознаю пару десятков персон и посмотрю на результаты.
491 1391870
>>391862
Согласен, люблю плюсы, иногда скроллю нулевую, ничего интересного, дай думаю зайду в плюсотред в пр, ну и спустя минуту такая тоска охватывает и закрываю.
492 1391872
>>391862
Что делать и кто виноват?
15504650894160.png1 Мб, 1011x1014
493 1391873
494 1391885
>>391642
>>391680
Нам нужен свой OS чувак.
495 1392131
Суп, двущ!
Посоветуй книжку/курс по системному программированию где покрывается Windows и Unix.
496 1392138
>>392131
Это начальные курсы, или для уже квалифицированных?
Если один, то лучше Ютуб и книжки, если два — то так не работает, и надо выбирать что-то одно.
497 1392140
>>392138
Бля я головой поехал в перерыве, буквы не вижу
498 1392194
>>392131
Если в общем, про ОС и их теорию, то читай Таненбаума. Про винду, говорят, что Windows Internals хорошая книга.
sage 499 1392198
Бляять, как же я ненавижу свою криворукость.
Даже новый тред создать не могу.
Пните мочуха стереть моё анимешное говно и пилите тред сами.
500 1392231
Вот самое невыносимое в кодописании это когда начинает происходить какая - то необъяснимая хуита, понятное дело что CPU ничего кроме того что написано не выполняет и, как следствие, сам дурак, но, бля. Какого хуя char array на пике меняется от чтения файла никак с ним не связанного в никак с ним не связанную переменную. Я все проаерил,массив менется только если выполняется этот ебаный цикл.

Массив объявлен как char qdata[] = "";
До цикла он используется только в пик2, да в него что - то пишется и потом он записывается, но как это связано с циклом из пик один -- хуй знает.
501 1392233
>>392198
успокойся, этот тред перекатывают к 600му псту обычно
502 1392238
>>392231
Ну так пошагово продебаж
F10
image.png20 Кб, 483x273
503 1392241
>>392231
Поменял используемый в цикле файл на вообще нигде не задействующийся, ничего не изменилось, разве что { прибавилась хуй пойми откуда опять же.
504 1392242
>>392238
Во - первых я уже локализировал проблемное место, во - вторых, текстовый редактор что я сипользую так не умеет.
505 1392247
>>392242
>>392241
>>392231
Так, проблема решена. На первом пике я пишу число в buff, buff имеет целочисленный тип. Стоило начать писать числа (на которые мне, к слову, здесь поебать, я ихтупо считаю) в другой char array как все стало ОК. buff до этого нигде не использовалось, попытался писать без & получил вылет (ожидаемый), так что похоже я неправильно пишу целое число в целое число, ну или что - то еще.
506 1392248
>>392247
Да, энивей, как это влияет на массив qdata один хуй не ясно.
507 1392254
>>392231

>когда начинает происходить какая - то необъяснимая хуита,


Когда науку пытаются подменить собственной смекалочкой.

>Какого хуя


Не лезь, блядь, дебил, оно тебя сожрет. Не знаешь - не лезь.
508 1392257
>>392242

> Во - первых я уже локализировал проблемное место


А итерацию цикла на которой проблема возникает локализовал? Нет.

>во - вторых, текстовый редактор что я сипользую так не умеет.


Ну так нах тебе это говно, используй нормальный.
509 1392260
>>392254

>пук


Ага, а ты знаешь или так, покушал да и все ?
Тем временем ебаный цикл все продолжает ебать мне мозг.

high_resolution_clock::time_point start = high_resolution_clock::now();

цикл

high_resolution_clock::time_point finish = high_resolution_clock::now();

считаем время

time = (double)duration_cast<milliseconds>( finish - start ).count();

Вылет нахуй, без цикла все заебок.

В цикле выполняется fscanf(mrg, "%i")?n++:false; т.е чтение в никуда.
Если читать куда - то, ошибка пропадает.

Я понимаю что говнокожу/хакерю по полной, но как блядь все эти вылеты и изменения связаны, с какого хуя пускай даже fscan там как - то нитак выполняется она мешает посчитать время между метками (вылет), но если не считать время то все выполняется, при этом scanf отрабатывает как надо. Ну просто рот ебал этого компилятора.
510 1392262
>>392257

>итерацию цикла


Прблема уже решена, но возникала на первой. Прервать выполнение программы можно и без != по твоему мнению IDE/DE с тонной каши из ненужного для написания простенькой CLI утилиты на чистом C++ кала+мб еще и electron'а.
511 1392268
Нужно ли знать как устроена ОС для программирования? Сейчас углубляюсь в сетевые технологии, и в итоге выяснил что все сводится к запросам к апи системы, ну а она насколько я понимаю обращается уже к физическому оборудованию. Достаточно ли знать теории по какой-либо теме, или стоит почитать исходники системы? Вопрос наверное слабо связан с С++,но в нуфаг-треде уже 3 раза игнорили
image.png25 Кб, 1095x144
512 1392271
>>392260
Ну вот оно, блядь, ну вот какого хуя - то. Строка фиксирующая начало отсчета времени режет массив qdata. Вы можете мне обхяснить ПОЧЕМУ НАХУЙ или нет ?
513 1392272
>>392268
вообще все, что ты делаешь, кроме изменения уже выделенной памяти, дергает API операционной системы. Даже printf\cout.

Если ты хочешь быть системным программистом, то хочешь-не-хочешь - придется в это углубляться.
514 1392275
>>392268
Смотря что ты программируешь ofc. Одно дело прикладные приложения, там также своя иерархия в этом отношении. Другое дело какие - нибудь АИС, сами системы как таковые. В общем случае, если твоя программа начинает работать с каким - либо ресурсом помимо самой себя -- ты используешь API, если не системы, так готового фреймвлорка который использует API системы. Прямо изучать API особого смысла нет, появятся задачи -- появится причина загуглить то или иное, все это делается на лету. Знать как устроена ОС, скорее как утсроены типовые ОС нужно обязательно, без этого вообще работать за ЭВМ по идее нельзя. Углубляться там можно до бесконечности, но, обычно достаточно понимания работы с процессором и прочим HW + изучения основных абстракций.

Ну, а ежели ты системный программист, тут и отвечать не нужно, полагаю.
515 1392279
>>392275
Да, еще можно не изучать API системы если ты пишешь на asm, так как там тебе тупо ПОЕБАТЬ. Порты, хуерты твоя сила.
516 1392282
>>392272
>>392275
За ответы спасибо, в устройство ОС наверное углублюсь. Решил написать простой p2p чатик с tcp соединением. В итоге оказалось что практически все классы пусть даже не самые сложные для работы уже были готовы, и ощущение что я конструктор по частям собираю, а не программирую, от того такой вопрос и возник
517 1392288
>>392271
>>392231

>Массив объявлен как char qdata[] = "";



Ебать ты долбоеб братишка, земля тебе сегфолтом.
518 1392290
Что этой суке не нравится?

error C4996: 'getche':

#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
setlocale(LC_ALL, "Rus");

int chcount = 0;
int wdcount = 1;
char ch = 'a';
cout << "Введите строкуЖ ";
while (ch != '\r')
{

ch = getche();
if (ch == ' ')
wdcount++;
else
chcount++;
}

cout << "\nСлов: " << (wdcount - 1) << endl << "Букв: " << (chcount - 1) << endl;

return 0;
}
518 1392290
Что этой суке не нравится?

error C4996: 'getche':

#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
setlocale(LC_ALL, "Rus");

int chcount = 0;
int wdcount = 1;
char ch = 'a';
cout << "Введите строкуЖ ";
while (ch != '\r')
{

ch = getche();
if (ch == ' ')
wdcount++;
else
chcount++;
}

cout << "\nСлов: " << (wdcount - 1) << endl << "Букв: " << (chcount - 1) << endl;

return 0;
}
123123123123.png10 Кб, 726x455
519 1392291
>>392290
Ебаная сосака.

Перезалил скрином.

Ошибка с getche. Не хочет компилировать.
520 1392293
>>392291
Может _getche() ?

чтоб тебе ебло так перекосило, как ты код форматируешь
521 1392294
>>392290
Conio.h это не стандарт, а какая-то нонейм параша
522 1392299
>>392291
Стандарт тебе дает cin.get() для чтения из потока одного символа, нет - не хочу, хочу писать виндовое говно.
523 1392300
>>392294
>>392299
getch() из conio.h еще с эпохи DOS является одним из самых простых способов реагировать на нажатия кнопок в "реальном времени" (не долбя ентер после каждого символа).

То что в данном случае можно обойтись без этого, конечно уже другой вопрос.
524 1392302
>>392288
В чем проблема ?

Я рили ненавижу строки и все что с ними связано. Наверное нужно через указатель делать.
525 1392309
>>392302
Ты пишешь в массив размером один байт. Вот почитай к чему это может привести: https://en.wikipedia.org/wiki/Stack_buffer_overflow
526 1392326
Объясните плез, как работает радиальный градиент в фотошопе? Какой там алгоритм может быть?
527 1392349
Я не понимаю как так. Решаю сейчас задачки на leetcode на C++, и судя по комментариям решения на жаве оказываются нередко намного быстрее.
Например сейчас сделал сложения чисел хранящихся в односвязном списке(в порядке с конца) - вродё всё предусмотрел чтобы нигде ни одной лишней проверки не было, ничего лишнего не использовалось, да ещё и порчу исходные данные(использую первый список чтобы лишний раз new не вызывать и если он кончается тогда в конец его вставляю уже нвоые узлы), моё решение занимает 24 мс, это лучше чем 99.91% решений на C++. А в обсуждениях скидывают решения на жаве 1-2 мс(причём 2мс у решений на жаве в топ 97% что ли, т.е. в среднем их решения намного быстрее), и это при том, что их решения мало того что не обходят все лишние проверки условий, так они ещё и не портят исходные данные(т.е. с самого начал вызывают new), а список выделяя для него память(я пробовал также делать - решение становится 28мс вместо 24мс).
Вот например
https://leetcode.com/problems/add-two-numbers/discuss/1182/4ms-11lines-java-solution
(его решения я один в один переносил на C++ результат - 28мс)
4мс, использует деления, одинаковые проверки, исходные данные не портит.
Вот мне поэтому интересно - это просто жава решения на других исходных данных тестируются или JIT какой-то всё оптимизирует в этой задаче?
image.png22 Кб, 720x272
528 1392353
И что за хуйня?
529 1392354
>>392326
Уж не знаю, на кой черт тебе этот вопрос задавать в плюсовом треде сдалось, но я в благородство играть не буду, раз ты хочешь через жопу, то держи ответ через жопу:
Отображение f : R² → [0, 255] по правилу (√(x - x0)² + (y - y0))² = k) * c, где k - расстояние от выбранной точки (x0, y0), откуда строится градиент, а c - коэффициент нормирования, чтобы для любой выбранной точки мы попадали в допустимый для RGB диапазон.
530 1392355
>>392354
Ух, таки проебался с квадратом.

>(√(x - x0)² + (y - y0)²) = k) * c

531 1392358
>>392349
наебывают на замере времени, инфа 100%

Если там срр без оптимизаций компилируют, всякое возможно.
По крайней мере -g запросто может быть хуже -O3 в десять раз. (хотя и не в этом случае, я думаю)
532 1392373
>>392349
>>392358
Алсо, если сравнить распределения решений c++ и ждавы, то видно что время выполнения С/С++ они меряют и правда как-то хуево.
533 1392375
>>392373
бле, скрин не обрезался. вычисляйте по айди, бейте ебало
534 1392396
>>392349
Так собери сам и проверь.

Алсо,

> симер_очка


Пиздец, вылились
535 1392450
>>392279
Из ассемблера тоже можно дергать API функции, в частности можно делать оконные приложения.
Аноним 536 1392462
>>392450
Я скорее о том что asm может работать с ресурсами в и без api системы. Сбросить настройки тогоже биваса например.
емнип:
mov ax, 1010h
mov dx, 70h
out dx, ax


Да, грязно, но можно. И так со многим.
537 1392489
>>392309
Да, потому что я не знаю как выделить char array неизвестного размера. Говорю же, рот шатал этих строк.
538 1392492
>>392489
Так а на каком ты языке пишешь? Зачем тебе сишные строки?
539 1392499
>>392492

>Зачем тебе сишные строки


Чтобы использовать printf/scanf в различных вариациях (e.g sscanf/sprintf), а их я использую потому что того требует ТЗ.

>Так а на каком ты языке пишешь?


C/C++ по - моему.

В принципе, уже пишу документацию, код таки в релиз ушел.
540 1392500
>>392499
Да, кстати все равно спасибо. Все необъяснимые вещи были как раз из - за вот этого >>392309, въебал max_size_limit и соответсвенно нормально выделил массив.
541 1392504
>>392499
Их может для этих функций заменить vector<char>::data().
По идее, string::data() тоже может их заменить, но у меня только константный метод выбирается компилятором и не компилится.

Ты можешь уже хоть выдержку из своего тз скинуть, чтобы мы точно поняли, что тебе нельзя в потоки(которые ты используешь) и что тебе запретили использовать std?
542 1392521
int number;
cin>>number;

Если во время набора очередного числа просто хуйнуть enter ничего не ввидя, он реально введется (строка сменяется) в терминале и продолжит ждать ввода номера, после ввода числа и поторного нажатия enter число улетает как надо в number, но как заставить cin фейлится если введен тупо enter без чего - либо.

>cin.get() == '\n' не работает
543 1392524
>>392521
Если вводить пробелы, таже ебатория случается кстати.
544 1392537
>>392521
Решение довольно кривое, т.к. обычно это никому не нужно. Сначала считываешь из потока в std::string с помощью std::getline, и ее анализируешь:
- если вначале есть пробельные символы, то выкидываешь ошибку;
- если все норм, то создаешь std::istringstream и из него считываешь в переменную.
545 1392542
Есть ли какое-нибудь хорошее пособие по визуальному программированию winapi(желательно под visual studio)? Все книги в основном по общим принципам в виде консольных приложений.
546 1392547
>>392542
Этим некроговном никто давно не занимается, даже сам микрософт. Либо дрочи QT, либо всякую ересь типа WinRT
547 1392550
Почему падает на вызове деструктора?

#include <cstddef>
#include <iostream>

struct String {

String(size_t n, char c) : size(n) {
str = new char[n + 1];
for (size_t i = 0; i <= n; i++) {
str = c;
str++;
}
str = '\0';
str = str - n;
}

~String() {
delete[] str;
}

size_t size;
char* str;
};

int main() {
String string = String(4,'A');
std::cout << string.size << std::endl;
std::cout << string.str;
}
547 1392550
Почему падает на вызове деструктора?

#include <cstddef>
#include <iostream>

struct String {

String(size_t n, char c) : size(n) {
str = new char[n + 1];
for (size_t i = 0; i <= n; i++) {
str = c;
str++;
}
str = '\0';
str = str - n;
}

~String() {
delete[] str;
}

size_t size;
char* str;
};

int main() {
String string = String(4,'A');
std::cout << string.size << std::endl;
std::cout << string.str;
}
548 1392551
>>392550
Ебаная вакаба табуляций наставила.
#include <cstddef>
#include <iostream>

struct String {

String(size_t n, char c) : size(n) {
str = new char[n + 1];
for (size_t i = 0; i <= n; i++) {
str = c;
str++;
}
str = '\0';
str = str - n;
}

~String() {
delete[] str;
}

size_t size;
char* str;
};

int main(){
String string = String(4,'A');
std::cout << string.size << std::
std::cout << string.str;
}
548 1392551
>>392550
Ебаная вакаба табуляций наставила.
#include <cstddef>
#include <iostream>

struct String {

String(size_t n, char c) : size(n) {
str = new char[n + 1];
for (size_t i = 0; i <= n; i++) {
str = c;
str++;
}
str = '\0';
str = str - n;
}

~String() {
delete[] str;
}

size_t size;
char* str;
};

int main(){
String string = String(4,'A');
std::cout << string.size << std::
std::cout << string.str;
}
123.png29 Кб, 897x686
549 1392557
>>392551
В жопу вакабу.
550 1392559
>>392551
String string = String(4,'A');
Из-за этой строки. Почитай на досуге про конструктор копирования, копирующий оператор присваивания, ну и про move-семантику не забудь.
Если коротко объяснять, то в твоей программе вызывается два деструктора, которые вызывают оператор delete[] над одной областью памяти, что по правилам C++ является undefined behavior (UB).
551 1392561
>>392551

>String string = String(4,'A');


А разве можно так использовать зарезервированные слова? Или оно зарезервировано только если подключать библиотеку string?
552 1392562
>>392547
Да мне чисто для учебы, освоения принципов хелоуворлдостроения, но в оконном приложении.
553 1392564
>>392562
Петцольд - Программирование для Windows 95. Ну и MSDN разумеется.
1556711913014.png554 Кб, 900x900
554 1392567
>>392354
Благодарю, анон.
555 1392569
>>392559
Заменил
String string = String(4,'A');
на
String string (4,'A');
и все равно падает на дестракторе.
556 1392571
>>392489
int cunt = 200;
char yadaun = (char)malloc(sizeof(char)*cunt);
557 1392573
>>392571
char yadaun = (char)malloc(sizeof(char)*cunt);
558 1392574
>>392573
char \ yadaun = (char \)malloc(sizeof(char)*cunt);
559 1392576
>>392564
Это ты так подколол, что winapi настолько уже устарел по сравнению с тем, чем сейчас пользуется, как и описываемое в книге по сравнению с winapi в VS/C++ builder?
560 1392582
>>392576
Winapi для окошек - да, им вообще уже никто не пользуется напрямую. Winapi для других вещей вполне используется.
561 1392590
>>392569
Посмотрел повнимательнее, у тебя какая-то хуита в конструкторе написана. Замени на:
String(std::size_t n, char c) : size{n}, str{new char[n + 1]} {
std::fill(str, str + n, c);
str[n] = '\0';
}
#include <algorithm> не забудь. Все должно заработать.
562 1392597
>>392537

>Решение довольно кривое


Вполне неплохое, по сравнению с моим в итоге:
scanf("%[0-9]s", &element)?({goto next;}):({goto fail;});
fflush(stdin);

Спасибо.
563 1392615
>>392557
i <= n
За пределы массива пишешь нулевой указатель
564 1392616
>>392615

>нулевой символ


Саник-фикс
565 1392621
>>392615
Не, он n + 1 объявил.

>>392557
Ты на n + 1 позицию ставишь \0, возвращаешь указатель на n позиций назад и вызываешь для этого указателя delete[].
Если я не проебался с пониманием того, что ты делаешь, то косяк в этом.

Почему бы в цикле не сделать str = c? И не надо смещать потом указатель обратно.
566 1392636
>>392621
Ты прав, это главный его проёб. Но он всё равно пишет n+1 символов, и ставит \0 на n+2-й.
567 1392815
Аноны, а есть ли существенные различия между чистым C и тем, си, что является подможеством C++?

Прост хочу прояснить для себя кой-какие вопросики по крестам, что сводятся к си.
Если я возьму книжку K&R, например, там будет все актуально для C++, или есть более специализированная литература?
Сам по себе си мне не нужен, только в рамках плюсов.
568 1392833
Товарищи, что я делаю не так? Как объявлять шаблоны функций?

Файл main.cpp:

#include "myswap.hpp"
int main() {
int a = 10, b = 20;
myswap(&a, &b);
}

Файл myswap.hpp:
template <typename Type>
void myswap(Type , Type);

Файл myswap.cpp:
template <typename Type>
void myswap(Type a, Type b) {
Type c = a;
a = b;
b = c;
}

___
Ошибка линковщика: C:\Users\...\AppData\Local\Temp\ccwOVCDE.omain.cpp:(.text+0x2e): undefined reference to `void myswap<int>(int, int)'

Если перекинуть определение функции myswap в файл main.cpp, то всё работает.
Возникает закономерный вопрос: "Как объявлять шаблоны функций?.."
568 1392833
Товарищи, что я делаю не так? Как объявлять шаблоны функций?

Файл main.cpp:

#include "myswap.hpp"
int main() {
int a = 10, b = 20;
myswap(&a, &b);
}

Файл myswap.hpp:
template <typename Type>
void myswap(Type , Type);

Файл myswap.cpp:
template <typename Type>
void myswap(Type a, Type b) {
Type c = a;
a = b;
b = c;
}

___
Ошибка линковщика: C:\Users\...\AppData\Local\Temp\ccwOVCDE.omain.cpp:(.text+0x2e): undefined reference to `void myswap<int>(int, int)'

Если перекинуть определение функции myswap в файл main.cpp, то всё работает.
Возникает закономерный вопрос: "Как объявлять шаблоны функций?.."
569 1392838
>>392833
Быстрофикс.

>void myswap(Type , Type);



void myswap(Type , \
Type
);

>undefined reference to `void myswap<int>(int, int)'


undefined reference to `void myswap<int>(int, \
int
)'

Звездочки, не сломайтесь, что б вас.
2e2d362s-960.jpg100 Кб, 690x527
570 1392839
>>392838

Да ну его в болото.
571 1392841
>>392833

Быстрофикс #2:

Файл main.cpp:

#include "myswap.hpp"
int main() {
\tint a = 10, b = 20;
\tmyswap(&a, &b);
}

Файл myswap.hpp:
template <typename Type>
void myswap(Type , Type );

Файл myswap.cpp:
template <typename Type>
void myswap(Type a, Type b) {
\tType c = a;
\ta = b;
\tb = c;
}

Ошибка линковщика: C:\Users\...\AppData\Local\Temp\ccwOVCDE.o\tmain.cpp:(.text+0x2e): undefined reference to `void myswap<int>(int , int )'
572 1392842
>>392833
Я не очень разбираюсь если честно, но по-моему дело в подключении файлов, судя по ошибке линковщика, а не в объявлении шаблона.
У тебя main подключает hpp файл с одним прототипом, а само тело функции находится в файле, который как у тебя не подключен.
573 1392843
>>392841

Не, ну теперь точно в песду.
Просто верьте, что я нигде не объебался с указателями.
Я на Си прогал с полгода. С указателями всё нормально.
574 1392844
>>392842
который никак*
575 1392846
>>392842

Не. Судя по мейк-файлу, myswap.cpp в проекте.

# Project: test
# Makefile created by Dev-C++ 5.11

CPP = g++.exe
CC = gcc.exe
WINDRES = windres.exe
OBJ = main.o myswap.o
LINKOBJ = main.o myswap.o
LIBS = -L"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib32" -m32
INCS = -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include"
CXXINCS = -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++"
BIN = test.exe
CXXFLAGS = $(CXXINCS) -m32
CFLAGS = $(INCS) -m32
RM = rm.exe -f

.PHONY: all all-before all-after clean clean-custom

all: all-before $(BIN) all-after

clean: clean-custom
${RM} $(OBJ) $(BIN)

$(BIN): $(OBJ)
$(CPP) $(LINKOBJ) -o $(BIN) $(LIBS)

main.o: main.cpp
$(CPP) -c main.cpp -o main.o $(CXXFLAGS)

myswap.o: myswap.cpp
$(CPP) -c myswap.cpp -o myswap.o $(CXXFLAGS)
575 1392846
>>392842

Не. Судя по мейк-файлу, myswap.cpp в проекте.

# Project: test
# Makefile created by Dev-C++ 5.11

CPP = g++.exe
CC = gcc.exe
WINDRES = windres.exe
OBJ = main.o myswap.o
LINKOBJ = main.o myswap.o
LIBS = -L"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib32" -m32
INCS = -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include"
CXXINCS = -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++"
BIN = test.exe
CXXFLAGS = $(CXXINCS) -m32
CFLAGS = $(INCS) -m32
RM = rm.exe -f

.PHONY: all all-before all-after clean clean-custom

all: all-before $(BIN) all-after

clean: clean-custom
${RM} $(OBJ) $(BIN)

$(BIN): $(OBJ)
$(CPP) $(LINKOBJ) -o $(BIN) $(LIBS)

main.o: main.cpp
$(CPP) -c main.cpp -o main.o $(CXXFLAGS)

myswap.o: myswap.cpp
$(CPP) -c myswap.cpp -o myswap.o $(CXXFLAGS)
15456936670140.png119 Кб, 400x230
576 1392857
>>392557
Ну ёпт, анон. Ты заполняешь в str со сдвигом нахуя именно так непонятно n+1 элемент, а потом возвращаешься на n назад. В итоге ты удаляешь массив не с адресом, например, 0x0000A0A0, а 0x0000A0A1.
578 1392872
>>392865

Вот это я прозрел, однако.
Если скомпилить шаблон, то в объектнике будет так же пусто, как сейчас в моем желудке...

А чё. Удобно.

Спасибо, анон.
579 1392949
Как мне свою лабу скомпилить без зависимостей? vcruntime140.dll висит в импорте, пердун препод не принимает работу.
580 1392951
>>392949
Скомпиль прямо на компе, где показываешь, или положи ucrtbase, vcruntime, msvcrt и остальные зависимости (посмотри через depends.exe) в папку с твоим исполняемым файлом. В крайнем случае посмотри, какой redistributable стоит на том компе, установи соответствующую студию у себя и скомпиль ею.
Технически ты можешь вообще избавиться от CRT, но не для студенческой лабы это дело.
581 1392960
>>392949
Компилируй не при помощи VS, а при помощи mingw
582 1392969
>>392949
статически слинкуй рантайм, лол
583 1392984
>>392969
Бля. Я (>>392951) как-то про это и забыл.
584 1393000
>>392960
А что не так с VS? там какие-то особенности при компиляции?
585 1393040
>>392951
>>392969
У меня /MT стоит в настройках. И прописал в additional dependents ucrtbase, vcruntime, msvcrt либы. Или по-другому как-то надо?

>>392960
Можешь команду подсказать хоть как компилить? Я нуль.
586 1393080
Аноны, испытываю сложности с переносом сущностей реального мира в плоскость языка программирования. То есть проблемы с математическим описанием этих сущностей или что тр вроде того.
Есть ли книги, в которых описываются способы решения этой проблемы?
587 1393267
>>393080

> Аноны, испытываю сложности с переносом сущностей реального мира в плоскость языка программирования. То есть проблемы с математическим описанием этих сущностей или что тр вроде того.


Ну приведи пример того что ты пытаешься перенести и желательно распиши ход своих мыслей касательно того как бы ты это сделал
588 1393319
>>393080
Перельман другой "Занимательная физика", "Живая математика" и т. д.
589 1393565
Суп, анон. Где можно скачать эмбаркадеру билдер 7 с++? В гугле одна ересь
590 1393577
>>393565
Как я понял, C++ Builder в состав RAD Studio входит. А это есть на рутрекере
591 1393599
>>393565
А зачем тебе именно 7 ?
У них comunity edition сейчас бесплатна (для некоммерческих целей) и с довольно большим функционалом.
592 1393616
>>393599
В шараге где учусь именно ее юзают, поэтому приходится жрать че дают. Если там все совместимо то ок, спасибо
593 1393644
Блядь, как деструктор у строки вызвать без using std::string?

#include <string>

//using std::string;

int main()
{
string str;
str.~string();
}

error C2300: 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>': class does not have a destructor called '~string'
594 1393661
>>393644
Пиздец ты ебанутый.
595 1393664
>>393661
Что не так?
Мопед не мой, у меня пример из книги не работает без using.
596 1393670
>>393664
данный функционал нужен в ОЧЕНЬ РЕДКИХ случаях, и уж точно не в твоем примере, потому-что UB. Зачем ты это вообще мучаешь?
597 1393671
#include <windows.h>
#include <vector>

class MyClass
{
public:
MyClass() {}
~MyClass() { Beep(4000, 10); }
};

int main()
{
std::vector<MyClass> MyVec;
MyVec.emplace_back();
delete &MyVec.at(0);
}

Почему оно не крашнулось еще на delete? И если delete сработал почему деструктор вызывается 2ой раз?!
598 1393710
>>393670

>не в твоем примере


Я набросал просто по минимуму, чтобы ошибку продемонстрировать.
В книге вызов деструктора выглядит вполне легально: там строка - это член union, сам union завернут в класс.

>Зачем ты это вообще мучаешь?


Ну бля, столкнулся с непонятной хренью, надо же разобраться. Тем более - это последние страницы книги буквально.
599 1393715
>>393671

> Почему оно не крашнулось еще на delete?


А почему должно крашнуться?

> И если delete сработал почему деструктор вызывается 2ой раз?!


Вектор вызывает деструктор всех своих элементов. Откуда ему знать, что ты вручную вызвал деструктор его элемента? Надо было тогда и из вектора удалить его.
600 1393716
>>393710
Приведи полный пример, дебич
изображение.png133 Кб, 695x700
601 1393739
>>393716
Просто скажи как вызвать деструктор без using.
Пофигу на UB, как это скомпилировать?
602 1393743
>>393739
s.~basic_string<char>()
Я понимаю, что книги не могут успевать за стандартами, но в С++17 для данного случая ввели безопасный и удобный std::variant (ну или если невозможно использовать C++17, тогда boost::variant).
qqqqqq.png2 Кб, 324x72
603 1393776
Как сделать, чтобы в консоли после вывода строки стоял дефолтный текст, который можно менять
604 1393777
>>393776
например будет выведено:
Путь к файлу: D:\...
и если нажать enter, то это значение помещается в path
605 1393856
>>393776

>printf, malloc. scanf


>Крестовый тред


Ну ебана. Вам, батенька, в си тред. Здесь суровые крестовики хуярят лямды на шаблонах со сфинае.
606 1393878
Посоветуйте годноты по mfc. Как-то не нахожу толковых гайдов.Лучше всего на русском, но и английский пойдет.
607 1393970
>>393856

>Здесь суровые крестовики


Содомит!
608 1394001
>>393878
M S D N
S D N M
D N M S
N M S D
609 1395024
Двач хэлп, как в строках задать условие определения десятичных цифр
610 1395035
611 1395140
>>395035
Кароче, задали задание, через структуру лист, написать программу по определению в строке десятичных цифр и выносу их. Написал код на работу со строками(шоб слова по отдельности определялись), а вот как определить десятичная ли у меня цифра для выноса не могу понять как
612 1395158
>>395140
std::isdigit
не, не слышал? Погуглил бы хоть.
rtgrtgrtg.png23 Кб, 1120x540
613 1395168
>>395140
Как тебе такой код/10
Препод кончит фонтаном.
1557335150170.jpg133 Кб, 1034x720
614 1395830
Аноны, помогите плз. Как определить крайние пиксели для растровой области? По какому правилу они будут считаться граничными?
615 1395839
>>395830
Я знаю про крайнюю плоть, но не пиксели. Что такое растровая область? Битмапа, часть битмапы? Текстура в директиксе? Что?
616 1395841
>>395839
Область на растровой картинке.
617 1395849
>>395839
Если непонятно, то можно представить это как массив пикселей. Как для массива пикселей найти пиксели, которые находятся с краю?
618 1395874
>>395849
А фон какой? Ищи пиксели, которые отличаются от фона - это и будут твои границы
619 1395876
>>395874
А если все пиксели области отличаются от фона, то что?
620 1395877
>>395876
Тогда иди нахуй со своей задачей. границы области - границы картинки
1557339103244.PNG20 Кб, 565x566
621 1395878
>>395877
Стоп, стоп, стоп, какой еще нахуй границы картинки. Вот картинка, посередине область. Как границы области могут быть границами картинки?
622 1395880
>>395878
Короче я запостил пикчу и понял. Надо проверять, есть ли по соседству с пикселем другой пиксель с цветом фона. Если есть хоть один такой сосед, то значит наш пиксель - граничный. Только это дебильный алгоритм получится, проверять каждый пиксель области, точнее соседей каждого пикселя, а их будет 8 штук. Если область будет большая, алгоритм будет медленным. Надо как то сократить количество проверок. Может знает кто, как это можно провернуть?
623 1395881
>>395880
Чего ты хочешь добиться? Получить вектор 2д точек, которые будут границей? Нахуя?
624 1395882
>>395881

> Получить вектор 2д точек, которые будут границей?


Да, хочу очень.

> Нахуя?


Дрочить буду.
625 1395901
>>395882
Если у тебя только два цвета, то проще будет каждую строку и брать пиксели которые отличаются от фона (например, первого пикселя)
626 1395907
>>395901
Построчно не выйдет, тогда крайние верхние и крайние нижние пиксели не попадут в выборку.
627 1395909
Ананасы, поясните за виртуальные функции и наследование.
К примеру, базовый класс Widget и у него есть какие-то виртуальные функции.
А в качестве наследников будут ButtonWidget, LabelWidget и тд и тп.
Естественно у них будут функции которых нет в базовом классе: Click, SetText и прочее.

Всегда ли нужно в качестве типа указателя иметь базовый класс?
Или можно, допустим, в базовом классе определить несколько виртуальных функций и в наследниках переопределять их и добавлять другие функции (не только виртуальные) при необходимости, если нужно?
Считается ли это каким-то неправильным проектированием?
628 1395933
>>395830
Операторы Прюитта, Собеля и Кэнни, методы Харриса, Моравеца и SUSAN.
ебись с этим, как я ебался на диплом, зато к получится - будешь собой доволен.
629 1396465
Чому вы не перекатываетесь кста?
630 1396470
>>395909
Как я понял, через указатель надо делать только если класс абстрактный с "чисто виртуальной" функцией без определения. То есть тут больше вопрос полиморфизма нежели чем наследования.
631 1396494
Аноны, поясните, как сделать. Допустим есть класс точка со свойствами Х и Y. Как мне правильно добавить к свойствам класса массив с указателями на соседние точки, чтобы можно было потом ссылаться на эти соседние точки? Чтобы можно было потом, например, для точки А писать что то типа А.nearPoint[2]->Х, то есть обращаться к координате соседней точки для моей точки.
632 1396500
>>396494
std::vector<point *>?
633 1396507
>>396500
Я пробовал уже нечто такое, ругается, что якобы taking the address of temporary object of type, когда я прописываю, на какие адреса должны ссылаться указатели.
634 1396508
>>381995 (OP)
Сап, как получить текущую директорию в с++ ?
Гугл выдает 17 версию языка, которая не поддерживается у меня и какие то костыли на си.
Возможно я не правильно гуглю и есть простой однострочный способ получить текущую директорию, как это например в питоне или жаве.
635 1396529
>>396508
Либо читай про сишный DIR, либо пробуй вытащить из потока результат system("cd").
А вообще, по идее, filesystem доступна не только в 17 стандарте, но и в 14 - правда, это достаточно уебищно из-за отсутствия автовывода типа шаблона.
Попробуй std:: experimental::filesystem::v1 посмотреть, мб у тебя будет. Мне изначально на рабочий комп поставили VS2012, там было это. В общем, удачи, брат - ебаться тебе много придется.
4tnkmwpd7Mc.jpg61 Кб, 874x177
636 1396541
вроде как сюда писать. как должен выглядеть полный код программы (хотя бы для консоли), рассчитывающий эту функцию? безрезультатно бьюсь третий день, с меня тонны нефти
637 1396545
>>396541
Разбиваешь это уравнение на разные функции.
Например x2k+1 сделаешь одну функцию
Для 4k2-1 другую и тд
Потом это всё комбинируешь в цикле и выводишь результат
638 1396547
>>396545
спасибо, буду пробовать
1557425112120.jpg168 Кб, 1280x1224
639 1396556
Как сделать, чтобы Qt записывал число в файл в нужное количество байт? То есть у меня там например 64, а он записывал бы 0064? Записывать в файл надо в 16-ричном формате, а числа в программе в quint16.
640 1396563
>>396556

> Записывать в файл надо в 16-ричном формате, а числа в программе в quint16.


Записывай по два quint16 в один quint32 или какой там тип
А при считывании "разбивай" quint32 на два quint16
641 1396564
>>395880

> проверять каждый пиксель области, точнее соседей каждого пикселя, а их будет 8 штук


зачем 8? проверяй 2 или 3 если диагональные тоже считаются граничными.
642 1396572
>>396563
Все, проблема решилась. Оказывается, он может и quint16 записывать, просто я забыл записывать по одному числу в цикле, и из-за этого он писал хуйню.
643 1396573
>>396564
Я уже придумал, как это делать, проверяя все 8, но не проверяя каждый пиксель области. Теперь надо придумать, как запилить градиент от какой нибудь центральной точки до границ неправильной области.
644 1396581
>>396507
Так храни все точки в одном месте и бери их адреса
645 1396588
>>396573
Сука, ну я ж написал.
>>395933
646 1396598
>>396588
Да, я видел. Уверен, что это отличные способы, но они слишком сложные для моего случая, когда есть всего два цвета. С двумя цветами можно придумать что нибудь попроще.
647 1396614
>>396598
Ты в любом случае будешь использовать те же принципы, только изобретешь свой велосипед. Конкретно сейчас ты хочешь SUSAN использовать(оценивать количество рядом стоящих пикселей схожего цвета, а вообще интенсивности, если по-хорошему).
Хочешь просто сделать - бери оператор Прюитта, ебашь свертку и получишь только граничные пиксели после обработки. Собель будет точнее, Кэнни ещё точнее, но сложнее.
648 1396616
>>396614
Я думаю просто выбирать следующий пиксель рядом с текущим, который соседствует хоть с одним пикселем фона. То есть грубо говоря проверять все 8 соседних пикселя: если сосед белый, соседствует с черным, то переходим на него, а предыдущий вносим в контейнер. Ну и надо проверять, не пришли ли мы к самому первому пикселю, чтобы выйти из цикла.
649 1396621
>>396616
А это метод Моравеца, брат.
Он сложный самый долгий был у меня среди всех реализованных.

Я тебе говорю, проще в цикле по всем пикселям(т.е. по I и по j) сделать цикл по соседям, в котором умножать интенсивность пикселя на соответствующее значение матрицы свертки(имеется в виду, что левый верхний сосед умножается на число, которое стоит в левом верхнем углу матрицы свертки), собрать результат а переменную, разделить ее на коэффициент нормировки и записать в пиксель.
Описал немного сложно, но загугли, описания алгоритмов есть на том же хабре.
image.png226 Кб, 680x383
650 1396622
>>396616
>>396614
один не может тривиальную проблему наговнокодить, другой третьекурсник затирает ему про какие-то операторы, свертку, фильтры, которые они недавно прошли. типикал с++.
651 1396624
>>396622
Один ты Д'Артаньян
652 1396625
>>396529
Cпасибо, в общем я решил пойти по другому пути.
Пздц, чем больше работаю с С++ тем больше удивляюсь что какие то элементарные вещи не сделаны, либо сделаны через пень колоду.
653 1396626
>>396621
А матрицу свертки откуда взять? И коэффициент нормировки.
654 1396631
>>396622
А ты не видел мое сообщение, что я на диплом это делал? Определенно, я до сих пор студент, да. А ты в самом деле Д'Артаньян, но нихуя в обработке изображений не смыслишь.

>>396626
А так и гугли, если через свертки - то это Прюитт, Собель, Кэнни. Там матрицы и будут.
655 1396638
>>396631
да, дартаньян. может сюда ради бинарного изображения сразу opencv притащить, а то вдруг
656 1396640
>>396638
Ну давай, предлагай идеальное решение, раз ты у нас самый умный.
1557508320451.png146 Кб, 320x320
657 1397175
Ошибся в формуле, и вместо градиента прога стала рисовать вот это. Смотрите, какая красота. Похоже на какую то атомную структуру.
658 1397194
>>397175
Уууу... Всё, пиздец. У меня такая хуйня с хлебом была, он испортился
1557511134449.PNG134 Кб, 925x438
659 1397199
>>397194
Да не все нормально, уже исправил. Слева линейный градиент, справа логарифмический надеюсь, что логарифмический
660 1397202
Плюсач, как реализовать перегрузку операторов абстрактного класса?

class Poly_Base
{
public:
friend Poly_Base operator+(const Poly_Base &lhs, const Poly_Base &rhs);
~Poly_Base() = 0;
};

class Poly : public Poly_Base
{
int i;
};

хочу использовать интерфейс абстрактного класса через указатели на него
Poly_Base
p1 = new Poly(), p2 = new Poly();
Poly_Base
p3 = new Poly(p1 + p2);
661 1397224
662 1397262
Аноны, я что то не могу сообразить.
Вот любую функцию можно смещать относительно координат, верно? Например, арксинус.
Представляем его в виде записи a arcsin(bx−c)+d, где а - амплитуда, b - период, с - смещение периода, d - смещение амплитуды. И вот считаю я значит для своего графика эту формулу, и у меня получается с = pi/2. И из-за этого я тупо не могу посчитать арксинус, потому что внутри скобок из-за этого pi/2 всегда получается число больше 1, а арксинус больше 1 не рассчитывается. И как тогда считать смещение для арксинуса?
image.png1,5 Мб, 2048x1024
663 1397276
>>397262
почему у тебя радианы внутри аргумента арксинуса? почему у тебя какой-то "период" внутри аргумента арксинуса? ты с тригонометрией не обосрался?
1557523186927.jpg60 Кб, 604x460
665 1397292
>>397262
>>397278
Наверно слишком сложно объясняю, в общем сформулирую по другому.
Арксинус по умолчанию меняется от -pi/2 до pi/2 по Х, и от -1 до 1 по Y. Мне же нужен график арксинуса от 0 до xмах по Х и от 0 до yмах по Y. То есть смещенный наверх вправо. Как эту йобу запилить?
666 1397300
>>397292

> Арксинус по умолчанию меняется от -pi/2 до pi/2 по Х, и от -1 до 1 по Y


Арксинус принимает значения от -1 до 1 и выдает значения от -pi/2 до pi/2.

>То есть смещенный наверх вправо


Вот так например
https://www.wolframalpha.com/input/?i=asin(x+-+1)+++2
https://ideone.com/C5EMJE
667 1397311
>>397300
Спасибо, анон.
668 1397350
>>397224

>френд функшонс ар нот инхеритед


>https://stackoverflow.com/questions/3561648/why-does-c-not-allow-inherited-friendship


Я понимаю что их нельзя перегрузить. У меня вопрос можно ли как то организовать френд функцию абстрактного класса дабы работал оператор сложения?
Вариант с оператором+ членом класса примерно представляю, его можно перегрузить. Интересно именно френд функция
669 1397818
Сап.Как сделать так,чтобы фишки нард могли перемещаться только в определённые места("лунки" или как их там обозвать)?vcl,фишки и поле-image
Не обоссывайте,я сильно ньюфаг
671 1398108

>просыпаюсь в 2019


>в 20 стандарт завезли хуйни примерно как с с++98 -> c++11


Ебаать, когда же это все учить
672 1398138
>>398108
А зачем учить всё?
Я вот нихуя не понимаю в шаблонах и не трогаю их пока.
673 1398316
Перемещаюсь по коду мышкой, стираю мышкой, все делаю мышкой, кроме написания самих букв. Напрягает, вечно правая рука двигается туда сюда от клавиатуры до мыши. Вообщем хочу себе облегчить жизнь и научиться делать все дела на клавиатуре. Но как блять!? Нужно специальные бинды делать или что?
674 1398339
>>398316
У меня от этой хуйни брат умер рука разболелась. В отпуске заставил себя выдрочить всевозможные сочетания для студии\вима. Сейчас по минимуму пользуюсь, брат воскрес.
675 1398373
>>398316
shift+ctrl+влево\вправо - выделить слово
shift+ctrl+вверх\вниз - переместить строку
shift+del - удалить строку
shift+end - выделить строку от курсора

Ну и перемещение по файлам тоже хорошо бы освоить, но это зависит от ИДЕ.
676 1398681
>>398373

>стрелки


Пользуйся православными hjkl, так вообще руку не надо двигать.
Хотя кто бы говорил, я сам в виме стрелками перемещаюсь.
677 1398802
>>398681

> hjkl


Нихуя неудобно.
Они постоянно "теряются" в остальных клавишах или часто путаю направление.
За это время сделал бы на стрелочках всё что надо.
678 1399021
>>398802
рассуждения человека, не пробовавшего привыкнуть
679 1399024
>>398802
Даже в стандартном убунтовском pdf ридере функции стрелок продублированы на hjkl. И manpages туда же. И консольный клиент vk. HJKL - это охуенно! Кто считает иначе, тот хуесос
680 1399081
>>399024
>>399021
>>398373
>>398339
Вы мне объясните. В visual-studio это все есть? Текстовые редакторы аля нотепад ака вим не интересуют.
681 1399174
>>399081
ХЗ. Во многих IDE встроена симуляция vim, еще больше где поддерживатся как минимум доп.плагином. Если IDE не умеет в редактор с цивилизованной парадигмой, то это хуевая IDE. Обезьянья парадигма с единым режимом "для простоты" не считается цивилизованной.
682 1399250
>>399081
Не слушай ебанатов-некроёбов, в студии и без этого много нормальных хоткеев. Если мало, ищи плагины (например, subword navigation)
683 1399305
>>399250
Никакие плагины не дадут той власти мгновенного редактирования, которую дает Esc в виме. Пока клавиши с буквами без зажатых альтов и прочего говна печатают только буквы, все очень хуево.
684 1399477
>>399250

> нормальных хоткеев


Переход к определению функции, например, находится в пизде клавиатуры на F12 или где-то там.
685 1399479
>>399021
Пробовал. И писал в виме какое-то время.
Да, многие вещи очень удобны, но навигация по коду, переход к определению/реализации функции (особенно что касается виртуальных), цепочка вызовов и тд и тп это всё приходится ебаться и настраивать. В той же студии это уже всё есть.
686 1399481
>>399305

> Никакие плагины не дадут той власти мгновенного редактирования, которую дает Esc в виме


В виме можно переименовать переменную в рамках функции/класса?
В виме можно переименовать функцию какого-то класса?
Или добавить (убрать) у неё аргумент и чтобы в реализации/определении тоже поменялось?
687 1399668
>>399481
Это все можно и на vim повесить. Но вот сама техника редактирования кода там непревзойденная.
688 1400118
vim для быдла, ноудискасс
689 1400236
>>400118
Согласен. Только очень глупый человек может счесть серьезным занятием использование говноедского видео-терминала. Все настоящие ценители пользуются строчным принтером вместо монитора, перенаправив на него stdout из bash, и довольствуются адекватной последовательной работой с редактором sed. Припадочноя интерактивщина с ненужным перемещением курсора по вертикали - вовсе для душевнобольных, и даже визуализированное перемещение курсора по горизонтали - для гуманитариев, неспособных держать в голове даже одну строку текста, набранную вслепую. Такие люди напоминают школьников, предпочитающих электронные книги бумажным. Экраны - заговор жидов, зарабатывающих на испорченном зрении потребителя. Пожалуй, кончу на этом, чтоб не деградировать от невозможности писать в петровской орфографии за неимением соответствующей раскладки.
690 1400362
есть кто работает в 19 визуалке, скажите какого хрена дебагер выплевывает исключения по поводу и без при всем том что та часть кода на которое выкидывает исключения работал без проблем.
691 1400420
>>400362
Ебанаты из Microsoft сломали студию ещё в версии 15.9, починить собираются только этим летом (тикет написан в ноябре, ответ через пару месяцев, починят почти через год, пиздец)
692 1400507
>>400362
Нехуй сырое говно качать. Только ньюфани не знают, что у продуктами майкрософт можно пользоваться спустя минимум год после релиза. Ставь 17 обратно.
693 1401115
>>400507
даже не удалял 17, но сдури мейн проект перевл в 19 обратно ставить начал все очень плохо стало. Да проблему решил с горем пополам пол дня убил
694 1401311
695 1403679
Из C++ в C# пжпжпж
void __fastcall TForm1::Button1Click(TObject Sender)
{
Memo1->Lines->Clear();
int A[4]; int B[5];
int m;
String One, Many;
for(int i = 5000; i < 10000; i++)
{
One = IntToStr(i);
for(int j = 0; j < 4; j++)
A[j] = StrToInt(One[j + 1]);
if(A[0] & 1) continue;
m = i 2;
Many = IntToStr(m);
for(int j = 0; j < 5; j++)
B[j] = StrToInt(Many[j + 1]);
if((B[1] == A[3]) && (B[2] == A[0]) && (B[4] == A[0]))
{
Memo1->Lines->Add("ОДИН - " + One);
Memo1->Lines->Add("МНОГО - " + Many);
Memo1->Lines->Add("");
}
}
}
image.png241 Кб, 810x256
696 1403686
697 1409902
Суп, двущ. Нужна структура данных (boost, std) для хранения структуры ПАПОК внутри определенной папки. Насоветуйте.

Что-то вроде не бинарного дерева строк подойдет?
Тред утонул или удален.
Это копия, сохраненная 31 мая 2019 года.

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

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