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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
С++ thread #133 /cpp/ # OP 2297529 В конец треда | Веб
Вместо шапки:
https://github.com/sosachbot/cppthreadhat/wiki
⚹ Для кусков кода: https://0bin.net/

Ответы на вопросы:
https://en.cppreference.com/w/
https://www.cplusplus.com/reference/

Для указателей:

Прошлый тред: >>2225172 (OP)
image.png77 Кб, 700x444
# OP 2 2297531
3 2297539
>>297529 (OP)

>Для указателей: ⚹


Вот это было мощно.
4 2297540
Век живи - век учись.

Недавние аблюдения:
Под Windows в консоле вывод в stderr более чем в 10 раз медленнее, чем в stdout, если перенаправить поток вывода в файл. Но это не точно.

Функция ExitThread может вас удивить и обескуражить. Если вы создавали на стеке объект, а в конце вызвали ExitThread, то деструктор объекта не вызывается. Т.е. если вы были уверены что деструктор сработает, когда объект теряет область видимости, то в случае ExitThread этого не произойдёт.

Охуенно, да?
5 2297570
>>297540

>stderr


Вероятно он флашит после каждой записи.

>Если вы создавали на стеке объект, а в конце вызвали ExitThread, то деструктор объекта не вызывается.



Если выдернуть компьютер из розетки, то деструктор тоже не вызывается.
6 2297626
>>2249142 →
Никогда
7 2297650
>>297531

Вне гуя и игор классы говно без задач.
8 2297730
>>297650
Борщехлёб, спок.
peka-classic.jpg6 Кб, 180x173
9 2297796
>>297730

> hello world с наследованием, конструкторами и деструкторами

10 2297801
>>297730

> Борщехлёб



говноед-на-зарплате спок
11 2297803
>>297796

>std::cout


>нет объектов, я скозал!!!

12 2297813
>>297803

printf/puts никто не запрещал, а

> std::cout << "хуйпизда" << std:endl



это самое всратое, уродливое и дебильное, что только можно было придумать. Кстати тоже из той же серии "запихни с ноги в классы то, что по здравому смыслу функция".
13 2297814
>>297803
Это шаблоны из STL. Это не объекты
14 2297815
>>297814

Ну, интерфейс к ним тот же самый, просто не надо ненужный объект высирать.
15 2297817
>>297814
std::cout - это объект. Нет шаблонов объектов.
16 2297818
>>297817

Когда юзаешь метод из класса без создания объекта этого класса это как-то иначе называется. Статический метод, что-ли.
17 2297819
>>297813

>printf/puts


В С проследуйте, сеньор-быдлокодер.
18 2297820
>>297818
То, что ты не создавал этот объект сам, не делает его не-объектом. Это обычный объект, у которого ты вызываешь нестатический метод operator<<()
19 2297822
>>297819

Строки и векторА же, увы и ах. Впрочем, процедурные кресты вроде бы ещё законны. Золотая середина.
20 2297827
>>297820

Одна история охуительнее другой. Вот тут-то объект зачем? Я просто функцию дёргаю. Мне не надо 100500 разных выводов в один и тот же stdout.
21 2297833
И вот зачем перекатывали? Опять дебилов полный тред.
22 2297835
>>297827
Ты не просто функцию дёргаешь.
У всего ввода-вывода одинаковый интерфейс стримов, с которыми можно работать вне зависимости от того, куда реально происходит вывод, а уже внутри объекта конкретный дескриптор. Этот объект потом можно передать в другие функции, которым без разницы, куда выводятся данные, в консоль, файл или вообще по сети отрправляются, они будут юзать объект с одним и тем же интерфейсом.
Смысл что-то объяснять борщехлёбам? Они до последнего будут стоять на своём во имя Даннинга-Крюгера
23 2297836
>>297833
Ну не все же сраться C/C++ vs Rust vs Go
24 2297839
C++ лучше раста и шарпа, а Go вообще нахуй идёт.
25 2297845
>>297835
Соглы
26 2297847
>>297819
Ты на printf свой анус-то не раскрывай. Это гениальная функция, которая смотрится гармонично абсолютно везде. И ассебмлерный код с её использование всяко красивее кода, генерируемого <<.

За puts такого не скажу - уж больно она проста и примитивна. Нет в ней изюминки.

Самое плохое, что есть в С++, это пидросы, типа тебя. Которые придумали себе мифологию и дрочат на неё. А по сути - используют С++ как интепретатор, реализуя максимально неоптимальный код. А зачастую и не знающие базовых алгоритмов. При том, что язык С++ всё же охуенный. Но в умелых руках.
27 2297860
>>297847
Нет, такие как ты - которые используют инструмент через жопу (ибо даже инструкцию прочесть не осилили), а потом у них это нинужна, это лишнее, это говно и тд
28 2297862
>>297847
В printf происходит ненужное копирование, а ещё нужно указывать типы переменных - это пережиток из C. В https://fmt.dev, который уже скоро будет std::format всё реализовано куда лучше. std::cout с отключенной синхронизацией с сишным вводом-выводом быстрее printf в среднем в полтора раза. И сейчас бы оценивать красоту ассемблерного кода, лул
29 2297866
А ещё через printf легко получить UB, если проебаться с типами.
30 2297869
>>297847

Два чая адеквату
31 2297871
>>297862
>>297862

>В printf происходит ненужное копирование


Где?

Чем ты заменишь snprintf?

А уж вот такая хуйня << std::hex << blabla << std::dec << std::endl просто вымораживает.
32 2297880
>>297860

> это нинужна, это лишнее, это говно



Просто когда не жуёшь это говно за зарплату ежедневно, то нет биаса в эту сторону и можешь трезво видеть откровенную хуету.

Ну давай признаем, в крестах "по умолчанию" во многих местах чудовищно избыточный синтаксис. Машина могла бы понять всё абсолютно то же самое без такого количества мусорного кода. Объекты вбиваются с ноги просто как религия какая-то, где в них никакого смысла.
image.png657 Кб, 800x600
33 2297892
34 2297893
>>297871

this

а вот это

> std::endl



вообще воплощение анекдота про хеллоу-ворлд на крестах. Просто блядь два символа "\n" в класс запихнуть это уже даже не шиза, это рак мозга под наркотиками.
35 2297908
>>297892
Это фейк, там пхп, а не раст.
36 2297912
>>297893
Нихуя это не два символа. Это
иф (винда)
одно()
илсиф (лялех)
другое()
37 2297914
38 2297921
>>297912
ифдеф, тогда уж
А вообще толстый тред. мимопроходил
39 2297924
>>297912

В пердоликсе заменил эндл на "\n" - схавало. printf в винде "\n" и так хавает корректно, прекрасно помню. Что там менять-то нужно?

И про переносимость крестов лучше не надо, всё равно любой мало-мальски код для переносимости надо обмазывать миллионом ифов. Разумеется, пока пишешь под голую соснольку. С гуём проще две софтины написать под две платформы или застрелиться.
40 2297929
>>297921

>А вообще толстый тред


ОП-треда сидит на фряхе. Это достаточно толсто?
41 2297937
>>297801
Получать деньги за свои скиллы нынче зашквар у дебилов
42 2297942
>>297929
Толстота не в опе, а в самом треде.
Пишу сервисы для коллпроцессинга под линукс
43 2297944
>>297937

На куче других языков получают больше или сравнимо. Впрочем, те языки тоже говно. Кресты прикольные, пока пишешь по сути на ссы-с-удобствами
44 2297952
Зачем мы сремся по хуйне? Давайте лучше обсудим почему индустрия языков и компиляторов застряла в 70-90х годах и почему все языки ЯП говно. За наш век не появилось ничего нового, ни одной новой философии и течения. Все пердит и свистит на наработках древних.
45 2297954
>>297952

> почему индустрия языков и компиляторов застряла в 70-90х годах


> За наш век не появилось ничего нового, ни одной новой философии и течения. Все пердит и свистит на наработках древних.


Потому что этот фундамент идеален и продуман на сто лет вперёд. Проблема в говнореализациях. Каждый раз, когда пилят новое, что-то упрощают или не учитывают, потом это начинает вызывать проблемы, для решения которых впиливают ad hoc костыли, а потом поздно что-то переделывать из-за легаси.
46 2297961
>>297871

>Где?


Задумайся. Оно составляет строку, которую нужно вывести, из строки формата и вараргов в рантайме, а потом уже копирует её в буфер

>Чем ты заменишь snprintf?


sprintf и snprintf заменю на format_to и format_to_n

>>297893

>>std::endl


>вообще воплощение анекдота про хеллоу-ворлд на крестах. Просто блядь два символа "\n" в класс запихнуть это уже даже не шиза, это рак мозга под наркотиками.


std::endl просто неудачно назван. Почитай документацию, там как раз рекомендуется использовать '\n' вместо std::endl почти во всех случаях. Потому что std::endl (о ужас) ещё и флашит буфер.

>>297952
Никому это не нужно, блин. Common lisp как был в 90е самым продвинутым языком, так и по сей день и остался.
47 2297975
>>297961

>Оно составляет строку, которую нужно вывести, из строки формата и вараргов в рантайме, а потом уже копирует её в буфер



Я не уверен в этом. Надо смотреть реализацию. Не вижу ни одной причины, зачем нужно дополнительное копирование.

>sprintf и snprintf заменю на format_to и format_to_n


Хмм.
C++20 is a version of the ISO/IEC 14882 standard for the C++ programming language. C++20 replaced the prior version of the C++ standard, called C++17. The standard was technically finalized by WG21 at the meeting in Prague in February 2020, approved on 4 September 2020, and published in December 2020.
48 2297983
>>297952

Неговно есть, но там тормозной интерпретатор. Потому что зачем сложный компилятор писать, если и так для практических задач современные компы будут эту хуету ворочать с приемлемой скоростью?
49 2297987
>>297983
Не будут.
50 2297995
>>297983

>Неговно есть,


???
51 2297999
>>297995
INB4: петухон, жопаскрипт
52 2298001
>>297999
Тоже так думаю, лол.
Ну либо хаскель какой нибудь.
53 2298028
>>297975

>Я не уверен в этом. Надо смотреть реализацию. Не вижу ни одной причины, зачем нужно дополнительное копирование.


Да, возможно я ошибаюсь. Надо смотреть

>>sprintf и snprintf заменю на format_to и format_to_n


>Хмм.


Отсюда, пока https://fmt.dev/
54 2298128
>>297995

Рубин хотя бы. Близкая к идеальной реализация ООП для людей, няшный синтаксис, настоящий VHLL. Но тормозной как пиздец. А прикинь оно нормально компилироваться будет и на нём, допустим, можно будет писать полноценно игоры. Кто после этого будет ебаться с крестами?
55 2298314
>>297540

>Под Windows в консоле вывод в stderr более чем в 10 раз медленнее, чем в stdout, если перенаправить поток вывода в файл. Но это не точно.


ну это и естественно, потому что буфер должен быть скинут в первом случае, потому что вообще то это поток ошибок
понимаешь?
все логично
56 2298316
>>297847
самое плохое в с++ это то что это эзотерический вымирающий язык на котором не найти работы
57 2298326
>>297839
Факт. База.
58 2298344
Какой пет проект мне заебенить чтобы быстро найти хорошую работу с хорошей зп?
59 2298348
>>298344
Блог на вордпрессе.
60 2298361
>>298348
Ты хотел сказать вордпресс с нуля?
61 2298377
>>298361
Зачем, если вордпресс уже написан?
62 2298383
>>298377
Как и миллионы блогов на нём?
63 2298393
64 2298401
Какие подводные писать так?
int main(const int argc, const char⚹ argv[])
65 2298554
Я правильно помню что при записи в файл std::endl не нужен ибо всё флашится при закрытии стрима?
66 2298566
>>298554
Если тебе надо, чтобы в конце файла был перевод строки, то нужен, иначе не нужен. Флаш здесь не при чём.
67 2298578
Go, c++ или rust?
Развёрнуто и с комментариями
68 2298579
>>298578
По задачам.
69 2298580
>>298579
Какой ты скучный
70 2298582
>>298316
Приколы какие-то, быстро находится всё
71 2298583
>>298401

>const int argc


Не несёт смысла в декларации никогда
72 2298585
>>298401

> const char⚹ argv[]


Не удивлюсь, если это какое-нибудь UB ебаное.
73 2298610
>>298585
Нет, просто очередной нескучный синтаксис вроде 7["mamku ebal"]
74 2298633
>>298583
>>298585
Джейсон Тёрнер завещал юзать const вообще везде где это только возможно.
75 2298634
>>298583
Так компилятор же сможет тогда по рукам ударить, если попытается значение его поменять
76 2298641
>>298585

Всё равно всё схлопнется до указателей. Хоть char argv пиши, всё равно это внутри массив из массивов char. Это всё украшательства и хеллоуворлдщина.
77 2298653
>>298633
Да и не только он.
78 2298834
Вот я разделяю логику по классам, вся хуйня. А как ей пользоваться лучше? Ну т.е. статику юзать норм там, где не нужны конструкторы/инстансы/поля? Какие тут бест практисы?
79 2298848
>>298834

За вот этот "ООП ради ООП" я бы вешал за яйца. Это худшее явление в кодинге за всю историю.

Никогда не делай классы там, где тебе нужны обычные плоские процедуры. Вообще их никогда не делай там, где алгоритм вот прям очевидно их не "просит" - гуй, логика игр, какие-то сильно структурированные данные однотипные... Можно конечно запилить класс просто как коллекцию своих наработок, но это откровенное украшательство и перфекционизм.
80 2298851
>>298848
Если мне нужно будет ФП то я пойду и напишу говнокод на тайпскрипте. Дай хотя бы несколько объективныхминусов того, чтобы писать всё в виде классов.
81 2298860
>>298851
ведь кроме как "все на фп" и "все на ооп" ничего нет
мимо
82 2298868
>>298860
Ну да, можно ещё всё в мейне высирать, городить неймспейсы
или если уж совсем жить скучно

#define r(R) R"()"
/[/#include //<stdio.h>
#include<math.h>/!![crc=0f527cd2]/
float I,bu,k,i,F,u,U,K,O;char o[5200];int
#define R(U) (sizeof('U')==1||sizeof(U"1"[0])==1)
h=0,t=-1,m=80,n=26,d,g,p=0,q=0,v=0,y=112,x=40; float
N(float/x/_){g=1<<30;d=-~d1103515245&--g;return d_
/g;}void/
/w(int//_){if(t<0){for(g=0;g<5200;o[g++ ]=
0);for(;g;o[g+79]=10)g-=80;for(t=37;g<62;o[80+g++]=32) ;
}if(m&&o[h80+m-1]==10){for(g=0;g<79;o[t80+g++]=0){}o[t
++80+g]=10;t%=64;n+=2;I=N(70)+5;if(n>30&&(I-x)(I-x)+n
n>1600&&R()){O=0;F=(x=0x1!=sizeof(' '))?k=1+N(2),i=12-k+N(
8),N(4):(k=17+N(5),i=0,r()[0]?O=.1: 0);for(u=U=-.05;u<32;
U=k+i+i
.5sin((u+=.05)+F))for( K=0 ;K< U;K+=.1)if((bu=K
sin(u/5),g=I+cos( u/5) K)>=0&&g < 79 )o[g+(int)(t+44+
bu
(.5-(bu>0?3O: O) ) )%64 80 ] =32;x=02// /2
-1;n=O+x?n=I+(x?0 :N (k)- k /2),g=(t+42 )%
64,m=-~g%64,x?g=m =-~ m%64:0 ,n>5?o[g
80 +
n-3]=o[m80+n-3]= 0: 0 ,n <75?o[g80+n
+2]=o[m80+n+2]=0 :0:0; x=I;}h=-~h%64
;m=0;}putchar((g=o [h
80+m++])?g:_);
if(g){w(_);}}void W (const char_
){for(;
_;w(_++));} int main(int a
,char
_){while(a--)d +=_[a ]-(char)0;W( \
"#include<stdio.h>typed" "e" "f\40int\40O;v"
"oid o(O _){putchar(_);}O" "\40main(){O" ""
"_[512],p=_,d,b,q;for(b=0;b" "++<512;p=_+q)_[q" \
"=(p-_+1)
9%512]=(O)p;") ; for(;(g= getchar())-EOF;p=
q){q=p;for(v=512;p-q-g&&q-p- g; v--)q=-~q9%512
;W("o(");if(p>q)w(y),w(45);w( 40);w(y^=20
);w(075);for(a=0;a<v;a++)w(42); for(W("(O"
);a--;w(42)){}w(41);w(y^024);w( 41);if(p<=q)w(
45),w(y^20);W(");");}for(a=7;a-6 ;W(a<6?"{;}":""
))for(a =0;a <6 && !o[h80+m +a];a++){}W("r"
"etu" /J / "rn+0;}\n" );return
/ "#*/0 ;}

Ну давай, съешь ещё этих мягких указателей
82 2298868
>>298860
Ну да, можно ещё всё в мейне высирать, городить неймспейсы
или если уж совсем жить скучно

#define r(R) R"()"
/[/#include //<stdio.h>
#include<math.h>/!![crc=0f527cd2]/
float I,bu,k,i,F,u,U,K,O;char o[5200];int
#define R(U) (sizeof('U')==1||sizeof(U"1"[0])==1)
h=0,t=-1,m=80,n=26,d,g,p=0,q=0,v=0,y=112,x=40; float
N(float/x/_){g=1<<30;d=-~d1103515245&--g;return d_
/g;}void/
/w(int//_){if(t<0){for(g=0;g<5200;o[g++ ]=
0);for(;g;o[g+79]=10)g-=80;for(t=37;g<62;o[80+g++]=32) ;
}if(m&&o[h80+m-1]==10){for(g=0;g<79;o[t80+g++]=0){}o[t
++80+g]=10;t%=64;n+=2;I=N(70)+5;if(n>30&&(I-x)(I-x)+n
n>1600&&R()){O=0;F=(x=0x1!=sizeof(' '))?k=1+N(2),i=12-k+N(
8),N(4):(k=17+N(5),i=0,r()[0]?O=.1: 0);for(u=U=-.05;u<32;
U=k+i+i
.5sin((u+=.05)+F))for( K=0 ;K< U;K+=.1)if((bu=K
sin(u/5),g=I+cos( u/5) K)>=0&&g < 79 )o[g+(int)(t+44+
bu
(.5-(bu>0?3O: O) ) )%64 80 ] =32;x=02// /2
-1;n=O+x?n=I+(x?0 :N (k)- k /2),g=(t+42 )%
64,m=-~g%64,x?g=m =-~ m%64:0 ,n>5?o[g
80 +
n-3]=o[m80+n-3]= 0: 0 ,n <75?o[g80+n
+2]=o[m80+n+2]=0 :0:0; x=I;}h=-~h%64
;m=0;}putchar((g=o [h
80+m++])?g:_);
if(g){w(_);}}void W (const char_
){for(;
_;w(_++));} int main(int a
,char
_){while(a--)d +=_[a ]-(char)0;W( \
"#include<stdio.h>typed" "e" "f\40int\40O;v"
"oid o(O _){putchar(_);}O" "\40main(){O" ""
"_[512],p=_,d,b,q;for(b=0;b" "++<512;p=_+q)_[q" \
"=(p-_+1)
9%512]=(O)p;") ; for(;(g= getchar())-EOF;p=
q){q=p;for(v=512;p-q-g&&q-p- g; v--)q=-~q9%512
;W("o(");if(p>q)w(y),w(45);w( 40);w(y^=20
);w(075);for(a=0;a<v;a++)w(42); for(W("(O"
);a--;w(42)){}w(41);w(y^024);w( 41);if(p<=q)w(
45),w(y^20);W(");");}for(a=7;a-6 ;W(a<6?"{;}":""
))for(a =0;a <6 && !o[h80+m +a];a++){}W("r"
"etu" /J / "rn+0;}\n" );return
/ "#*/0 ;}

Ну давай, съешь ещё этих мягких указателей
83 2298870
>>298868
Ай, да похуй, на что я рассчитывал.
84 2298883
>>298870
Цистерну звёздочек тебе
★☆✪✵✯٭✭✰⚝⚹❉❋✺✹✸✶✷✵✲✱✧✦⍟⊛⁕﹡❃❂✼✻⍣≛✫
85 2298893
>>298883
Да в пизду, за этой помойкой я ещё косяки не правил.
86 2298918
>>298868
Это исходный код ядра линукса?
.png53 Кб, 1245x556
87 2298929
>>298918
Вангую IOCCC
88 2298936
Добренького, Аноны. Есть ли возможность получить потребление энергии компьютером на данный момент программным способом?
89 2298938
Может в апишке системы можно фунцию какую дёрнуть?
90 2298939
>>298851

Мегабайты мусорного кода - объявления и инициализации занимают больше места, чем сам алгоритм. Усложнение себе же очевидных простых вещей. Сильно больше печатать, хуже читаемость. У си-подобных синтаксис и так не айс, а этим ты его ухудшишь ещё сильнее. По скорости разницы нет, классы как таковые "ничего не жрут".
91 2298951
>>298939
У меня в ноде тоже тоже мегабайты мусорного кода, но кабан мне за это неплохо так платит и не жалуется. И это явно не повод отказываться от основной концепции языка и хуярить НЁХ с тоннами не связанных между собой функций, auto и прочим пиздецом.
92 2298982
>>298634
В этом примере - да.
В declaration отделённой от definition - top level const не имеет эффекта
93 2299036
>>298936
Обычно дергается инфа с датчиков. Потом на основе них высчитывается примерная нагрузка на систему. Под винду, под линукс так. Под мобильные платформы проще, так как там есть готовые апи для вычисления энергопотребления. Если речь идет о некоей промышленной установке, то возможно забрать инфу напрямую с ибп либо спец контроллера прямо на кабеле, тогда будет не приблизительная оценка, а точная.
94 2299054
>>298851
фп в крестах нужен был для метапрограммирования в 98 стандарте, потому что иначе и не сделать было, ну а метапрограммирование нужно было для кодогенерации собственно, хотя все равно на практике чаще всего использовали препроцессирование, комбинировали встроенный препроцессор с внешней кодогенерацией на скриптовых языках
в новых стандартах фп для метапрограммирования не нужен, потому что в язык добавлены средства для императивного программирования (циклы, условные конструкции, константы) в компайл-тайм
так же говорят что правильное программирование с использованием stl предполагает функциональный подход, но это не совсем так, речь скорее идет о принципе функциональной композиции, но с оговорками, проще говорить что правильное программирование на stl - это использование композиционного подхода, хотя опять же в новых стандартах добавили лямбды и прочие штуки, которые сделали ненужным bind и все семейство родственных ему функций, с учетом того что лямбды в крестах всего лишь синтаксический сахар, это сделало современное программирование на stl опять же императивным во многом
по итогу фп в современном с++ не нужен
фп это удел энтузиастов что хотят развлекаться ретро-программированием на крестах стандарта 98 года, занимаясь метапрограммированием на компайл тайм либо используя приемы фукнциональной композиции используя stl
95 2299056
>>299054
хотя и конце 90х начале нулевых почти никто из практикующих программистов этим не занимался, кроме нескольких придурков вроде меня
96 2299061
97 2299065
>>299061
сумбурно написал, но мне похуй
кто знает тот и так знает
а кто не знает тот считает это бредом
98 2299092
При вставке в мапу указатели на старые элементы могут измениться?
99 2299094
>>297529 (OP)
Я объявляю класс A и класс B. У них есть такие методы: A::Example(B bvar); и B::Example(A avar); Когда A объявлен до объявления B, то ошибка что B ещё не объявлен, когда сначала B объявляю, то ругается уже что A не объявлен.
Что с этим можно сделать?
image.png2 Кб, 444x38
100 2299103
Да, сука! Спустя 10 тысяч лет.
102 2299162
Вот скачал я cereal https://github.com/USCiLab/cereal/blob/master/include/cereal/cereal.hpp Пробую инклудить хедер - и нихуя не билдится. Почему? Потому что эта хуета ссылается на инклуды других хедеров из ещё одной папки cereal которой в исходнике же нет. Что за хуйня и что с этим делать?
103 2299165
>>299141
А как такое провернуть со структурами?
Когда я пишу например struct vec; а потом описываю его позже, то ругается на переопределение
104 2299189
>>299162
Ты скачал один файл cereal.hpp или всю папку include? Я только что скачал папку, положил рядом исходник, собрал через g++ -Iinclude sample.cpp -o sample, всё работает.
105 2299203
>>299165
В крестах структура это тот же класс, не должно быть проблем.
106 2299205
>>299094
И кстати вот в такие методы надо передавать указатели или ссылки, т.к. при форвард декларации не известен размер объекта, в отличие от указателя на него.
107 2299276
Какого типа лучше делать аргумент у функции, если скорее всего туда будет передаваться строка (string или c-string). Мувать всегда?
108 2299281
Я правильно понимаю, const у const type&& играет роль ту же, что и const &?
109 2299303
>>299276
string& если нужно изменять передаваемую строку
const string& если надо работать со строкой которую функция или метод не должен менять
string если нужна копия строки в функции или методе
string&& если нужно передать собственно владение (но по сути это частный случай, способ оптимизации)
это не рассматривая темплейтов функций или методов и не рассматривая универсальных ссылок
"как лучше" зависит от того что тебе собственно надо.. нет универсального ответа "как лучше", зависит от ситуации
110 2299310
>>299303
ах, да, еще ведь есть альтернативы
возможно тебе нужно работать не со строками, а с потоками ввода-вывода, зачастую в коде встречаю эту проблему, когда с точки зрения красивого дизайна лучше передать буфер, а не строку
ну или, к примеру, в новом стандарте теперь есть замечательный std::string_view, его тоже не стоит игнорировать, прекрасное дополнение в библиотеку языка
111 2299312
>>299310
а, вот еще вспомнил
зачастую строкой туда-сюда гоняют то что по сути в коде является отдельной сущьностью, и в принципе, раз кресты ооп язык должны бы быть завернуты в класс
простейший пример - когда некий строковый идентификатор чего-либо в коде гоняют обычной строкой, когда вообще то нужно создать было класс идентификатора
112 2299324
Еще вопрос. Функция принимает ссылку на string. Когда я вызову ее, указав аргумент std::string(""), то этот временный объект помрет после вызова функции или сразу после передачи ссылки в функцию?
113 2299348
>>299324
на самом деле интересный вопрос, на который, к примеру лично я не смогу слету ответить, тут нужны более опытные люди
можно предположить, что момент уничтожения временного объекта определяется реализацией конкретного компилятора, и стандартом неопределен
хотя для конкретного компилятора всегда можно проверить, написав небольшой проверочный код, добавив в тестовый класс логирование в деструктор, ну либо брекпойнт
114 2299349
>>299348
Вроде бы ссылка продлевает время жизни, но я решил на всякий случай уточнить. Если я не ошибаюсь, то объект удалится когда функция завершится.
115 2299370
>>298951

С таким подходом имхо выгоднее гей-проститутом работать, чем кодить. Ну или всякий кринж на камеру творить типа поедания говна.
116 2299420
сап, стоит ли вкатываться? сколько нужно учить до джуна, сильно ли нужна матеша, нужна ли вышка?
117 2299453
>>298316
Ты просто не в курсе что за бугром творится на рынке айти. С++ разрабы получают в среднем в полтора раза выше веб-макак. Спрос бешеный, а вот предложение не очень, ибо большинство нормисов имеют IQ < 100 и пытаются вкатиться в веб-говно толпами, что и порождает увеличение зарплат вне "горячих" секторов. Америка, почти вся западная Европа, Израиль - там очень востребованы байтослесари из-за огромного количетва компаний, которым нужны разрабы встроенных систем, разный там хайлоуд в финтехе, автономные машины и т.п.
мимо анон из забугра, получающий 150 тыс. $ в год за "мертвый" язык, не будучи даже синьором
118 2299500
>>299453
и где же анон из-за бугра работает? Я про специальность. На страну похуй
119 2299534
>>299500
Пишу софт для автономных машин. Помимо всяких мелочей, основной проект на данный момент - кастомная RTOS, написанная полностью на плюсах, в данный момент насчитывающая 2 миллиона LoC ясень пень пишу её не в одиночку
120 2299536
>>299534
О, анонас, ты мне и нужен.
Как вкатывался, что изучал, как докатился до такого?
Я пока что студент старших курсов и мне интересна системная разработка, а в частности языки и компиляторы. Но если быть реалистом, то по такому направлению без PhD работу найти почти невозможно, поэтому придется заниматься чем-то другим я и не против. Во что из системной разработки можно вкатиться, чтобы найти работу и хотя бы хуй без соли не доедать? Какую литературу почитать(Кирпичи Танненбаума и Праты уже прочитал)?
121 2299553
>>299092
Разберись с указателями. При вставке в мапу сам указатель копируется по значению, а вот то на что они (уже оба указывают) остаётся одно.
122 2299617
Бля, я что-то совсем поплыл. Объясните в чём разница между всеми этими вариантами?
https://stackoverflow.com/a/12248783
123 2299726
>>299092
В обычную не могут, в unordered может случиться рехэш и итераторы инвалидируются (указатели тоже).
124 2299858
>>299617
Там же все написано. Правда ответ не совсем верный, 3 и 4 не скомпилируются с флагами по умолчанию, и в 4 будет копиэлизия, вызовется только обычный конструктор.
125 2299865
>>299726

>итераторы инвалидируются (указатели тоже).


Итераторы да, указатели на элементы - нет.
126 2299904
>>299858
Так, ну допустим я немного раскурился. А в чём разница создавать инстанс на куче или стеке кроме того что во втором случае не нужно его явно удалять?
127 2299949
Как малой кровью найти путь к конкретной директории лежащей в текущей или директориях на n уровней выше? Сейчас реализация такая, что я инициирую directory_iterator как "./" и проверяю на соответствие, если его нет - то добавляю к пути "../" и бегу снова. В целом это работает но можно ли проще и чище?
128 2300022
А где Qt тред? Господа я в корне не понимаю как создать свое собственное событие в Qt, все видео и все статьи в интернете меня только лишь запутали. Есть книжка Макса Шлее, но там очень мало написано про создание собственных event'ов, в корне не понял, зачем нужно event(), как работает фильтр событий. Кто то может подсказать хорошую статью или сам расскажет.
129 2300031
>>299420
Если хочешь денег быстро - учи JS и Vue/React или Java, или C# и .NET.
Вакансий на С++ меньше, но они есть и никуда не пропадут. В Америке, Западной Европе работы больше, чем в СНГ - но там нужен английский.
Вообще, смотри хедхантер и сравнивай вакансии по регионам.

>>матеша


Матеша лишней не будет.

>>вышка


На айтишных специальностях(Прикладная информатика, информатика и вычислительные сети и тд.) учат плюсы с первого семестра в течение двух лет.
За эти два года студенты проходят весь базовый курс по плюсам. Это синтаксис, алгоритмы(могут быть на паскале, но не суть), ООП, STL. Далеко в ядро не залезают, но для джуна инфы достаточно. Например лекции в МФТИ : https://youtube.com/playlist?list=PLmSYEYYGhnBu1fFtnzKx-pycYbJnb0rOl

Качество преподавания и усвоение тем зависит от университета и студентов. В региональных вузах, где проходной балл низкий - результат обучения не очень хороший. В топ вузах(МФТИ, МГУ, СПБГУ и тд ) дела обстоят по другому.

Пишу по своей группе. Почти все списывали лабы.
Кто списывал - ничего не изучили. Кто учил - к последнему курсу всё позабыли.
Причины этому: в первом случае - отсутствие обучения, во втором нагрузка учебного плана(помимо плюсов было много других предметов, например матан, история, информатика, базы данных, веб программирование и тд.)
В итоге их всех в группе, плюсами интересуюсь только я, а нас 20 человек. Один из группы работает на JS и Vue. Из всего потока всего несколько человек работает в IT, их можно по пальцам пересчитать.

Но вуз не будет лишним. Особенно при поиске работы за границей. Только вопрос себе задай, надо ли тебе на это обменять 4 года, со всеми вытекающими.
130 2300038
Вот прошёл я Страуструпа, ответственно повторял, сам писал код. Подкрепил всё ravesli + 3 поясами с курсейры. Ещё немного со стандартами ознакомился, правда совсем немного. Стоит ли сейчас почитать/поучить что-нибудь ещё или нет? Вообще сейчас сижу и пилю свой пет, подтянул в него asio, в остальном пока stl обхожусь. Что ещё освоить чтобы я со своих фуллстаковских 200к переехал хотя бы на 100к для начала?
131 2300055
>>300038
Как тебе пояса с курсеры?
Во время прохождения белого пояса, у меня возникла мысль, что некоторым задачам надо побольше вводных данных и объяснения.
Например первая задача с квадратным уравнением. Там всё отлично, есть дополнительное объяснения в виде алгоритма.
В дальнейших задачах я такого больше не видел. Я остановился на задаче про очередь в векторах. Кстати, в решение этой задачи используются методы, про которые в видео не говорили. Например поиск определенного значения в векторе.

Я так понял, что пояса именно для тех, кто уже более менее разбирается в плюсах.

Кстати, с такой же плохой постановкой задач, как в поясе, заметил и на курсе по плюсам от Яндекса на степике.
Яндекс следит за курсами и обновляет их?
132 2300063
>>300055
Фифти-фифти что говорится. На скорости х1.75 пойдёт. Большую часть задач я откровенно говоря скипал ибо много сложнее вещи решал в js`е. Про то, что прямо надо разбираться в плюсах - я бы не сказал. Всё очень даже недурно объясняется. Но я дропнул, не хочу заканчивать. Не люблю все эти курсы, видосики, я намного лучше информацию усваиваю когда читаю текст. Да и за те 10 минут которые идёт один видос я порой несколько тредов стака успеваю прошерстить.
133 2300102
>>300022

>свои сигналы


Вот так. (пик 1)

>event


пик 2 Чтобы переопределять действия при ивентах в классах-наследниках

>eventFilter


пик 3 Чтобы переопределять действия при ивентах в других объектах действиями из класса с фильтром

Документация к Qt классная, читай её, а не книжки

https://doc.qt.io/qt-5/signalsandslots.html
https://doc.qt.io/qt-5/qobject.html
134 2300112
Есть ли в кьюти контейнеры элементов, как в гтк?
135 2300116
>>300112
Есть.
136 2300117
>>300116
Спасибо, но уже нашел, по запросам "qt контейнеры" выдавало контейнеры для данных, а не компонентов.
137 2300140
>>299904
Стек маленький, порядка 2мб для x64 и может переполниться довольно быстро (хотя зависит от конкретной OS и настроек компилятора). Ещё у каждого потока свой локальный стек. По сути куча это основная память программы управляемая программистом, а стек - вспомогательная автоматическая.
138 2300158
>>300140
Хотя есть ембед, где вообще нет кучи, только стек.
139 2300163
>>300140
Короче говоря это всегда new ...() если не ...?
140 2300219
Почему в ютубе миллион видосов с собесами по js-у, но около 0 по плюсам?
141 2300229
array или vector?
142 2300231
>>300229
По задачам.
143 2300235
>>300229
array имеет константный размер, vector изменяемый. От этого и отталкивайся.
144 2300238
>>300235
Спасибо, мистер адекват
145 2300241
>>300163
Выделение памяти через new медленное - среде выполнения надо найти подходящий по размерам блок памяти (которая фрагментирована). На стеке - считай мгновенно - надо увеличить адрес вершины стека на размер объекта. В итоге, если твои данные крупных размеров и с долгим сроком жизни, то new. Для всякой локальной мелочи - стек.
146 2300242
>>300235
Этого не достаточно, чтобы принять решение. Если array так ограничен, а vector универсален, напрашивается вывод, что надо всегда юзать vector и не задумываться.
147 2300250
>>300242
array это обёртка (сахар) вокруг сишного массива: T array[Size], чтобы его можно было использовать как и другие std контейнеры.
Чем сишный массив лучше? Например тем, что он выделяется на стеке, в то время, как vector требует хотя бы одного вызова new.
148 2300257
>>300250

>Например тем, что он выделяется на стеке


Только если он объявлен в теле функции и без static.
149 2300262
>>300250
Ещё vector должен хранить в себе переменную capacity размером size_t (для x64 8 байт), в то время как для array она static. Если массив маленький, то получается неплохая экономия.
150 2300266
>>300257
Так внутренний буфер array в любом случае не требует вызова new.
151 2300363
Пиздец, только удалось сконфигурировать Cmake. 4 часа на это убил. Ну и говно пиздец.
152 2300365
>>300363
Всего лишь 4 часа? Хуя ты быстрый, небось сеньор-помидор. Я один раз несколько дней возился.
153 2300368
>>300365
Да блять, я почти всё это время искал блять как подключить header-only либы.
154 2300378
Можно ли дружественному классу дать только некоторые функции, а не все?
155 2300407
>>300378

>дружественному классу


хуйня без задач, давай включай голову и делай нормальный интерфейс
157 2300411
>>300408
Ну это же не интересно
158 2300414
>>300411

>не интересно


кстати по этой же причине терпеть не могу когда для языка есть один централизованный, анально привязанный пакетный менеджер. Плюсы + их инфраструктура это реально лучшее что есть на данный момент в этой грязной кабанчико-пориджевой индустрии
159 2300418
>>300414

>один централизованный пакетный менеджер


npm/yarn
Извините

>Плюсы это реально лучшее что есть на данный момент


Двачую
160 2300422
>>300407
Stream insertion and extraction operators are often declared as non-member friends:
161 2300424
>>300422
во-первых там про классы шла речь
во-вторых можно(а может даже нужно) сделать геттеры и все
в-третьих операторы это другое, там костыль через костыле

битовый сдвиг для вывода в iostream'ы, обожаю, лучше только деление для объединения времени и файлов
162 2300447
Поясните за разницу между инициализациями через =, () и {}
163 2300449
>>300447
иногда выражения по типу ClassName() принимаются за вызов/объявление функции. {} эту проблему решает т.к это явный запрос на вызов конструктора

инициализация через равно аналогична вызову конструктора

ClassName a = {1,2,3}
это
ClassName a{1,2,3}
164 2300452
>>300449
Спасибо. А для скалярных переменных разница между допустим int a = 5 и int a{5} есть? Ну и вообще аффектит ли это как-будь производительность или ещё что-нибудь?
165 2300454
>>300452
нет, влияет только на то что int a{1} это детектор, по типу
auto main()->int
насчет производительности : в таких случаях иди на godbolt и проверяй
166 2300455
>>300424

>давай включай голову и делай нормальный интерфейс


>сделать геттеры


>для закрытых членов

167 2300459
>>300455
в чем проблема? Вот сеттеры это да, в большинстве случаев ересь
Ебал в рот ваши мантры про " инпуксуляция это скрытие", пишу так что бы было удобно пользоваться кодом
168 2300461
>>300459
В том, что они расползутся по всему коду ?
169 2300462
>>300461

>расползутся по всему коду


а мог бы и полоснуть отречением от експешонов и следовательно от raii
170 2300467
Как организовать инклуды когда необходимые либы повторяются? Вот у меня раз хедер - iostream, filesystem. Другой - тоже самое + ещё что-то. Это же неправильно? Как сделать правильно?
171 2300468
>>300467
официальное решения до 20-го стандарта - include what youre use забей
172 2300469
>>300467
Это правильно, любой файл, который юзает определения из инклудов, должен включать все эти инклуды, даже если ты в данный момент уверен на 100%, что нужнвй инклуд косвенно включится. Иначе, если это когда-нибудь изменится, начнётся анальная ебля с определением, куда и что включать. Лучше об этом не задумываться и всегда включать всё нужное.
173 2300471
>>300468
А что в 20 стандартн, модули что ли?
174 2300472
>>300471
ну да
image.png16 Кб, 797x272
175 2300473
176 2300474
>>300473
ой да ладно тебе, привыкнешь, может еще в 23 немного допилят
177 2300475
>>300474
Если мне нужен будет сахарок над инклудами... Хотя нет, не нужен будет.
178 2300476
>>300473
Кресты прогнулись под другие языки. Никакой самобытности, скоро и сборку мусора запилят.
179 2300477
>>300475
Это не сахарок, они совсем иначе работают.
180 2300478
>>300476
Так умные указатели добавили ещё когда мы в школу ходили.
181 2300479
>>300475
так в том то и дело что нет, это дает реальную пользу , докладики посмотри
182 2300481
>>300479

>это дает реальную пользу


Например?
183 2300485
>>300481
я же сказал - иди доклады смотри. Я в них еще не погружался т.к на данном этапе нулевая поддержка
184 2300486
>>300485

>Я в них еще не погружался


>нулевая поддержка


Ну вот, а уже советуешь. Приходи через 2-3 стандарта.
1643445599307.gif575 Кб, 500x374
185 2300487
>>300486
я их советую потому что докладики посмотрел. Что ты такой приставучий....
186 2300488
>>300487
Да больно ты мне нужен. Я пока тут с тобой общался 2 новых hpp создал и мне норм.
900861-cirno24.jpg142 Кб, 600x631
187 2300489
>>300488
А я багу баку нашел!
188 2300490
Чё, пацаны, аниме?
189 2300491
>>300489
Какой ты молодец. Бегом фиксить!
>>300490
Нет уж, никакого аниме. Либо твилечки, либо томбойки.
190 2300492
>>300491

>твилечки


шо?
191 2300493
>>300492
Позор, ты даже не гик.
lain3.mp42,4 Мб, mp4,
480x360, 1:30
192 2300494
>>300493
Я микросхему в руках держал!
так что же это?
193 2300495
>>300494

>Я микросхему в руках держал!


Я тоже и что?

>так что же это?


Дивные создания из миров получше нашего.
194 2300534
>>300022

Омг в дефолтной документации по кутям не нашёл сигналы и слоты?

Ну кутя действительно весч. Этакий дельфи под линукс с нормальным компилятором.
195 2300535
>>300242

Вектор удобнее, аррай быстрее.

Кстати, это неебовое преимущество крестов перед VHLL. У тебя хотя бы есть опция взять примитивное быстрое решение, там, где его хватает. В рубях и пиздоне по сути только "вектора".
196 2300537
>>300534
То есть ты хочешь сказать, что события тоже самое что и слоты и сигналы? А зачем мне тогда нужны события если я также могу соединить сигналами и слотами. Я думал события это такое глобальное действие, которое рассылается всем кто его ждет, и не надо указывать какому объекту отправить событие. а sendpos() только конкретному объекту отправляет сигнал-событие. А как сделать так что бы вся программа знала что что то произошло? Отсылать событие главному окну? а она пусть отсылает событие своим детям?
197 2300544
>>300537
P.S. Проблема, в еще в том что на русском нормальных статьей нет, а с переводчиком плохо понятно
198 2300561
>>300473
О! Нифига! Решили поменять механизм трансляции, которому полвека? Надо идти курить мануалы.
199 2300613
Какое же чудовище этот ваш кьюти, радует то, что кьюмейк удобный.
200 2300628
>>300534
Также я не пойму, почему что ты, что анон выше, используете слово сигналы, хотя я в своем вопросе даже не написал ни разу о сигналах.
201 2300655
Какие же плюсы охительные, после питона и js вообще сплошное удовольствие на них писать.
202 2300693
>>299536
Для вката нужно понимать OS Internals и иметь навыки программирования на С/С++ по большому счету.
Но скажу сразу - в пределах СНГ ловить нечего, рынок мёртвый, лучше быть веб-макакой. Если хочешь, чтобы за байтослесарство хорошо платили, строго нужен перекат в США/Канаду/страну западной Европы/Израиль/Сингапур.
203 2300694
>>300655
Обычно наоборот пишут.
204 2300696
>>300694
Наоборот пишут те, у кого от динамикодрисни началось разжижение мозга.
205 2300697
>>300694
Да не, прямо глоток воздуха для меня, быстро выгоревшего в макакинге.
206 2300704
>>300250
Ты всё смешал в кучу.

C:
int arr[] = {1 ,3 ,3, 7}; - стэк
int *arr = malloc(4); - куча

С++:
std::array<T, 4> - и сам объект и закулисный T arr[4] выделяются в стэке

std::vector<T> vec(4); - в куче, так как в вектор можно совать элементы и он в рантайме будет делать realloc каждый раз, когда будет заканчиваться память для новых элементов
207 2300709
>>300476
RAII > сборка мусора, поэтому нет, не завезут, ибо юзлесс хуета.
208 2300714
>>300655
Плюсую. Дактайповая параша, особенно в крупных проектах, это просто пиздец.
209 2300723
>>300709
С RAII надо потом думать о владении и перемещении, когда в динамикодрисне с GC можно хуйнуть new и забыть а на ОЗУ похуй, она ж бесконечная.
210 2300725
>>300723

>а на ОЗУ похуй, она ж бесконечная.


this. Помню как у меня в яндекс дзене на протяжении 2ух месяцев память неумолимо утекала и спустя минут 15 в этой хуйне мои 32гб уже задыхались по полной.
211 2300746
>>300473
А что плохого в модулях?
По сути, они же предназначены для того, чтобы исключить костыль
#ifndef XUY
#define XUY
...
#endif
212 2300748
>>300746
Так этот костыль давным-давно исключён #pragma once
213 2300755
>>300748
Которого нет в стандарте.
image.png77 Кб, 1261x632
214 2300756
>>300748
Ага
215 2300762
>>300748
Это в пределах одного .срр. В соседнем один хрен придется всё заново включать, парсить и конпелироватб.
Прекомпилед хедеры это расширение и костыль который в цпп20 легализован через import <zalupa>
216 2300763
>>300756
Оставлено только из-за обратной совместимости, #pragma once не все компиляторы поддерживают.
217 2300764
>>300763
Ну то есть костыль не исключён?
218 2300767
>>300764
Появится еще один костыль, export module, #pragma once, #ifndef #define.
219 2300831
>>300704
И в чём я неправ?
220 2300849
>>300723
Так-то думать фактически не надо. Unique_ptr и shared_ptr с рефкаунтом когда надо, всё обёрнуто. Единственный момент когда надо думать - это cyclic reference, и знать что надо юзать weak_ptr дабы избавиться от него.
Итог - сборка мусора by design с фактически нулевым оверхедом.
221 2300852
>>300831

>И в чём я неправ?


>Чем сишный массив лучше? Например тем, что он выделяется на стеке, в то время, как vector требует хотя бы одного вызова new.



Сишный массив, равно как и std::array<T, size> в плюсах, выделяются на стэке. Зачем ты сравнил сишный массив с плюсовым вектором, когда в плюсах есть прямой аналог сишного массива в лице std::array, яхз.
222 2300875
>>300693
Спасибо за ответ, анонче. А не мог бы ты рассказать о самлм процессе переката? Понятно, что нужно учить языки, но не будешь же зеленым перекатываться? Все равно придется пару лет на отчизну поработать?
223 2300885
>>300875
Я не он, но один из вариантов - работать в крупной галере с иностранным заказчиком (допустим epam, luxoft). Другой - пробиться в офис международной брендовой конторы (Intel, samsung. siemens и т.д.). Ещё вариант зааплаиться в контору, где уже есть русские, а в идеале твои знакомые (обычно это восточная европа, а потом перекат на запад). Самый простой вариант - уезжать по студенческой визе и там по месту искать работу на перспективу.

Общей рекомендации нет - надо траить все варианты.
224 2301037
>>300875
Я не знаю, я не живу в странах СНГ с пиздючества с 14 лет, так что мне повезло
225 2301060
>>301037
>>300885
Ну ничего, у самурая нет цели, есть только путь.
А вообще хотелось бы в каком нибудь нейролинке импланты пилить. Но туда, наверное, без дополнительного надмозга и докторской степени не попадешь.
15609285441980.gif1,4 Мб, 207x207
226 2301167
227 2301185
>>301060
Удачи во всех начинаниях и продолжениях, анон. Дорогу осилит идущий, всё в твоих руках.
Насчёт надмозга - да, в разработки такого уровня требуются люди с экстраординарным мышлением, типичным разрабам там не место. А вот по поводу докторской степени - не всегда истина, и не про все отрасли. Например, на данный момент в серьёзном ML без докторской степени делать нечего, а вот во многие другие отрасли, включая эмбеддед, в большинстве своём требуются опыт и мозги.
1645193802.jpg37 Кб, 367x331
228 2301186
>>301185
Спасибо, анон.
229 2301187
Как правильно вызвать метод класса в другом потоке или асинхронно? Решение через лямбду выглядит, как костыль.
230 2301206
>>301187
Не совсем понятно, что ты хочешь сделать, но попробуй посмотреть в сторону std::bind/std::function
231 2301288
Там чем плох iostream и чем его лучше всего заменять и нужно ли?
232 2301289
>>301288
Всем хорош, кроме шизанутых перегрузок операций.
233 2301309
>>301289
А чё они?
234 2301316
>>301309
cout << пук << среньк
235 2301317
>>301316
Ну и чё?
236 2301391
>>301288
Всем плох. Потоки как канализация, ты тупо сливаешь данные в унитаз в надежде что они потом где-нибудь как-нибудь всплывут. Дерьмо как оно есть. А вот printf то что надо, тебе надо напечатать, оно и печатает.
237 2301392
>>301391
Те же яйца, только в профиль. Оба делают буферизованый вывод в stdout.
238 2301425
Move семантика разве RAII не нарушает?
239 2301428
>>301425
Нет, на то она и мув
240 2301461
Сап, первый день в плюсах так что мб тупой вопрос, но гугл мне не помог.
В общем писал сериализацию и встала задача изменить часть бинарного файла. Есть хедер и его нужно переписывать иногда.
Всё что мне нужно это встать в начале файла, затереть условно 16 байт и не трогать всё, что лежит дальше.
По-разному пытался, такое чувство, что seek'и не работают. Попробовал открывать binary | in вообще файл не создаёт.
Я уже даже думал со временным файлом какой-то костыль делать.
Скорее всего потому что я еблан, но мб что-то подскажите?
242 2301529
>>301526
Там микроошибка на 28 строчке - должен быть argv[1], но на результат это не влияет.
быстрофикс
243 2301546
>>301461
Это нормально что я вкатыш ~1 месяц и понимаю только отдельные слова из этого? Как вникнуть в то, о чём этот пчёл пишет? Посоветуйте статей каких-нибудь что ли?
244 2301552
>>301461
https://pastebin.com/Bgb87AQ0

Ещё можно так сделать, причем если оффсет будет больше размера текущего файла, то он увеличится, совершив конкатенацию тех байтов, которые были за пределами предыдущего размера. Если это недопустимо в твоем случае, то просто добавь проверки величины перед тем, как передавать оффсет в функцию.
изображение.png82 Кб, 1808x362
245 2301558
Не очень понятно. А если размер данных меньше чем размер буфера, то что?
246 2301565
>>301546

>пчёл


Пойти нахуй в тикток, борда 18+
Тебе тут не рады, зумер
247 2301567
>>301565
Тебе паспорт показать, дедуль? Вопрос был по сути треда, будь добр ответь, не доёбывай.
248 2301605
Гарантируется ли, что данные, которые я отправил на сокет через boost asio c помощью async write придут в том же порядке, в каком я их отправил?
249 2301606
>>301391
>>301392
Ну так printf же это С. Зачем мне С в С++?
250 2301620
>>301605
Для TCP гарантируется (физически они могут прийти непоследовательно, но системный слой выдаст в правильном порядке), для UDP нет.
251 2301635
>>297650
Да и в игорях все уже переходят на ecs
252 2301637
>>301635
Ecs прекрасно с ООП живёт
253 2301678
>>301637
Оно не то чтобы с ним живёт, оно на нем и реализуется, это ведь тип организации движков.
254 2301694
>>301526
>>301552
Спасибо
255 2301697
А на чем вообще делают интерфейс под всякие системы типо датчиков, фотиков там разных? Там крутится какая то условная бубунта, виндоус и кутовый код? Кто таким занимается можете пояснить за инструменты в общем, даже не обязательно плюсовым?
256 2301768
>>301552
Объясни нахуя тебе перегрузка для rvalue вектора.
257 2301782
А как, чем и на предмет чего тестится постбилд код? Вот у меня сейчас в гите стоит стейдж в CI который после билда прогоняет файлик через valgrind. Всякие юнит-тесты и прочая хуйня это понятно, а ещё что-нибудь юзается?
258 2301787
>>301697
Зависит от железа, зачастую ресурсы очень сильно ограничены, что приходится рисовать интерфейс попиксельно, если повезет, то в какой-нибудь из библиотек будут уже реализованы простые фигуры.

Можно использовать любой язык (с ограничениями), но только если найдешь для него компилятор, а так наиболее популярны C, C++, но имхо C++ там не нужен.
259 2301842
>>301787
Ну а по конкретней можно про инструменты? Какие либы? Вот в тачках стоят какие то демшанские планшеты или фотики типо кэнона, как там вообще все устроено? На чем все это пишется и подо что
260 2301884
>>301842
Какие инструменты? Берешь компилятор для мк и пак либ, которые с ним идут, посмотри, как код для всяких стмок или ардуинок пишется, иногда есть возможность отладки через компьютер, но не всегда, бывают ситуации, когда у тебя отладчиком является светодиод или осциллограф.
261 2301891
>>301842
И еще, с такими вопросами лучше в Си тред.
262 2301896
>>301891
В си-треде сидят одни шизики, а здесь все.
263 2301922
Объясните нахера нужен этот ваш auto в строго то типизрованном языке?
264 2301926
>>301922
А он как то нарушает принцип строгой типизации? Нужон просто чтоб код не захламлять кучей мусора, потому что хоть в сколько то большом проекте довольно скоро все превращается в хуй::говно::жопа::моча::итд
265 2301932
>>301926

>А он как то нарушает принцип строгой типизации?


Выглядит именно так, что челику западло разбираться что оно там и чем является и он всё на волю самой проги/компилятора/императора отдаёт.

>Нужон просто чтоб код не захламлять кучей мусора


В чём проблема использовать using хуй = std::жопа<std::моча<...>>?
266 2301943
>>301932
Ты можешь писать как хочешь, с авто это просто короче и нагляднее, чем городить кучу всякой херни. Никак строгой типизации это не противоречит, я хз что ты тут сказать пытаешься. Вообще подобное есть не только в плюсах, а еще и в других строго типизированных языках. Воспринимай это как просто сахарочек для удобства
267 2301948
>>301943
Да я то ничего и не пропагандирую. Просто пытаюсь понять, сахарок это или есть в этом какой-то сакральный смысл.
268 2301993
>>301932

>В чём проблема использовать using хуй = std::жопа<std::моча<...>>?



Сынок, вот хуярил бы ты метапрограммирование, тогда бы понял зачем auto в плюсах.

Домашнее задание - высри имплементацию struct.unpack как в пиздоне, чтобы функция возвращала tuple произвольного размера с произвольными типами с парсингом форматной строки в компайл-тайме, посмотрю на тебя. Если в плюсах что-то есть, значит так надо. Этот язык создавался гениями.
269 2302001
>>301993

>зачем auto в плюсах


синтаксический сахарок
270 2302002
>>301926
принцип то конечно хороший, но стоит помнить что в крестах нестрогая типизация
271 2302005
>>301697
могут к примеру внутрь линукс запехать, и доступ к экранчику сделать через fbdev, а дальше уже прикрутят более высокоуровневую либу типа qtopia, либо сами сделают что-то похожее, ну а в конце прикладной программист уже будет делать экошки, кнопочки и прочее используя этот инструмент
самая жесть когда железка совсем новая и есть только доступ к видеопамяти, когда сначала нужно будет сделать что-то типа fbdev, в общем кадровый видеобуфер с двойной буферизаци, и уже после этого делать библиотеку gui
но во встраиваемых системах зоопарк, десятки решений, хотя принцип у всех похожий
272 2302010
>>302002
Он путает строгую типищацию со статической.
273 2302036
>>301922
Потому что есть анонимные сущности, например лямбды или анонимные классы, о типах которых знает только компилятор. Ещё в шаблонах надо как-то выводить тип конечного выражения.
274 2302101
Надо ли закрывать файловый стрим? А если он у меня окрывается и обрабатывается в отдельном блоке {}?
275 2302110
>>302101
Сам закроется при выходе из блока.
276 2302144
>>302110
Точно?
277 2302328
>>302144
https://en.cppreference.com/w/cpp/io/basic_ofstream/close

>This function is called by the destructor of basic_ofstream when the stream object goes out of scope and is not usually invoked directly.

278 2302332
Помнится где-то читал, что базовые типы можно передавать там, где не требуется иное по значению и ни о чём не сожалеть мол там всё внутри отлично организованно и от передачи ссылок профитов нет. Так ли это?
279 2302337
>>302332
Ну и как тогда изменять значения переменных из места вызова? Через указатели?
280 2302342
>>302337
Я же пишу - там, в тех случаях, где изменять ничего не требуется.
281 2302413
Как сделать метод с 1 единственным опциональным параметром? Юзаю std::optional с дефолтным значением но оно всё равно не компилируется если не передавать никакое значение в функцию. Не кидать же постоянно туда std::nullopt, это же тупо?
282 2302421
>>302413
ПЕРЕГРУЗКА
Е
Р
Е
Г
Р
У
З
К
А
283 2302422
>>302421
Ну нееет, я имел в виду без неё.
284 2302430
>>301782
Бамп вопросу
285 2302447
>>302422
Без нее тоже работает, только что проверил.
286 2302460
>>302447
Покажи свой код
287 2302473
>>302413

void sosat_hui(int len = 42) { ... }
288 2302486
>>302473
И что за несправедливость?
289 2302493
>>302486
Надо прямо в объявлении. А ты в определение ебанул.
290 2302500
>>302493
Вот оно что, спасибо!
291 2302797
Давненько не писал ка плюсах, и подзабыл уже
Вот есть у меня
base.h
class Base { virtual bool foo(int) = 0; }

impl.h
class Impl: public Base { bool foo(int); }

impl.c
bool Impl::foo(int x) { return x == 42; }

А почему линковщик ругается что не найдено Base::foo(int)
Разве не в этом весь смысл =0?
Из за этого непойми где приходится писать чушь типа Base::foo(i) { return false; }
Подскажите как правильно
292 2302799
>>302797
Ну и да, используется это все в духе Base* ptr= get_Impl(); ptr->foo(42);
Сам Base ни в каком другом виде никогда не используется
293 2302806
Что надо знать/уметь чтобы вкатиться для начала хотя бы на 1500 ерос?
294 2302816
>>302806
Для начала надо умерить свои запросы.
295 2302819
>>302816
Да в смысле? Это же вообще копейки. Ну я и сам из себя норм, умный, старательный.
296 2302851
>>302819
Джунька 1к, мидло 1.5к, сенька 3к и выше. Вкатыш без опыта 600-700 может быть и стоит, но многие даже такими деньгами рисковать не станут.
297 2302859
>>302851
А если у меня 0.5 года изучения С, 1.5 года С++ и 2 пета по последнему?
298 2302866
>>302859
Опыт это конечно хорошо, но что уметь то можешь? Что за петы?
299 2302871
>>302859
Опыт на C вообще никак не засчитывается. 1.5 года это считай джун, максимум сотыга.
300 2302877
>>302797
Она приватная, потомок ее не видит и не переопределяет своим объявлением. Если бы использовал override тебе бы сразу выдало что хрень пишешь.
301 2302881
>>302819

>Ну я и сам из себя норм, умный, старательный.


Славный парень - это не профессия.
302 2302887
>>302877
Нет, у меня в коде не приватная.
303 2302888
>>302887

>class Base { virtual bool foo(int) = 0; }


>не приватная


Чаво?
304 2302891
>>302887
Дальше мой телепатический навык не работает (
305 2302892
>>302888
Не тупи. Я же не буду сюда все 100 строк копипастить.
306 2303006
>>300875
Да, с отчизной наибольшие проблемы.
В РФ на плюсы активно нанимает яндекс, но там предметная область бекенда, а не роботов, автономных машин и компиляторов.
Еще есть касперский, хуавей, самсунг, мцст. Наверное сначала нужно туда пытаться попасть. Но в хуавее и самсунге все забито на несколько лет вперед разнообразными олимпиадниками из мфти, поэтому если ты один из них, то остается касперский и мцст. Хотя в мцст тоже очередь из мфтишников есть.
А так в целом раз уж ты родился здесь, то смысла от переката за бугор много не будет.
Будешь получать свои 150 килобаксов в США и платить там конскую сумму за ипотеку. В итоге уровень жизни будет гораздо меньше, чем у местной веб маньки.
307 2303019
>>303006

>В РФ на плюсы активно нанимает яндекс


не пизди, это не так
они собеседуют, но за последние 2 года не взяли ни одного кодера с++ вообще то
308 2303053
Планирую перекатиться на линукс. Мне главное чтобы прогать можно было удобно. Я обычно прогаю в vs code + настроены компиляторы в vs либо через консоль компилирую. Иногда возвращаюсь на винду в vs когда надо что то отдебажить сложное. Все таки в vs с этим удобнее. + есть анализ участков кода на производительность и анализ памяти. На линуксе с этим либо не так просто, либо я не разобрался. Чем на линуксе vs заменить?
309 2303055
Как сделать "читерский" DI на шаблонах для бедных? Грубо говоря хочу так
AppBase.h
class AppBase { ... }

template<T, какаято магия, AppBase>
class RegisterApp { T app; ... }

App.cpp
#include "AppBase.h"
class MyApp : AppBase { ... }

RegisterApp<MyApp> reg; либо какая то магия

Engine.cpp
extern RegisterApp<какая то магия> reg;

main() { reg.app.foo();}
310 2303077
>>303053
А чем тебе vs code на Linux не устраивает?
311 2303078
>>303077
Ну и когда-то netbeans был неплох. Но сейчас C/C++ поддержку на нём не развивают. Плюс жрать стал как не в себя. Сам перекатился в VS.
312 2303094
>>303053
Я в vscode через lldb дебажу
CodeLLDB или как то так расширение называлось
313 2303100
>>303055
CRTP
Посмотри как ATL и WTL сделаны
314 2303126
>>303053
>>303078
Линукс, вим, gdb, иногда шлайно. Всё, гуи не нужен.
315 2303598
В плюсах можно сделать так?
Вытащить из рандомной структуры список всех полей вида "type | var_name | address".
Т.е я не знаю сколько полей и какие они.
316 2303623
>>303598
если вкратце то на райтайме нельзя, тк нет рефлексии
в компайл тайм можно
317 2303645
>>303598
Если у тебя задача распарсить какой-то протокол с данными, то есть либы наподобие http://kaitai.io/
Там ты конечно должен структуру сам ручками расписать, методом тыка.
318 2303737
А есть какие-нибудь либы что написать полноценный такой гуй на HTML+CSS? Или хуйня затея?
319 2303740
>>303737
Есть, но хуйня затея.
320 2303741
>>303740
А чому хуйня?
321 2303742
>>303741
Потому что не нужны тебе кресты, если такая идея возникла.
322 2303772
>>303742
Ну, если ты так говоришь... Кресты же у нас чисто про вертикальное мышление и Ctrl-C и Ctrl-V код. Есть Qt и больше нам ничего не надо, так ведь?
323 2303796
>>303772
Использование HTML+CSS, когда есть Qt/Gtk избыточно и это лишняя нагрузка, переносимость/кастомизация у них большая, тащить с собой webkit на 30мб загружать в ОЗУ пару мегабайт, такое себе, что ты от этого получишь?
324 2303802
>>303737
RmlUI, там конечно отличается но идея такая. Попробуй, еще захочешь.
325 2303804
>>303796
А Qt у нас невесомый, лол.
326 2303828
>>303796
>>303804

>что ты от этого получишь?

327 2303861
>>303828
Удовлетворение своего энтузиазма и неприятия мейнстрима.
328 2303940
>>303861

>своего энтузиазма


Какого? Взять готовую библиотеку и написать никому ненужный и всеми ненавистный еще один локальный HTTP сервер, это по-твоему удовлетворение энтузиазма?

>неприятия мейнстрима


Писать GUI на вебе - это мейнстрим уже пару лет, когда стали появляться различные редакторы кода на электронах.
329 2303942
>>303940

>Какого?


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

>неприятия мейнстрима


Не, электрон это даунская хуйня, тут и так всё ясно.
330 2303964
>>303796
30 мб в 2022 боятся потратить
Вот ты конечно экономный
331 2304005
>>303964
js тред на 2 страницы ниже
332 2304022
>>304005
Горизонтальное масштабирование! Кластеризация! Ко-ко-ко!
Бляяя, почему нихуя не работает!!! Это язык плохой переписываем на хуйня-нейм!
333 2304023
>>304005
Спс за инфу
334 2304128
>>303964
В 2022 не слышать про дефицит полупроводников
335 2304140
>>304128
а память все дешевеет и дешевеет, вот удивительно, да?

чел, сейчас у каждой домохозяйки как минимум 8гб рам, куда ты свои сэкономленные 30 мб пихать собрался на десктопе?
336 2304141
>>304022
Фронтедеру неприятно, я посмотрю. WASM уже выучил?
337 2304145
>>304141
WebKit в 4 гига влазит?
338 2304147
>>304145
Не шарю, не знаю.
339 2304167
>>304140

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


Чел, назови 3 адекватные причины использовать вебкит при написании кода на C++.
340 2304186
>>304167
у меня только одна, удобнее
341 2304297
>>304140
Это просто вопрос чести и профессионализма, зачем делать тяп ляп, и вообще брать низкоуровневый язык с ручным управлением памятью, если тратить ее бездумно, а не только минимально на то, что надо? Это же, типа, основы computer science.
Я вот хотел сделать браузер для двача, чтобы был крохотный как старая аська и висел в фоне не жрал ресурсы, там же нужно мизер ресурсов на тексты, так хуй там, капча требует подгузки целиком браузера с яваскриптом.
342 2304301
>>303796
дык в qt ты как раз и будешь гуй на html рисовать вообще то..
343 2304308
>>303737
у майкрософт когда то давно была такая интересная технология:
движок их браузера был по сути компонентом activex, поэтому ты мог просто создать приложение, и активировать в нем этот компонент, и таким образом у тебя был уже в приложении свой мини-браузер
далее на любом языке, который мог в com, ты уже мог создавать активные странички в этом компоненте, отрисовывая там кнопочки, фреймы, таблички и все такое прочее
у майрософт еще была на основе этого такая заготовка которая позволяла для скриптовых сценариев очень быстро рисовать гуй - ты там в скрипте на vbscript или jscript (ну и на других скриптовых языках типа active perl, active python, etc) мог быстренько сделать менюшки, кнопочки и все такое
майкрософт, по сути пионеры такого подхода были
потом подход к построению гуи при помощи html+css он в принципе более идеологически правильный, так как разделяет презентацию и представление (чего, к примеру не было в формочках дельфи)
344 2304313
>>304301
На каком моменте в кьюти повляются формы на хтмл? Я что то пропустил?
345 2304387
>>304308
Бля охуенная же идея, но снова всё проебали.
Как и wsl 1.0 в пользу унылой виртуалки.
Хотя там как раз понятно, что деды которые сделали мелкомягким ядро nt, давно ушли или померли от геморроя. И изначальный план - подсистема окружения с равноправными процессами - реализовать не осилили. А ведь линуксовые процессы уже были видны в диспетчере задач, им можно было устанавливать приоритеты и привязку к ядрам..
346 2304391
>>304308
И где эта технология сейчас? Сосцы, бинарники, мультиплатформа?
>>304387
А вообще винда в 2022 нахуй не нужна.
347 2304407
Ого back to basics годнота
Советую всем полувкатунам
348 2304413
>>304407
Любой адекватный вкатун сразу после прочтения Страуструпа начинает код писать, а не хуйнёй страдать.
349 2304415
>>304413
Как одно другому мешает?
350 2304422
>>304415
Практика всегда должна идти впереди теории. Если ты читаешь 300 страниц и пишешь 20 строк кода - ты явно не прав. Если ты пишешь 300 строк кода и при этом прочитываешь 20 страниц стака/референса - то уже спустя малое время ты будешь из себя что-нибудь представлять.
351 2304425
>>304422
там лекции максимум полтора часа
никто тебе не запрещает в остальное время код писать

или ты как себе это представляешь, я сижу целый день видосики смотрю и код не пишу?
352 2304462
>>304425

>полтора часа


Охуеть, чем смотреть каких-то чуваков в свитерах и с синяками под глазами за это время можно примитивненький рейтрейсинг написать.
353 2304490
>>304462
написал уже?

очень интересно во сколько строк смог уместиться и как ты это за полтора часа написал
354 2304552
>>304422

>ты читаешь 300 страниц и пишешь 20 строк кода


Надо так.
Я в детстве прочитал десяток книг по программированию когда у меня даже не было компьютера. Каждую главу вдумчиво.
355 2304574
>>297529 (OP)
Какие есть api на 10ке чтобы получить температуру процессора?
Я знаю что есть wmi, а можно ли к api биоса обратиться напрямую?
sage 356 2304581
>>304574
Лаба?
357 2304582
>>304581
нет, домашние эксперименты.
358 2304583
>>304581
я не учился никогда в вузе, у меня 9 классов образования
359 2304585
>>304583
Молодец, так и надо.
360 2304587
>>304585
ну так что есть какие способы из винды обратиться к api bios чтобы узнать температуру проца?
361 2304588
>>304587
Не ебу, лет 6 на винде не сидел.
362 2304598
>>304588
мерси. тогда пойду погуглю.
а в линуксе то есть возможность в api boisа обратиться напрямую?

ну подключить какой-нибудь заголовок типа <biosapi.h> и чтобы там была функция типа getCPUTemp();?
363 2304600
>>304598
если efi, то сенсоры в acpi описаны.
364 2304603
>>304598
Погугли lm-sensors, должно быть что-то можно использовать. Лезть в бивис тебе нахуй не упало.
365 2304606
>>304600
>>304603
спасибо, да я uefi-bios как одно имею в виду оно же как расширение над ним, мне и uefi очень даже норм. всё понял куда копать. спасибо
366 2304608
>>304606
под виндой ещё есть sensors api
367 2304613
>>304608
мерси, возьмём на заметку.
368 2304667
>>304391

>И где эта технология сейчас?


думаю даже в win11 ты все еще сможешь сделать gui-менюшку на html используя скрипт vbscript, майкрософт обычно держит свою обратную совместимость до последнего
369 2304668
>>304387
ну смотри, ведь wsl это был преемник sfu (сервисы майкрософт для юникс), а sfu был преемником posix windows nt
а ядро nt было интересно сделано - предполагалось что поверх него будут сделаны различные подсистемы, главная конечно же это была windows, но при этом сделали еще и posix слой, и вроде бы еще запиливали другие более специализированные системы, для ранних смарт-устройств например
в общем, майкрософт, повторюсь, как ни странно зачастую являются пионерами, бегут впереди рынка
370 2304669
>>304574
ну тогда тебе придется научиться писать драйвера.. обычно всякие утилитки для мониторинга под винду идут этим путем..
372 2304872
Как у кьюти дела с мобильной разработкой под андроид? Какие подводные? Стоит или проще взять котлин\жабу?
373 2304885
>>304872
Всё очень плохо. Любой шаг влево-вправо - и приходится переписывать на жабу.
374 2305012
бля вы всегда так пугаете физтехами. Как будто
1) Это единственный нормальный вуз (есть еще МГТУ и МГУ как минимум)
2) Они реально такие жесткие. Они все там физики, которые идут в машин лергиниг, если денег хотят. Че вы то ссытесь, чмохи?
3) Да даже если они реально ТАК знают математику, то это не гарантирует, что они хорошие программисты. Мб Rnd или анатилики да, но прям прогеры - хз. Думаю что процент хороший прогеров оттуда не сильно выше чем у других топовых втузов
4) Был у меня знакомый физтеховец мощный. Прям стандарная история: топ школа -> физтех -> свой стартап в тех зрении. Так вот он утверждал что на мобилке нереально в риал тайме распознавать лица. Ну йопта. Не говорю, что он тупой - чел реально мощный. Но, как грится, также ошибаются как и все.
Так что я совершенно не разделяю хуйни типа "ой там физтеховцы одни в очереди стоят, ик пук". Конечно, если ты заканчивал ЗалупкинГУ и тебе после рабочего дня интереснее пивас пососать, вместо того, чтобы почитать чего-нибудь по алгосам\линалу\терверу\любой другой математике, то да. Соре
А если чел реально увлечен работой и имеет хорошую базу (или хотя бы поднимает ее в свободное время), то не нужно депрессовать
Пысы. у меня знакомый из второсортного вуза в самсуге работает. Не скажу, что он мимокрок, но и не топ перформер. В свое время не смог с usb либками разобраться
375 2305019
>>305012

>вы всегда так пугаете физтехами


Кто? Кого?
376 2305100
>>304825
спасибо

>>304669
это я и хочу сделать
377 2305103
>>304669
Для начала я бы хотел просто запустить программу которая бы просто вывела один раз значение температуры цпу в консоль один раз и всё. я ещё заняться не могу этим недавно с одного компа на другой перешёл, пока данные по сети тащил с одного на другой, пока обратно, пока винду искал/драйвера пока на старом всё переделал я его же отдал другому человеку. ну ты понел как это геморно
378 2305141
>>305012
Ну топ конторы, они же RnD занимаются, считай околонаучной деятельностью. Допустим тот же самсунг занимается параллельными вычислениями на кластерах GPU. Для этого нужны исследователи, которые родят концепт. Это выпускники МФТИ. В добавок к этим челикам нужны инженеры, которые переложат концепт в код. Это твой дружаня из второсортного вуза.
379 2305214
>>305141
Ну, извини меня, rnd штат совсем небольшой. Тут я часто слышу тему, что даже инженером не устроишься в такие конторы.
Ну а насчет того, что в рнд беркт одних физкеков тоже хз. Опчть же я не говорю, что рнд самсунга держится на МАИ, но думаю что и не только физтех
380 2305234
>>305214
RnD вещи делают люди с учеными степенями, либо стремящиеся их получить - аспиранты, кадидаты и доктора наук.
И там больше роляет чем ты занимался, кто ты по жизни и кто твой научник. Ну и так сложилось, что наукой в инженерных вузах у нас не занимаются от слова совсем, поэтому в RnD кроме физтехов ты вряд ли кого-нибудь встретишь (может только парочку челов из МГУ и ВШЭ).
381 2305307
>>305214
>>305234
Раз уж тут обсуждение рнд и физтехов, то внесу ясность, как физтех, прошедший 3 крупных рнд + успешную институтскую лабу с компьютерным зрением.
1. Физтехи есть, но немного. Где они все - хз. В основном работают не по специальности типа банковскими аналитиками или кодерами.
2. В компании, где был прямо максимальный рисеч, было много людей вообще не из московских вузов (удивительно много сибиряков)
3. Мода нанимать "не ниже кандидата" прошла году в 2015, когда стало понятно, что рисеч тоже может приносить бабло, а людей не хватает.
4. На физтехов при этом многие смотрели с восторгом, хотя мы особо не выделялись из общей толпы. хотя я все-таки смог придумать клевый успешный алгоритм для своего направления. Наверно сейчас хэдквотер во всю его себе на девайсы адаптирует
382 2305743
Как мне подключить библиотеку к QT, я не понимаю в корне. Почему все так не понятно.
Вот есть
https://github.com/signal11/hidapi
библиотека, но там нет не lib, не dll, не а, ничего нет.
Что мне подключать? Как? у меня голова уже болит просто пиздец.
помогите пожалуйста я не смог найти ни одного адекватного гайда
383 2305752
>>305743
https://doc.qt.io/qt-6/cmake-get-started.html

Если тебе без CMake нужно, то у меня по такому пути они находятся: C:\Qt\6.2.2\msvc2019_64\bin
384 2305753
>>305752
>>305743
ой бля, тебе надо К qt
385 2305781
>>305743

>библиотека, но там нет не lib, не dll, не а, ничего нет.


Это исходный код библиотеки, в ридми есть описание того, как ее собрать.
386 2305802
>>305743

>но там нет не lib, не dll


>Как


Очевишче yarn install ... и съеби
387 2306017
А правда что после гос компаний на работу за границей не берут и обходят будто ты заразный?
388 2306026
>>306017
Это наоборот работает, если ты имел доступ к гостайнам ты несколько лет невыездной. Хотя какой смысл в эпоху интернета хз.
389 2306042
>>306026
Ну типо ты работал на агрессию, и вообще может быть шпион и хакер. Они даже после работы в касперском боятся брать. Но не говорят этого потому что на них можно подать в суд.
390 2306044
>>306017
В целом нет, но при оформлении рабочих виз могут быть доп проверки
391 2306073
>>305781
я не понимаю как ее собрать, тут даже Readme фаилы не в txt
392 2306158
Я в полной фрустрации, как бы я не гуглил я ничего не нахожу дельного, о том как пользоваться ебаной библиотекой скачанной с git, как ее подключать если там нихуя нет, как ее собрать если нет нормального гайда, сидеть неделю изучать как работает Cmake, ради создания одного ебаного фаила .lib, сукааааааааааааа
393 2306188
>>306158
Добро пожаловать
Cmake - база, на которой вся индустрия сидит и да, придется жрать говно вместе со всеми

но вобще достаточно cmake ..
394 2306288
>>306017
Всем похуй, но на допуски смотрят когда думают, выдавать тебе визу или нет. Если второй-третий лвл был, то могут и отказать. На первый похуй обычно.
395 2306311
>>306288
Ты уровни допуска перепутал. 3й наоборот самый поверхностный. Как на практикес визами работает. Лично я не в курсе. Мне кажется, что больше от предприятия зависит, на котором работал. Потому что 3й уровень допуска на военной кафедре вузика и работа непосредственно на министерство обороны с третьим уровнем допуска все-таки разные вещи.
396 2306347
>>300537
События предназначены для хэндлинга внутренней жизни объекта, сигналы и слоты для общения объектов друг с другом. Иногда события пересылаются дочерним объектам конечно же, но в целом они не должны протекать наружу.
Эвенты - часть приватной реализации, сигналы - публичный интерфейс класса.
А потом кто-то придумал что было бы прикольно менять поведение класса композицией вместо наследования и вмешиваться в жизнь объекта пробиваясь шаловливыми ручонками к его эвентам. Так появился эвентфильтр. Эвентфильтр - это хак, вернув true вместо false можно сломать отрисовку объекта или его респонсивность нужным тебе образом. Это очень полезный и удобный хак, так что совершенно невозможно отказать себе в удовольствии им пользоваться.
Не могу представить себе ситуацию когда тебе нужны какие-то ещё эвенты кроме уже реализованных, да ещё и публичные. Обрисуй идею.
397 2306368
>>306347
Я хотел сделать drug and drop квадратиков как в windows phone, типо там будут квадратики и их можно будет перемещать по сетке, так вот я хотел с помощью события передавать другим квадратикам что я нажал на квадратик и собираюсь его перетащить. А когда другие объекты ловят евент о том что я сделал drag одного из квадратиков, то они уменьшались в размере бы, что бы можно было понять какой квадратик ты взял, а какие нет. Я просто на тот момент думал что евент, это что то глобальное, что можно послать в общий эфир и все услышат, но как оказалось это не так, это частный случай сигнала.
398 2306380
>>306368
В примерах есть проект с мозайкой и драг-энд-дёрпом, там всё расписано
399 2306384
>>306380
А где примеры найти? В Qt Creator?
400 2306396
>>306384
Да В Qt Creator на главной должны быть если ставил с ними
ну или тута https://code.qt.io/cgit/qt/qtbase.git/tree/examples/widgets/draganddrop/puzzle?h=5.15.2
git://code.qt.io/qt/qtbase.git
https://doc.qt.io/qt-5/qtwidgets-draganddrop-puzzle-example.html
401 2306443
У кого какой рабочий инструмент? У всех коллег какие то полуигровые ноуты с видяхами хорошими, а я вот думаю простой хонор взять, ну максимум виртуалку запустить, да сервер. Должно же хватать?
Кто новый ноут покупал недавно что вы там брали?
402 2306489
>>306311
Был третий (ДСП) без факта ознакомления, всем похеру было.
403 2306493
>>306443
Стационарник с 16gb ram. Спокойно верчу одновременно пару виртуалок, 3 студии и хром с огромным количеством вкладок.
404 2306516
>>306497 (Del)
Съеби в порашу, зарепортил.
405 2306539
>>306443
Дома станция на тредриппере стоит. Но я очень часто в постоянных переездах/перелётах так что беру с собой простенький ультрабук и не так давно новый хуйоми планшет взял. Когда как то с одним, то с другим. 95% работы делаю через ssh преспокойно. Если нужно какую-нибудь модельку быстро обучить - тупо арендую кластера. Брать ноут как основу == тупость.
406 2307064
>>299453
Что-то твои свидетельства сильно расходсятся с тем, что аноны пишут в англоязычных интернетах - веб-макаки (бекендовые, по крайней мере) и востребованнее, и богаче.
407 2307108
аноны, кто работал с dds ? Хочу попробовать ради тренировки написать свой, но чет не совсем понимаю, как это все работает. Точнее концепция ясна, но вот реализация - хз . Я прочитал, что там не используются сокеры. Тогда вопрос: как передать данные в от устройства к устройству? или я все-таки не понимаю концепцию?
Скиньте что-нибудь почитать плез на эту тему
408 2307109
>>307108

> сокеры


сокеты, быстрофикс
409 2307111
>>307108
Что именно ты понимаешь под dds?
410 2307112
>>307111
сорян, забыл, что не один контекст
https://ru.wikipedia.org/wiki/Data_Distribution_Service
411 2307128
>>307112
Это обычный сервер или я не понимаю?
412 2307138
>>307128
нууууууууууу и да и нет. Представь что у тебя есть много устройств, например, робот с большим количеством сенсоров и систем типа СТЗ, локализации и тд.
Вот драйвер каждого сенсора или камеры может срать сообщениями.
Представил
Так вот ддс это модель, при которой существуют публикаторы и подписчики на определенный топик. Например, топик называется 'camera_data'. В него публикует данные драйвер камеры. А, например, модуль object detection на этот топик подписан и эти данные оттуда забирает.
так вот я мельком видел инфу, что вся такая архитектура сделана не на сокетах а как-то иначе. Как - я хуй его. Как я понял, ты , анон, сам не очень шаришь в этом. Однако взываю к анонам, которые понимают что происходит, чтобы чуть объяснили, а то я чет не совсем понимаю реализацию этого говнища
413 2307163
>>307138
Ты же сам ответил на свой вопрос на чем, кроме сокетов, такое можно сделать, драйвера для устройств, взаимодействие через условный USB порт или через что-то еще.

То, что ты описал, является сервером.
414 2307164
>>307138
Чёт это всё пахнет хуем. Возьми socket.io или его аналоговнет и не выёбывайся.
415 2307165
>>307138
>>307163
В дополнение, подобное можно реализовать на каком-нибудь, более узком для такой задачи, микроконтроллере, чтобы не занимать целую машину для подобной задачи, к тому же более удобное подключение множества устройств через пины, как и в целом более гибкая структура может получиться, потому что не будет ограничений от ОС.

Ну, или просто поднять сервер.
416 2307195
>>303126
А разве это полностью заменит visual studio? Есть ли анализ участков кода на использование процессорного времени в вашей схесе есть? Мне иногда vs code + clang кидали странные ошибки, которые я потом только в visual stduio находил. Мне студия кидала heap corruption, а vs и clang просто "Вызвано исключение" и всё. А я голову ломал почему оно вызвано.
417 2307200
>>307195
Clion преспокойно заменяет никому не нужную помойную студию.
418 2307201
>>307200
Он жирный шо пиздец. Разница между Clion и vs небольшая. Переходить с vs на clion особого желания нет. Я вообще не уверен, что clion получше vs будет
419 2307223
>>307163
Нет. Точнее я не очень хорошо описал
Но прикол в том, что в такой архитектуре нет сервера. Там идеология такая, что выход одного компонента не должен выводить из строя другие
Это скорее шина, по которой гоняется словарь, где коючи - топик, а значение - очередь сообщений
С микроконтроллером соглы, но это не только в микроконтроллерах применяется. А везде, где нужен риалтайм. В примерах применения часто фигурируют финансовые системы
420 2307235
>>307223
Так у тебя устройства по сетке общаются или физически к одному хосту прицеплены? Если к одному хосту и на лялексе, то могут и через shared memory общаться или пайпы. Зачем тебе сокеты то?
421 2307240
>>307138
Бумеры изобрели брокер сообщений.
422 2307264
>>307223

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


https://ru.wikipedia.org/wiki/Одноранговая_сеть

В любом случае, получается клиент-серверная архитектура, только децентрализованная.
423 2307283
>>307201
Ну тогда иди нахуй. Серьёзно, я предложил тебе набор крестоджентельмена, что тебе ещё сказать?
424 2307446
>>307200

> топ1 инструмент


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

425 2307486
>>307446
Ты какую-то мысль хотел донести или просто не смог мимо пройти и не спиздануть ничего?
426 2307649
>>307486
да, мысль в том, что обоссаным студентикам не пристало определять, что не нужно, а что нужно. По-этому, пожалуйста, не определяй.
427 2307683
>>307649

>обоссаным студентикам


Так может тебе стоило штаны спустить прежде чем на горшок садиться?
mcpp.png58 Кб, 1810x404
428 2307949
В одной статье на хабре наткнулся на такую фразу, что постепенно все идет к полному удалению препроцессора и соответственно его директив.
По многим понятно, но на что можно заменить те же директивы условий, когда например при одной битности нужно определить тип как 32 бита, а при другой как 64 бита и другие такие штуки
И вроде как тоже препроцессор удаляет токены типа комментариев и тому подобное, как совсем без него-то?
429 2307974
>>307949

>на хабре

430 2308060
>>307949
Compile-time хуйня останется за препроцессором.
431 2308080
>>307974

> ряяя хабр помойка потому что русек

432 2308087
>>308080
Нет, хабр помойка потому что давно не тот.
433 2308090
>>308060
Ну т.е. я так понял, что только include поменять на модули вместо define value использовать enum, а вместо define fn() использовать inline, а остальное также?
434 2308097
>>308090
Замены проверок препроцессора они не подвезли? Тогда никак.
435 2308413
>>307949
учитывая скорость развития крестов лет через 50 вполне реально
436 2308493
struct sockaddr_in

{

short sin_family; // Protocol type

u_short sin_port; // Port number of socket

struct in_addr sin_addr; // IP address

char sin_zero[8]; // Unused

};

что означает 5 строчка?
437 2308498
>>308493
Если ты про sin_zero, так это для того, чтобы можно было кастовать эту структуру в другие структуры, например sockaddr. А вообще мог бы загуглить
438 2308828
>>308498
это типо ручной align as или я не понял?
439 2308845
Анончики, есть вопрос, немного связанный с WinAPI. Есть у меня канал (pipe) для IPC между службами, и я хочу передавать через него кастомные структуры размером до n байт. Вопрос состоит в том, как это правильно сделать? То есть, грубо говоря, один процесс посылает структуру struct1 второму, а тот лишь заполняет n байт (или меньше, в зависимости от размера struct1) в динамическом массиве. Я так понимаю, нужна шаблонная базовая структура, от которой будут наследоваться другие структуры?
440 2308884
>>308845
Я бы предложил тебе не изобретать сериализацию, а взять готовую. Мы используем protobuf
441 2308945
>>308884
А просто связка CRTP + std::typeid не пойдёт? Посмотрел про protobuf, он всё-таки больше подходит для больших данных, у меня канал данных небольшой, около 512-1024 байт. Да и скорость очень важна.
442 2308950
>>308845
в протоколах обмена обычно делают заголовок фиксированной длины, в этом заголовке описывается что будет лежать в динамической части
просто посмотри в интернете как проектируют протоколы обмена, если уж так хочется свое сделать
443 2308952
>>308945
Ну тут я не знаю, я пользователь этого api, внутрь не заглядывал, для меня это чёрный ящик с простынями кода. Не забудь о версионировании и изменении структур в будущем
444 2308953
>>308493
зачастую оставляют чутка место если в будущем планируется модифицировать протокол, не теряя обратной совместимости
445 2308957
>>308950
Пусть посмотрит на всякие простые протоколы поверх rs 232
Modbus например
446 2308990
>>307949

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


КОНСТЭКСПР
О
Н
С
Т
Э
К
С
П
Р

https://godbolt.org/z/vWG7sn3sr
Даёшь зависимые типы в плюсы!
447 2309085
>>308990
А, забыл. Для любителей шквариться шаблонами и сфинаями, можно https://godbolt.org/z/szMWeTM8o
448 2309087
>>309085
using MyInt = size_t
449 2309110
>>309087
Но это намного менее интересно, а главное - слишком просто.
450 2309116
>>309110
Паты выше бинарны, а эта небинарна и абсолтно трансгендерна портируема.
451 2309117
>>309110
Путь С++: почему всё должно работать просто, если может работать причудливо?
452 2309164
>>309116
Я показал это лишь как пример того, как можно заменить препроцессорное определение средствами языка. Но именно для этого случая я бы, в зависимости от конкретной ситуации:
1) Обмазался бы ифдефами
2) Создал бы две структуры (FooBar32 и FooBar64)
3) Сделал бы два различных .cpp файла и выбирал бы нужный системой сборки
453 2309211
>>309164
Ты графоманией занимаешься вместо разработки.
454 2309242
Сап аноны, есть один язык программирования, основанный на С, но с урезанными функциями.
Дело в том что float здесь 8 байт. Я читаю из бинарного файла число с плавающей точкой 4 байта. Как мне преобразовать 4 байта в 8?
455 2309317
>>309242
float 4 байта, double 8 байт.
456 2309324
>>309317
Нет, здесь и флот и добл 8 байт.
457 2309328
>>309324
Что за язык? Почему float и double 8 байт? Зачем тогда в нем такое различие, на float и double, если у них одинаковые размеры?
458 2309332
short float
float
long float
long long float
unsigned float
459 2309335
>>309332
Мне кажется их не существует.
460 2309345
>>309328

> Что за язык?


Control

> Почему float и double 8 байт? Зачем тогда в нем такое различие, на float и double, если у них одинаковые размеры?


Я не знаю. Даже в мануале написано, что между ними никакой разницы.
461 2309351
>>309345

>Control


Первый раз слышу, как и поисковики.

Определись, в каких форматах у тебя представлены вещественные числа в языке и в каком формате они в файле. После чего преобразуй float из файла, в свой (язычный) float.

https://ru.wikipedia.org/wiki/Число_одинарной_точности
https://ru.wikipedia.org/wiki/Число_двойной_точности
462 2309482
Хочу написать приложение, которое можно будет легко адаптировать для разных протоколов связи. То есть есть данные, их надо отправить одним из некоторых способов. Может быть как отправка через tcp/ip, tor, i2p, какой то свой произвольный формат, хоть по usb. И вот хочется сделать какой то единый интерфейс для всего этого. Можно ли как то это обобщить все, кроме использвания какой то функции send, которая внутри себя уже просто вызовет другую соответствующую выбранному протоколу?
463 2309504
>>309482
Всё есть файл...
464 2309507
>>309482

>tcp/ip, tor, i2p


>обобщить все, кроме использвания какой то функции send


Как ты собрался реализовывать абстракцию между несовместимыми конечными адресами?
465 2309510
>>309482
>>309507
Забей, не выспался, да можно.
466 2309552
>>309510
Как?
467 2309566
>>309552
Что значит "как"?
468 2309579
>>309566
Ну как? Я вот пока не знаю, поэтому к вам пришел за советом
469 2309581
>>309504
Не понял намека
470 2309589
>>309579
В чем именно у тебя проблема?
471 2309613
>>309589
Нет идей кроме как расписывать передачу ручками для каждого протокола
472 2309617
>>309613
Вот пример, как я бы реализовал, но на Си.
https://ideone.com/1vCdB8

А вот, что тебе почитать.
https://ru.wikipedia.org/wiki/Абстракция
Снимок экрана 2022-03-02 в 19.24.57.png469 Кб, 1840x430
473 2309620
Найс
474 2309624
>>309620
Проблемы форточников.
475 2309626
>>309617
Ну ты же сделал, то о чем я и говорил выше. Есть одна функция, которая уже из себя вызывает нужные для конкретного протокола. А я спрашивал можно ли сделать это элегантнее и с минимумом дублирования кода.
476 2309627
>>309626
Какое у тебя может быть дублирование кода, когда у тебя все протоколы разные?
477 2309633
>>309627
Они могут быть похожи. Некий тор и i2p кажется можно вообще как прокси юзать, тогда интерфейс будет вообще одинаковым, а можно ручками api дергать.
478 2309638
>>309624
Там нет форточек
479 2309642
>>309638
Это что, инсталлятор для лялеха? Зачем не из репозиториев ставить?
480 2309645
>>309633

>Некий тор и i2p кажется можно вообще как прокси юзать


Если они у тебя установлены в системе, да. Тогда вообще никаких проблем с дублированием не будет, просто создай какую-нибудь функцию, типа connect_to_local_socks(port) и указывай порт для каждого локального прокси в зависимости от тора или айтупи. Дублирования нет.
481 2309670
Ребят, я по ravesli знаю, что говно, не кидайтесь камнями говном пытаюсь учить плюсы. Сайт сейчас отключили, есть у кого-нибудь их pdf-ка, или локально сохранённая копия сайта? Буду очень благодарен.
С вебархива тоже выпилили, прям грусть-тоска.

Почему из-за политики я должен страдать?
482 2309673
Аноны, есть задача написать логгер обращений программ в реестр, для удаления созданных программами ключей при деинсталляции. Короче чтоб реестр не засорялся. Я в системном программировании вообще не шарю, поэтому пришёл к вам за советом.
1. Правильно ли я понимаю, что этот функционал стоит реализовать в виде драйвера?
2. Каким образом я могу отследить событие установки приложения (или его обращения в реестр)?
483 2309676
>>309673
Ты решил по тредам походить и сделать таким образом курсовую? Это же ты в Си треде спрашивал про тему.
>>2309343 →

>1. Правильно ли я понимаю, что этот функционал стоит реализовать в виде драйвера?


Хуки.

>2. Каким образом я могу отследить событие установки приложения (или его обращения в реестр)?


Хуки.
484 2309677
>>309642
Кути. Всё красиво, перечисление компонентов
485 2309678
>>309676

>Ты решил по тредам походить и сделать таким образом курсовую?


А это запрещено? Я стараюсь самостоятельно разбираться и тут задавать конкретные вопросы там, где у меня проблемы.

Про хуки сейчас прочитаю, спасибо. Кстати, нашёл ещё такую вещь как RegistryCallback для драйверов, вроде то что нужно.
486 2309682
>>309676

> 1. Правильно ли я понимаю, что этот функционал стоит реализовать в виде драйвера?


Да, весь реестр ты не хуканешь.

> 2. Каким образом я могу отследить событие установки приложения (или его обращения в реестр)?


Отслеживать записи от определенных приложений (у тебя будет PID в каждом коллбэке). Но глобально задача не решается. Т.е. можно логировать все, что сделает msiexec, допустим. А если софтина не юзает msiexec, и экзешник не называется setup.exe ? Только какие-то эвристики придумывать, типа создания ключения в HKCU\Software или HKLM\Software

Писал виртуализацию реестра, так что можешь задавать вопросы
487 2309683
>>309678
Тебе нужны хуки на вызов функций и dll. Драйвер только усложнит эту задачу, тут пользовательских администраторских прав более чем достаточно.
488 2309685
>>309682

>А если софтина не юзает msiexec, и экзешник не называется setup.exe


Там изначально идея была в другом, чтобы удалить все созданные программой ключи, которые она создала, даже после установки. Определение является ли программа установщиком тут не нужно, просто чистка от мусора (неиспользуемых) ключей реестра.
489 2309689
Читаю из сети, соответственно после каждого чтения проверяю, что чтение успешно, поэтому приходится постоянно писать
client >> req;
if(!client){
break;}
, что заебывает. Как это можно красиво обернуть во что то?
490 2309692
>>309689
Сначала хотел исключение кидать, что слишком жирно для такой мелкой штучки
491 2309697
>>309692
В макрос #define READ(client, req) (client) >> (req); if (!(client)) break;
492 2309698
>>309685
нет такого понятия, как "неиспользуемый ключ реестра". Если ты хочешь что-то почистить - надо записать то, что ты хочешь почистить, как, например, делает Ashampoo Uninstaller.

Просто рандомно хуярить ключи на основе каких-то эвристик - так работают все эти хуевые бесплатные чистильщики реестра, а потом после чистки винду переставляешь.
493 2309699
>>309697
За макросы руки отобъют
494 2309701
>>309698
Ты не понял, да? Смысл в том, что многие программы под окнами, не удаляют созданные ключи в реестре после своей деинсталяции. Логгер записывает все созданные, удаляемой программой, ключи в базу данных, чтобы после деинсталяции удалить их самостоятельно.

>нет такого понятия, как "неиспользуемый ключ реестра".


В итоге, получаем неиспользуемые ключи реестра.
495 2309702
>>309701

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


Чел, я тебе об этом и пишу - тебе надо тогда сканировать процесс установки, чтобы знать, какие ключи не удалились. Ровно так, как делает Ashampoo uninstaller.
496 2309703
>>309702
Сканирование идет всех процессов, включая уже установленные, чтобы удалить еще и созданные на этапе работы ключи, таким образом определять, кто есть установщик не придется.
497 2309706
>>309699
Колбэк на отвал подключения можешь повесить?
498 2309707
>>309706
Нет
499 2309710
>>309703
Типа навесить хук на любое обращение в реестр, и если обращение идёт в software на создание ключа, то логировать его?
Потом хуком перехватывать деинсталляцию приложений?
500 2309717
>>309710

>Типа навесить хук на любое обращение в реестр


Не любое, а только создание ключей\параметров.

>и если обращение идёт в software на создание ключа, то логировать его


Логгируй все.

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


Такого хука нет, программа может быть вообще portable версии, но фактически удалить ее можно будет и ты никак это не отследишь без огромной аналитической работы.
501 2309723
>>309717
Думаю, меня никто не побьет если я буду предполагать что у программы в реестре зареган unistall. В таком случае, как я могу определить момент деинсталляции? Может в реестре менять UnistallString на путь к моему деинсталлятора, который сначала удаляет мусорные ключи и затем вызывает оригинальный деинсталлятор?
502 2309726
>>309723
Возможно сработает винду не видел уже несколько лет в живую, только сначала придется вызывать оригинальный деинсталятор, а потом твой, потому что оригинальный деинсталятор тоже может создавать ключи активности программы.
503 2309728
>>309726
Звучит логично. Спасибо, аноны, буду думать в этом направлении…
504 2309744
>>309670
Выспался, вспомнил, что в гугле меня не забанили пока что и нашёл открытую раздачу. Если кому-то нужно, то вот ссыль. Сам сайт какой-то вонючий, нужна регистрация, но после неё качать можно сразу.
s3. itor. be/viewtopic.php?t=77232
505 2309750
>>309706
Короче похуйч исключение кину жа и все
изображение.png191 Кб, 952x632
506 2309896
Ну вот и всё
507 2309898
>>309896
И дальше будет только хуже(
image.png45 Кб, 621x731
508 2310129
Почему это не компилится
https://godbolt.org/z/f69dTMa7o
а если вынести Inner из Outer наружу, то нормально компилится. Или ещё если явно прописать Outer(Inner const &inner = {-1}) { ... } то тоже компилится.

Можно как-то без этого заставить компилиться?
image.png33 Кб, 577x622
509 2310130
>>310129
Блин, не тот скрин
image.png39 Кб, 736x689
510 2310132
>>310130
Эм, ок, сорри, не подумал так сделать, вроде работает. Хотя блин странно, это баг что ли какой-то, он причём и в кланге, и в гцц есть
511 2310162
>>310132
Это не баг, а основы языка.
512 2310227
>>310162
Понятия не имею, про что ты вообще, обожаю такие короткие бессодержательные ответы

В этом случае есть что ли какая-то существуенная разница между
struct S1 { int x{-1}; };
и
struct S2 { int x; S2() noexcept : x{-1} {} };
и
struct S3 { int x{-1}; S3() noexcept {} }
?

Или тут >>310129 с точки зрения языка есть фундаментальная разница между тем, что Inner находится внутри Outer или снаружи?
513 2310251
Привет, анон. Помоги, пожалуйста радиоинженеру, которому внезапно понадобилось написать немного обработки сигналов на Qt.

Есть одна библиотека для обработки сигналов, liquid-dsp. Официально она не поддерживается под Win, но есть зборочка в рамках другого проекта, и я хочу взять оттуда dll, def и lib. https://github.com/cjcliffe/CubicSDR/tree/master/external/liquid-dsp/msvc/32

В Qt я собираю msvc2019. Пропробовал сделать самое простое:
#include <liquid.h>
(...)
qDebug() << liquid_libversion_number();


Оно билдится без ошибок, но крашится в рантайме сразу же: The program has unexpectedly finished.
Я забыл что-то важное? Библиотеку линковщику указал, ошибок линковки нет. DLLку рядом с бинарником положил. Разрядность проекта и библиотеки проверил (32).

В линуксе поставленный из репозитория .so подгрузился вообще без проблем и сделал то, что от него требовалось.
514 2310268
>>310251

>The program has unexpectedly finished.


Собери отладочный билд и запусти под отладчиком, такое сообщение вообще не информативное.
515 2310336
>>310227
Тебе компилятор написал, что {} в твоём контексте это <brace-enclosed initializer list>. Открываешь гугл и смотришь что такое initializer list и какой у него приоритет при перегрузке. Как тебе раньше ответили - это база.
516 2310347
Как мне передать объекту который я создал в QtDesigner сигнал из потока отдельного? К чему обратиться?
517 2310381
>>310336
Ну ты троллишь или как.
https://en.cppreference.com/w/cpp/language/list_initialization#Explanation

Inner в изначальном примере с ошибкой компиляции (без явно определённого конструктора) - это агрегатный тип, поэтому его должно быть можно инициализировать через braced-init-list. Можно хоть все конструкторы выпилить, но его всё равно можно будет инициализировать (24 строка). И std::initializer_list тут вообще ни при чём.

https://godbolt.org/z/PxEqY1Mxa
Почему на 14 строке я могу спокойно написать:
Outer(Inner const &inner = {42}) { ... }

но не могу так:
Outer(Inner const &inner = {}) { ... }
?

Ну да, не баг, БАЗА, ОСНОВЫ ЯЗЫКА, и ничего что другой компилятор вообще абсолютно другую ошибку выдаст, без упоминания инишалайзер листа.
518 2310504
>>310381

>Почему на 14 строке я могу спокойно написать:


В ссылке, которую ты скинул, есть объяснение.

>Ну да, не баг, БАЗА, ОСНОВЫ ЯЗЫКА


Где тут баг?

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


Какую?
519 2310864
>>310129
>>310227

>Или тут >>310129 с точки зрения языка есть фундаментальная разница между тем, что Inner находится внутри Outer или снаружи?


В C++ традиционно сложные отношения между вложенными классами и complete class context внешнего.
520 2310910
>>309896
чтоб не ебаться с инсталятором конпеляю сам, запускаю, ухожу на три часа, возвращаюсь и всё готово, могу плагины сконпелять какие хочу, могу раздебажить насколько угодно внутрь, поглядеть какие куски кода выполняются и какие переменные и шо куда, рекомендую.
521 2310914
>>310910

>чтоб не ебаться с инсталятором конпеляю сам, запускаю, ухожу на три часа


Сначала хотел посмеяться, а потом вспомнил гуи инсталяторы, так действительно лучше.
522 2311210
>>310251

> 2022


> 32


собери в msys2 на mingw32 и всё будет работать, там легко
523 2311415
Вопрос к nvidia куну: представительство в РФ закрывают? Сотрудников вывозят? Реквестирую подробности
524 2311560
>>311415
А зачем их вывозить? Чебурнет ещё не вводили и они могут работать на барена удалённо.
525 2311562
Хз куда писать, поэтому спрошу тут. На сколько плохо много раз открывать и закрывать tcp соединение для отправки маленьких пакетов? Дело в том, что я хочу периодически отправлять нескольким адресам (их может быть довольно много) текстовые сообщения. Держать 10000 постоянных соединений с каждым тупо. На сколько большой оверхет будет?
526 2311567
>>311560
Тут ужечточился экспорт-контроль, точнее слежение за ним. То есть список технологий, который можно передавать заграницу, ограничен.

Мы в хуавее еще до этой заварухи сильно изучали этот список, и выяснили, что ИИ это прямо на грани. И даже некоторые проекты типа manifold learning пришлось не запускать от греха подальше.
527 2311583
>>311567
Ничего не понял. Чьи, кому передавать? Самим себе из хуавея в хуавей?
528 2311584
>>311415
этот заполнятель эксель табличек уже сьебал из рассеюшки и уже обустраивается на новом месте
ничего, сейчас крыса придет в себя и отпишется через месяц-другой
529 2311587
>>311567
Имеется в виду, что вы хантите челиков из российских компаний, они сливают вам технологии и вы их передаёте далее как свои "разработки"?
530 2311588
>>311583
Твой код, российского инженера, из Москвы за границу летит по проводу к китайцам. Вот в этот момент происходит экспорт. И вот какой конкретно код и для чего он написан определяет законность пересечения этой границы.
531 2311606
https://godbolt.org/z/78r8zsdaq

Почему A? Почему не B? Почему не ambiguous overload error?
532 2311681
>>311606

>Почему A? Почему не B?


Потому что код говно, которое даже кодеру не ясно, что ты хотел сделать.

>Почему не ambiguous overload error?


Где оно тут должно быть?
533 2311774
>>311606
хз, не разбираюсь в таких тонкостях, но замечу, что, во-первых, если ты в инициализации b заменишь внешние фигурные скобки на круглые, то ошибка, которую ты ожидаешь, внезапно появится

во-вторых, если ты оставишь двойные фигурные скобки, но уберёшь из B конструктор, который принимает A, то увидишь ошибку, что типа no known conversion '<brace-enclosed initializer list>' to 'const B&'
534 2311777
>>300158
Все там есть (для тех же кортекс М), просто без MMU использование может быстро привести к сильной фрагментации памяти. Дурной тон, конечно использовать, но если очень хочется - можно, нужно только о кастомных аллокаторах позаботиться.
535 2311779
>>300158
Все там есть (для тех же кортекс М), просто без MMU использование может быстро привести к сильной фрагментации памяти. Дурной тон, конечно использовать, но если очень хочется - можно, нужно только о кастомных аллокаторах позаботиться.
536 2311781
>>308990
Спасибо
с с++ 98 grandfather inside
537 2311905
Тред хоть и мёртвый, но пожалуй спрошу.
Есть класс sf::Keyboard и в нём есть enum Key, в котором перечислены все клавиши.
Я хочу создать класс EventManager, и "скопировать" этот enum себе в класс, т.е что бы EventManager::W равнялось sf::Keyboard::W. Как вариант нашёл добавить typedef в свой класс:
typedef sf::Keyboard::Key Key, и теперь элементы enum будут доступны так: EventManager::Key::W. Есть ли вариант добавить этот enum, что бы он был виден в скопе самого класса? И насколько "легален" вариант который я нашёл с typedef'ом?
538 2311922
>>311905
Надеюсь понятно.

https://ideone.com/ZfXjbJ
539 2311924
>>311905
>>311922
В дополнение, typedef использовать в C++, то же самое, что есть говно.
540 2311929
>>311924
Какой язык, такие блюда.
541 2311951
>>311584
Съебал в связи с последними событиями или раньше? Съебал в другой офис nvidia?
542 2311954
>>311415
На момент последней коммуникации в четверг - Офис остается для всех желающих в нем работать. Все остальные желающие сьебать - имеют право сьебать в любой офис NV.

Собстно, у меня из команды сьебывают почти все, 1 человек остается в РФ только. Так что, как получу ворквизу - попрощаюсь с РФ навсегда.
543 2311962
>>311954
Как быстро визу дают? В какую страну уезжаешь? Вас чартерами вывозят или самоходом?
544 2311963
>>311954
Алсо, какая ситуация в других командах?

тот же вопрос анонам из яндекса, мейла и хуавея
545 2311969
>>311962
Визы зависят от посольств и прочего. Еду я в европу, но весьма специфическую, так что диванон-лигивон. Дохера народу сьебывает в Амстер или там в Берлин, Лондон еще.

>>311963
В других командах все всеьма похоже. Сьебывают почти все
546 2311996
>>311963

> тот же вопрос анонам из яндекса, мейла и хуавея


А нахер хуавею валить? Россия и Китай братья навек! Там даже мыслей об этом нет.
Интел тоже весь остается. Пока вроде даже не рассматривается релокация.
547 2312046
>>311996

>А нахер хуавею валить


Не компания, а сотрудники. В мейле сотрудники массово выезжают зарубеж (как минимум на время), опасаясь закрытия границ. Работать продолжат на удаленке
548 2312047
>>312046
В хуавее даже из Москвы удаленку не одобряют, бро.
549 2312105
>>311681

>Потому что код говно


Я согласен
Код не мой, но интересно разобраться
550 2312547
>>311954
уебывай, говно
не пропадешь там, ведь у тебя охуенный скилл заполнения эксель табличек и написания батфайликов
551 2312641
Ребят, кто шарит как забилдить это? Нужно качать VS2008?
https://github.com/microsoft/Detours
552 2312683
>>312547
Когда мой эксель и батники оплачиваются в несколько раз лучше, чем твой С++ - это лишь повод задуматься о собственной карьере, а не завидовать мне.
image.png56 Кб, 1092x621
553 2312686
>>312641
Я просто нажал Build в 22 студии (правда тулзы от 19 стоят тоже, солюшен на 22 не грейдил) - и все собралось.
554 2312687
>>312641
Нужно качать интеллект. А ещё эксель и батники.
555 2312728
>>312683
я тебе не завидую, щенок
уебывай со страны
556 2312788
>>312728
Мало того, что завидуешь, так еще и горишь, хихи
image.png40 Кб, 1375x428
557 2313003
>>312686
Анон, пытался собрать на двух разных машинах, и там и там ошибка одинаковая. Что я делаю не так?
558 2313005
>>313003
Detours вроде x64 не поддерживает бесплатно, а только за деньги.
Могу ошибаться.
559 2313007
>>313003
>>313005
Поддерживает, я ошибся.
560 2313010
>>313007
насколько я понял с тех пор как они выкатились в опенсорс они стали полностью бесплатными. Анон выше, судя по скрину, билдил под x64, у меня и под x86 ошибка вылетает.
image.png85 Кб, 1072x621
561 2313032
562 2313041
>>313010
Попробуй через vcpkg собрать и установить.

https://github.com/Microsoft/Detours/blob/master/samples/README.TXT
563 2313042
>>313032
ты просто открыл солюшен и нажал "собрать"? Не менял ничего вообще?
564 2313046
>>313042
все именно так
565 2313047
>>313041
сейчас попробую. Кстати, может мне надо какие-то дополнительные средства сборки накатить? Я когда vs ставил, оставил по дефолту все что качается для разработки на крестах
566 2313048
>>313047
Хз, студию видел последний раз лет 5 назад.
sage 567 2313061
>>312788
я тебе добро делаю, сжимаю твои булки, это тебе пригодиться ближайшее время
568 2313063
куда вас там перекидывают? с учетом того что русских в европке щас жрать будут, полгодика минимум
кипр, венгрия-румыния? там вроде поменьше хейта
569 2313065
лень гуглить просто
sage 570 2313066
Никуда.
image.png270 Кб, 540x360
571 2313076
>>313066

>Никуда


о, хорошее место, в таких местах всегда нужны специалисты в ничегонеделании
572 2313094
http://cpp.sh/32hwn
Почему иногда я получаю срабатывание условия? Мне казалось, что std::memory_order_seq_cst должен был решить эту проблему?
573 2313099
>>313094
Что происходит, если у тебя сначала только тред с функцией s() полностью отработает?
574 2313103
>>313099
Точно, хуя я дурачок. А можно как-нибудь этот пример починить, чтобы при смене memory_order'а проблема появлялась?
575 2313127
>>313103
http://cpp.sh/4jz7l периодически может выдать проблемы при любом опрядочивании, ниже sequential consistency. Даже на x86 с его Total Store Order. У меня "BAD" появилось 1 раз на 3 запуска.
576 2313128
>>313127

>упорядочивании


Быстрофикс
577 2313143
>>313061
А он и не против
578 2313226
>>313061
Может лучше маслицем смазать? Арахисовым.
579 2313272
>>313041
спасибо анон, это заработало
580 2313275
Аноны, кто шарит в API реестра винды? Если я хочу, скажем, залогировать создание ключей определенным процессом, хорошей ли идеей будет логировать дескриптор hkey и адрес подключа? Как из этого говна получить нормальный идентификатор только что созданного ключа?
581 2313330
>>313275
Функции RegCreateKeyExAW и RegSetValueExAW принимают дескриптор ветки, и расположение до ключа, и имя значения, если это RegSetValueExAW. Получить строковое представление дескриптора можно через swicth-case.

>хорошей ли идеей будет логировать дескриптор hkey и адрес подключа


Какой адрес ты собрался логгировать?

Все, что тебе нужно есть тут https://docs.microsoft.com/en-us/windows/win32/sysinfo/registry-functions
582 2313403
>>313330

> Какой адрес ты собрался логгировать?


Я про аргумент lpSubKey
Короче говоря, вопрос был в том, можно ли парой hkey-lpSubKey однозначно определить ключ в реестре, чтоб потом читать эти пары из лога и совершать операции (удаления например)
583 2313408
>>313330
Кажется я понял, что если буду использовать не Ex-версию функции, то она будет возвращать мне дескриптор созданного ключа. Если так, то наверное достаточно логировать его
584 2313409
585 2313410
>>313408

>Кажется я понял, что если буду использовать не Ex-версию функции, то она будет возвращать мне дескриптор созданного ключа. Если так, то наверное достаточно логировать его


Я просто надеюсь, что ты знаешь, как работают указатели и дескрипторы...
586 2313794
Есть базовый класс с полем type. Хочу в наследнике написать type =1, но не могу. Что делать?
587 2313804
>>313794
читай про public protected и private наследовании.
588 2315444
Есть курсы для людей с опытом, чтобы можно было относительно быстро пройти шелупонь типо массивов и циклов и перейти к практике чего-то достаточно узкоспециализированного?
589 2315474
>>315444

>курсы


>для людей с опытом


>массивов и циклов


>перейти к практике чего-то достаточно узкоспециализированного


Тут много хуйни пишут, но такую хуйню первый раз вижу.
590 2315528
>>315444
Хуй знает чего ты хочешь
Можешь на Ютубе выступления посмотреть back to basics на тему которая интересует
591 2315568

> Make


> CMake


> Meson


> Ninja


> SCons


> Jam


Что использовать то, ёбана
592 2315570
>>315568

> Make


Для чего-то небольшого, можно.

> CMake


Можно.

> Meson


> Ninja


> SCons


> Jam


Идут нахуй.
593 2315575
>>315568
MSBuild.
шизоид.webm333 Кб, webm,
320x240, 0:04
594 2315578
>>315575
Вот этого не слушай.
595 2315581
>>315570
так говоришь, как будто симейк умеет сам билдить
596 2315582
>>315581
cmake --build
Фактически собирает не симейк, но какая разница, что он там вызывает для сборки.
597 2315592
>>315568
то, с чем у тебя интеграция в IDE. т.е. Симейк или Мсбилд.
598 2315603
Вопрос уровня теоремы сосницкого. Дано задание,сдлеать программу,которая будет форматировать текст. Она должна убирать лишние пробелы ,убирать пробелы перед знаками препинания после слова и ставить пробел после знака препинания. Вот рабочий код одногруппника:
https://0bin.net/paste/lHjkzWLo#j1zFHuowdCdbmAR18N2if2mpkXsN-1UIfix9e6qRKAO
А вот мой:
https://0bin.net/paste/o7bbTRui#a2alHg+OkD2adbl5Q6br6vDKSMxNL9tpQ-8zlY3+1FC

Прикол в том,что у меня почему-то в строку вместо букв записываются '\0' . Почему так? Новый проект создавал,в онлайн компилятор вставлял,везде одно и то же.
599 2315606
В бусте для отправки данных, подключений и тд и тп используются async connect, async write и подобное. Ну я так понимаю, что boost как то внутри себя решает когда данные отправлены, но ответ еще не пришел, что можно пока отправить что-то на другой сокет. Ну ок, а когда операция завершается и управление передается в мою функцию, то что происходит тогда? Каким образом выполнение идет в моей функции? Все кроме async'ов стопится или как?
600 2315607
>>315603

>18 строка


>else if (str = ' ' && sgn) {


Возможно проблема в этом.
601 2315609
>>315606
То есть если у меня есть async_connect1, on_connect->f1(), то же самое с f2, где f1 и f2 долгие функции. Если начнет выполнятся f1, то f2 уже не сможет и будет ждать или как?
602 2315611
>>315603
Ёбаный рот этого Си Плас Плас.
Опять присвоение вместо равенства,которое не обрабатывается как исключение
Спасибо
603 2315612
>>315611

> Опять присвоение вместо равенства,которое не обрабатывается как исключение


А почему оно должно обрабатываться как исключение? Это вполне себе нормальное выражение, которое имеет определённое значение.
604 2315613
>>315611
КАжется, что нельзя строки сишные так сравнивать.
605 2315614
>>315613
То есть можно, но оно работает не так как ты ожидаешь
606 2315615
>>315614
В коде сравнение идет символов, а не строк.
I understand your frustration.jpg100 Кб, 500x500
607 2315627
>>315611
Используй варнинги (ВСЕ), линтеры, clang-tidy, статические анализаторы, динамические анализаторы и всё остальное. Хреново, но щито поделать.
608 2315637
>>315612
Вот как раз хотел спросить,а в чем смысл? Зачем нужно присвоение в условиях и циклах while?
609 2315638
>>315637
Иногда короче писать сразу в for, нежели ниже
610 2315639
>>315637
Ну а если строго, то в языке просто есть expressions, statements и еще вроде что то. В стандарте написано, что на таком то месте в for может стоять такой тип. С точки зрения языка нет разницы там i++ или что то другое. Я так сходу и не приведу пример когда это прям гораздо удобнее
611 2315650
>>315637
это не про возможность присвоение в условиях

просто operator= возвращает какое-то значение, которое в твоём случае можно неявно привести к bool, поэтому ты можешь присваивание написать внутри if, например

про использование этого на практике, в коде на си особенно часто встречается что-то вроде

if ((error = getResource(&out)) != 0)
{
// обработать ошибку
}

ну или так ещё можно
while ((ch = getChar()) != EOF) { }

ещё, если бы оператор присваивания ничего не возвращал, нельзя было бы написать

x = y = z;
это то же самое, что
x = (y = z);
то есть переменным x и y присваивается значение z, потому что равно правоассоциативно
612 2315654
>>315650

>то есть переменным x и y присваивается значение z, потому что равно правоассоциативно


вернее этот код эквивалентен
y = z;
x = y;
проебался
потому что из оператора = возвращается ссылка на то, к чему присваивается какое-то значение ("y = z" вернёт ссылку на y)
613 2315670
Короче такая тема: программа должна уметь соединяться с сервисом через i2p, либо же просто tcp. Я не знаю как лучше разбить программу на файлы. Хотел бы файлик в котором все функции за сеть отвечают. Начал так делать, но столкнулся с проблемой: для i2p нужкн конфиг с настройками, а где этот конфиг хранить не понятно. Как у дедов файлик и перезагружать приложение после каждого изменения чет такое)) А создать глобальный конфиг на всю программу тоже не понятно как. Да и как то странно
614 2315705
>>315670

>для i2p нужкн конфиг с настройками, а где этот конфиг хранить не понятно


Там же где их хранят все нормальные люди, "$HOME/.config/app", "/etc/app", "%APPDATA%/app", "Program FIles/app" и т. д..

>Как у дедов файлик и перезагружать приложение после каждого изменения чет такое))


Зачем перезагружать?
А, как не деды делают?

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


Что такое глобальный конфиг?
615 2315943
С помощью чего правильно выделать, освобождать память?
616 2315944
>>315943
new, delete.
617 2315951
>>315943
vector, make_unique, make_shared
Этого >>315944 не слушай. New и delete нужны теперь только для реализации аллокаторов и умных указателей. Ну или если твой фреймворк принимает сырые указатели и дальше сам ими управляет
618 2316006
>>315606
Бамп
619 2316132
>>315943
пишешь свой custom allocator, все остальное не тру
620 2316135
Дайте пожалуйста ссылку на объяснение действий, при которых вектор копируется, копируется только ссылка, или перемещается, и подводные камни всего этого
621 2316137
>>316135

>Дайте пожалуйста ссылку на объяснение действий


Поисковики под санкциями?
622 2316144
>>316137
Гугл забанили?
623 2316147
Есть проект пизженный с гитхаба. Там в одном файле инклудится другой, находящий вообще в хуй знает какой папке. Я в clang++ прописал --include-directory="...", но нихуя не помогло. Че делать?
624 2316149
>>316147

>Есть проект пизженный с гитхаба.


>Че делать?


Использовать систему сборки, которая там есть, а если нет, то читать ридми.
625 2316155
>>316147
Молиться, что не придётся эти файлы искать и копировать вручную.
626 2316159
>>316144
Хрень гуглится какая-то в основном.
627 2316199
Хелпаните, плез. Я целый день сижу, дрочусь с этим. Мне нужно https://github.com/PurpleI2P/i2pd отсюда использовать пару функций. Если точнее, то из файла SAM.h мосты создать. Там конечно, есть инструкция как собирать, но мне не надо весь проект собирать. Я пытался просто ручками поинклудить и компильнуть из консоли, но оно ругается на функции, которые используются в какой то там библиотеке и хз что делать дальше
628 2316200
>>315444

> шелупонь типо массивов


Статисеское и динамическое выделение памяти под массив - это уже достаточно специализированно?
629 2316203
>>316199
boost прилинкуй к нему и зависимые исходные файлы добавь в сборку.
Легче целиком собрать, чем такой хуйней заниматься.
630 2316205
>>316199
>>316203
И openssl еще.
631 2316207
>>316203
>>316205
А вот как? Я до этого всю жизнь в консоли писал cpp которые нужно компилировать вместе с проектом. Я же не могу руками все файлы из буста в параметры компиляции передать. Максимум папку для поиска инклудов
632 2316208
>>316207
Библиотеки.
633 2316211
>>316208
Я собрать сначала cmake'ом ту либу, а потом o файлы нужные передать компилятору? Ты же об этом или нет?
634 2316214
>>316211
.so, .a, .dll, .lib - библиотеки.
https://ru.wikipedia.org/wiki/Библиотека_(программирование)

Ты собрался работать с криптографией и сетью, но даже не знаешь, что такое библиотеки? Может быть стоит бросить эту идею?
635 2316216
>>316214
Спасибо

> Ты собрался работать с криптографией и сетью, но даже не знаешь, что такое библиотеки? Может быть стоит бросить эту идею?


Нет. Я просто до этого использовал vcpkg либо header-only библиотеки
636 2316222
Функция возвращает unsigned char. Безопасно ли привести тип к (char) и использовать этот указатель на строку?
637 2316223
>>316222
Правильно, а нахуя мне читать шапку.
Функция возвращает unsigned char⚹. Безопасно ли привести тип к (char⚹) и использовать этот указатель на строку?
638 2316224
>>316222
Если заканчивается нулем, то да.
639 2316278
>>316214
Тогда еще вопрос. Это ебнуться можно ручками все это устанавливать, прописывать. Нет ли пакетного менеджера, чтобы я прописал install boost/openssl и у меня все работало?
640 2316286
>>316278

>Нет ли пакетного менеджера, чтобы я прописал install boost/openssl и у меня все работало?


Под окнами вроде нет, под линуксом любой дистр и из репов dev (если они есть, иначе обычные) версии тянешь.
641 2316299
>>316286

> Под окнами вроде нет


Есть. Ебанулись бы погромисты сами разыскивать зависимости, и ещё более ебанулись бы их искать обычные рядовые пользователи.
Есть различные пакетные менеджеры, например, vcpkg, conan и т.д.
изображение.png58 Кб, 1002x476
642 2316300
Зачем оно мне предлагает что то с бустом делать, если sudo apt-get boost должно было мне все подвезти?
643 2316302
Всё, похуй, собрал. УРААА
644 2316304
>>316302
Правда моя прога с пустым main'ом весит 1.6 мб, ну да похуй
645 2316306
>>316304
Судя по скрину, линковка статическая. Ну это если ты по нему собирал.
646 2316307
>>316304

>пустым main'ом весит 1.6 мб


Не должна, поиграйся с флагами компиляции\линковки.
647 2316309
>>316306
>>316307
Я просто собрал https://i2pd.readthedocs.io/en/latest/devs/building/unix/ по этой хуйне, нашел client.so, а затем свою прогу уже с ней собрал. Но там не только main компилировался. Еще какие то cppшники, которые тоже используют client.so, но в main`не ничего не вызывается
648 2316336
Начал я разбираться с i2pd. Надеюсь я все правильно понял. Так вот
sambridgecreatesession() возвращает мне SamSession, у которого UDPEndpoint. Это что еще такое? Почему вдруг udp, а не tcp?
649 2316337
>>315705
Спасибо, понял
650 2316338
>>316336
У меня просто все ломается. Я хотел подключиться к i2p устройству, получить tcp socket и дальше работать с ним как с обычным, а тут хуйня какая то
Снимок экрана-20220314120858-1119x71.png11 Кб, 1119x71
651 2316520
Как конвертировать std::future<bool> в обычный bool?
652 2316523
>>316520
А, разобрался. res.get() == true
653 2316530
>>316523

>res.get() == true


if (condition == true) -> if (condition), зачем ты добавляешь " == true"?
654 2316663
>>316530
if (x == true) { ... }
else if (x == false) { ... }
else { ... }
655 2316742
Есть ли какие-нибуудь либы на плюсах аналогичны этой https://github.com/gammazero/workerpool ?
657 2316753
>>316749
И как там выбрать? Мне бы что-нибудь простое в использовании, но чтобы можно было запускать хотя бы 1к одновременных тасков.
658 2316824
Бля, ну неужели нет ничего подобного для ньюфагов сипэпэ?
659 2316947
Ебать у меня код хуйня. Короче такое дело: у меня есть бустовый tcp сервер, а есть еще https://notabug.org/acetone/i2pSAM-Qt. У них и обертки над потоками разные, ваще пиздец. Я хз будет ли оно все вместе работать или нет
660 2316955
Привет ребята,я уже писала сюда,всем спасибо за помощь,но у меня новая проблемка с лабой. Вот условие:

Вам даны три неизвестных числа, обозначенных aaa, bbb, ccc, а также все попарные сравнения этих чисел друг с другом. Напишите программу, которая выведет эти числа в порядке возрастания (неубывания).

Формат входных данных

Вводятся три строки. В первой записан результат сравнения между собой чисел aaa и bbb. Во второй строке — результат сравнения aaa и ccc. В третьей строке — результат сравнения bbb и ccc. Результат сравнения выражается соответствующим знаком — символом "«<", "»>" или "===".

Формат выходных данных

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

Я не понимаю как решить без огромного дерева ифов,буду благодарна за любую подсказку
661 2317062
>>316955

> Я не понимаю как решить без огромного дерева ифов,буду благодарна за любую подсказку


Сколько в дереве листьев будет?
662 2317108
Аноны, покормите с ложечки: с чем стоит ознакомиться перед изучением C++ SICP из F.A.Q. треда?? Хочу вкатиться. Опыта 0.
663 2317114
>>317108
Иначе говоря, где roadmap'ы эти ваши взять?
664 2317153
>>317108
Не вкатывайся лучше в C++.
665 2317161
>>317108
Ознакомиться с зарплатами и рынком труда. Понять что ты на C++ делать собрался.
666 2317192
Я хотел скомпилить через qt класс, чтобы затем его использовать в другой программе. Класс описал в h, в cpp фунции реализовал, собрал в qt creator, получил so файл. Затем в своей проге подключил инклуд, so файл, но при компиляции ошибка
/usr/bin/ld: /tmp/main-92fde9.o: undefined reference to symbol 'qt_version_tag@@Qt_5.15'
/usr/bin/ld: /home/.../Qt/5.15.2/gcc_64/lib/libQt5Core.so.5: error adding symbols: DSO missing from command line

Попытался прописать DEFINES += QT_NO_VERSION_TAGGING, но не помолго
667 2317199
>>317192
Попробуй зависимости от Qt прилинковать.
668 2317214
>>317199
Да, забыл qtcore, спасибо
669 2317217
>>316955
https://0bin.net/paste/EhNZyicJ#rvo91OXdaTkwlDF0QcxjYlYJ3S1AWcVIMc5vVtfIh-A

Примерный алгоритм, но на Си ебал рот на крестах писать, насчет

>Если возможных вариантов ответа несколько, выведите их все в лексикографическом порядке (порядок, использующийся для сравнения строк в словаре).


нихуя не понятно, если

>должно быть не меньше предыдущего



Не тестировал, могут быть баги, а может вообще работает не правильно.
670 2317232
>>317214
Прог скомпилиась, но при запуске
/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.15' not found , хотя сам файл лежит там
671 2317241
>>317232
Разные версии, программа не может найти библиотеку или еще что-то, попробуй собрать с -Wl,-rpath,path-to-lib, где path-to-lib - это путь до директории с библиотеками, с которыми ты собираешь, возможно проблема в том, что версия Qt установленная в системе и версия Qt, которую ты использовал для сборки не совместимы.
672 2317266
>>317241
Wl компилятор не понимает
673 2317268
>>317266
Тогда сделай так.
https://forum.qt.io/topic/120129/usr-lib-x86_64-linux-gnu-libqt5core-so-5-version-qt_5-15-not-found
Научись гуглить ошибки.
изображение.png108 Кб, 918x753
674 2317283
>>317241
Не сработало то что ты кинул. Я это находид. Кажется, что версии разные
675 2317322
>>317283
Уже лучше. Прога вроде начинает работать, а потом валится с undefined symbol: _ZdlPvm, version Qt_5
676 2317337
>>317322
Правда теперь у меня нет идей в чем проблема, кроме как проверить, что компиляторы совпадают
677 2317339
>>317337

>кроме как проверить, что компиляторы совпадают


Проверь.
678 2317349
>>317339
Проврил, поменял. Теперь ошибка выскакивает раньше
679 2317355
>>317349
А они должны совпадать с Qt/5.12.12/gcc_64? Или достаточно чтобы qt и я собирали одним и тем же?
680 2317357
>>317355
Проверь флаги компиляции, возможно в них какие-то конфликты происходят, например, в библиотеке один функционал имеется, которого нет в компилируемом с ней проекте, или наоборот.

qt5-base, qt-default и их -dev версии поставил из репозитория?

Как вообще на производных дебиана можно заниматься разработкой чего-либо?
16459595670830.jpg46 Кб, 604x516
681 2317379
>>317153
Но к другим языкам так не тянет почему-то
>>317161

>Ознакомиться с зарплатами и рынком труда.


Я на хедхантере находил вакансии джуном без опыта за 20-40т. Ну и сениор 3 года опыта за 200к. Наверное, в вебе вакансий больше и вкуснее, но там и конкуренции больше ведь, да и не так интересно.

>Понять что ты на C++ делать собрался.


Игоры же, анимации в игровых движках пилить, приложухи для ведроидов клепать.

Исправь, что не так
682 2317403
>>317379

>Но к другим языкам так не тянет почему-то


C++ - худший язык, на уровне жабы, что тебя в нем тянет, камень на шее?
683 2317409
>>316955
По условию у тебя есть результат сравнения каждого вводимого элемента с каждым. Соответственно можно для каждого получить ранг - количество элементов меньше его. Допустим вводится: a > b (ранг а = 0 + 1, ранг b = 0), b > c (ранг b = 0 + 1, c = 0), a > c (ранг a = 1 + 1, c = 0). Далее сортируешь элементы по возрастанию ранга и лексикографически, если ранги совпадают.

Решение предполагает, что порядок действительно существует и нет ситуации, типа a = b, b > c, c = a.
684 2317412
>>317379
Андроид это в основном Kotlin или Java. Мобильного софта с большими нагрузками не так много, где бы вот прям надо было на C++ пилить.

Игры да, пока что на C++, но немалая часть это Unity + C# или Unreal с блюпринтами или биндами к другим языкам.

200к в современных реалиях это <2k USD, а 20к это что-то уровня пенсии.
685 2317422
>>317403
Ты еблан?
686 2317423
>>317379

>Ты еблан?


Что в C++ есть хорошего?
687 2317426
>>317423
Отвечай на вопрос, сука.
688 2317427
>>317426

>Отвечай на вопрос, сука.


>>317423

>Что в C++ есть хорошего?

689 2317430
>>317427
Слит.
g2jj462m8ws21.jpg118 Кб, 1080x737
690 2317436
>>317423
>>317403

Но.. пук.... Не может же язык быть таким говном, зачем вы сидите в треде про плюсы? Или вы всех вкатунов так отговариваете?

>>317412
Про unreal и блюпринты тоже думал. Хули делать-то? Смотреть в сторону жабаскрипт, пихтон, C#? Что из этого имеет шансы на выживание? только не 1С
691 2317439
>>317436
В крестах самое большое сборище токсичных пидорасов, ненавидящих друг друга и всех остальных.
Всем индивидуальный подход нужен при вкате. Читай/смотри все материалы для начинающих подряд, пока не найдёшь такой, который понятен именно тебе.
https://github.com/sosachbot/cppthreadhat#для-нюфань
DX7Gg4UtPok.jpg110 Кб, 807x746
692 2317446
>>317439

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


Почему именно в крестах? Как так сложилось?
>>317439

>смотри все материалы


Так-то hello world по учебнику Праты я уже написал, но есть ощущение, будто нужно было какое-то введение в кодинг прочитать, я про это и спросил тред, а аноны так и накинулись
693 2317448
>>317446

>Почему именно в крестах? Как так сложилось?


Какой язык, такое и комьюнити.
694 2317450
>>317446
Нет таких введений в кодинг, сразу практику нарабатывай.
695 2317454
>>317446

>Так-то hello world по учебнику Праты я уже написал, но есть ощущение, будто нужно было какое-то введение в кодинг прочитать, я про это и спросил тред, а аноны так и накинулись


C++ слишком огромный, чтобы его изучать по-методичке, в любом случае, на любом этапе своих знаний, ты столкнешься с тем, что задача требует большего, потому что язык говно, в которое пытаются засунуть всё и все, потому что понять логику чужого кода, на C++ невозможно, ты можешь знать все о программировании, но всегда найдется долбоеб, который придумал новый вариант решения примитивной задачи, в котором еще и какой-нибудь новый стандарт используется "для упрощения кода". Что такое программирование лучше начинать с другого языка, более примитивного и ясного для человека, а не имя_библиотеки::основные_функции::расширение::дополнения::пошел_нахуй().
696 2317457
>>317454

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


Получить разжижение мозга, привыкнуть, что все задачи решаются а одну волшебную строчку, и при первых реальных сложностях слиться.
697 2317458
>>317457

> первых реальных сложностях слиться


Сложности созданные языком, вся суть C++-кодеров.
77179f2bc973913a0973c18b3a218cb7.jpg38 Кб, 498x573
698 2317463
>>317454

>язык говно


В чем это проявляется, помимо менеджмента памяти?

>понять логику чужого кода, на C++ невозможно


Из-за того, что язык дает большую свободу? Действительно с этим все настолько плохо? Часто встречал такое по своему опыту, анон?

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


Как я понял, начинать советуют везде с C, т.к. он более приближен к аппаратной части, почему бы тогда сразу не начать с плюсов? Если не С, какие еще варианты есть?
699 2317473
>>317463

>В чем это проявляется, помимо менеджмента памяти?


Это не проблема, проблема в том, что из языка делают псевдо-универсальный инструмент типа Си, но с кучей не самых удобных для использования оберток, реализаций, конструкций.
Если кратко и более ясно, то стандарт C++, развивают по принципу, люди используют что-то из сторонних библиотек (или пишут что-то свое), а значит нам нужно добавить эту функциональность в стандартную библиотеку, вместо того, чтобы добавить удобный пакетный менеджер для языка, а от языка оставить только удобное представление логики и основных реализаций. В итоге, получается монолитное чудовище, которое невозможно знать всё и постоянно необходимо смотреть документацию для стандарта.

>Из-за того, что язык дает большую свободу? Действительно с этим все настолько плохо? Часто встречал такое по своему опыту, анон?


Посмотри на Go и на C++, на Go, можно просто и понятно выразить то, что программист хотел сделать.
2 разных языка, с разными задачами, но учитывая, что C++ позиционирует себя, как универсальный системный язык, это сравнение имеет место.

>Как я понял, начинать советуют везде с C, т.к. он более приближен к аппаратной части, почему бы тогда сразу не начать с плюсов? Если не С, какие еще варианты есть?


Go, но после него, ты не захочешь писать на C++. C и C++ не имеют никакой связи, у C++ есть небольшая обратная совместимость, но не более. Программирование на C, дает тебе понимание, как работает система и код, который ты пишешь, внутри.
700 2317492
>>317473

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


Например? Вроде же наоборот плюсы идут в сторону упрощения жизни: концепты вместо сфинае, constexpr вместо метапрограмм, PMR вместо C++11 аллокаторов.
701 2317497
>>317492

>Вроде же наоборот плюсы идут в сторону упрощения жизни: концепты вместо сфинае, constexpr вместо метапрограмм, PMR вместо C++11 аллокаторов.


Даже в твоем уточнении видно, что C++ слишком перегруженный и выглядит, как вечный тестовый язык, в который добавляют что-то, если не нравится удаляют, но удаление заключается в создании новой версии.
Такой пример подойдет?
702 2317507
>>317492
Так оно не вместо, а вместе.
c-array и std::array, union и std::variant, enum и class enum, struct и class, typedef и using, pragma once и ifdef, c-cast и std::cast<>, printf и iostream, FILE и fstream.
Сюда ещё добавляем бесконечно плодящиеся since CXX, until CXX. Если бы они крупными патчами накатывали как c++-98 --> c++2011, то было бы норм. Но когда у тебя каждый год синтаксис лямбд меняется то ты сидишь и реально не вдупляешь как писать надо, а как не надо.
703 2317514
>>317507

> c-array и std::array


Всегда юзать std::array, потому что он не норовит декеиться к указателю, у него есть удобные методы и он буквально всем лучше, кроме того, что шаблонный параметр размера компилятором не выводится никак при определении массива?

> union и std::variant


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

Единственное тут ещё неоднозначный сильно момент с деструктором variant, его по-разному можно реализовать. https://youtu.be/va9I2qivBOA Да и сам variant от одной реализации к другой по производительности разнится вроде бы

Про синтаксис лямбд, не знаю... Ну там вроде сделали, что можно пустые круглые скобки скипать, раскрывать пачку параметров внутри [], юзать шаблонные параметры вместо auto... Но тут вроде же нет breaking changes никаких, просто добавили удобств

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

Не знаю короче, я с плюсами не особо давно познакомился, но не вижу ничего плохого, что тут много всякого есть. Тебя не заставляют это всё использовать, можно хоть в стиле си писать, наоборот, тупо по-минимуму притрагиваться к плюсовым фичам.
704 2317537
>>317514
Ну так типичный проект состоит из мешанины вот этого всего. И "можно не знать" обычно не прокатывает. С кодом на С линковаться надо, дорабатывать написанный код надо, последний стандарт принесут пориджи, ибо другого они просто не знают. Крупные конторы пытаются с этим бороться, составляя целые документы что можно, а что нельзя.

И параллельно более грамотный подход в питоне. Отдельно версия 2 и отдельно версия 3.

>Про синтаксис лямбд


Ломается совместимость с предыдущей версией компилятора. Раз в два года. А нормальный с++ проект пишется года 4, не менее.
705 2317548
>>317473
C++ позиционирует себя как системный язык. А Go - с гц.
В C++ мешанина всякого, то что неудобно - добавляют в стд.
А в Go - комплексные часть стд тк нет перегрузки операторов. (в спп тоже правда..)
Си даёт полный контроль и понимание как работает система. А асм даёт ещё больше контроля и понимания.

>>317492
И нет тут перегруженности. Метапрограмма не часть языка, sfinae тоже выходит само из шаблонов. Аллокаторы как полиморфные и нет - все же там, где нужен контроль, приходится иметь больше инструментов, друг другу они не мешают.

Конечно плюсы древние и долго вбирали в себя всякое, но вбирали не тк людям делать нехуй и это "тестовый язык", а потому что людям надо и используется в реальном коде. Не надо говорить что они хуже кастрированных Го и Си.
706 2317657
>>317548
>>317548

>C++ позиционирует себя как системный язык.


В системном языке, не нужно ООП.

>Си даёт полный контроль и понимание как работает система.


Задача Си - переносимая запись и чтение памяти, контроля над системой нет, даже системные вызовы в нем, реализованы через асм вставки.

>И нет тут перегруженности.


Есть.

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


Для контроля они не нужны. Мешают.

>Конечно плюсы древние и долго вбирали в себя всякое


Си древнее, но его стандарт гораздо меньше, при этом реализовать на нем можно все тоже самое.

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


Что надо людям, реализуется с помощью самих людей, а не бесконечным расширением стандарта.
707 2317736
>>317657

>В системном языке, не нужно ООП.



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


>Для контроля они не нужны. Мешают.



Мне не нужно - значит никому не нужно.
708 2317788
>>315568

> CMake


this

ну для какого то своего проектика без зависимостей можешь что угодно использовать
709 2317790
>>315568
build2 конечно же!
710 2317881
>>317657
У тебя с запятыми беда. Уже не первый пост такой
711 2317932
У меня либа использует сервер который написан на qt. И у него нет всяких функций типо wait new connection. Там просто слот, который при соединении вызывается. Какой есть хороший способ заставить эту всю хуйню ждать соединений без while(true). Только самому писать convar'ы с циклом?
712 2317981
>>317736

>Мне не нужно - значит никому не нужно.


Назови действительные причины, зачем это, а не навязанные языком или твоими личными проблемами.
изображение.png275 Кб, 1471x646
713 2317990
Книга страуструпа 2014 года не слишком старая? в 2022 ее еще можно читать?
Везде читаю как все носятся с переходом с 98 на 11 стандарт, я так понимаю с того времени каки-то охуеть измнений не было и если я почитаю того же страуструпа за 14 год, то потеряю не очень много?

И почему он с того времени больше ничего не написал?
714 2317993
>>317932

>Там просто слот, который при соединении вызывается.


Это.
715 2317995
>>317993
Там другое. Я еблан просто, не так понял. У меня прога сразу завершалась, надо было run на треде вызвать, а я не мог найти этот run
716 2318043
>>317446

>Почему именно в крестах? Как так сложилось?


мало работы потому что
высокая конкуренция
ты либо пишешь ядро ос в майкрософт за 300ккккк в секунду либо отдыхаешь на помоечке
нет средних вакансий
717 2318065
>>317990

>И почему он с того времени больше ничего не написал?


написал, смотри внимательнее
718 2318291
>>318065
И правда, видимо я на амазоне что-то не так тыкнул, хотя вроде по году публикации смотрел его книги.

Так а что по вопросу? Стоит читать книгу из моего поста как первую или A Tour of C++ лучше?
719 2318308
>>315568
Скорее всего придется использовать всё, включая кастомные сборщики на баше и автомейки, добро пожаловать в кресты.
720 2318332
Хочу передать в функцию хендлер. Для этого хочу использовать лямбду. Можно ли как то определить функцию так, что лямбда которая будет одним из ее аргументов, должна обязательно иметь нужные мне параметры
721 2318335
>>318332
Можно.
722 2318338
>>318335
Как? Я видел везде только шаблоны без спецификации параметров
723 2318341
>>318332
std::function
724 2318346
>>318341
Оно жирное. Лямбда быстрая и маленькая, а std function большой и скорее всего медленный в сравнении с лямбдой
726 2318350
>>318347
Так только для stateless лямбд можно
727 2318351
>>318347
Мне захватывать нужно. Так бы я на указателях все сделал (как и ты)
728 2318359
>>318346
Sfinae с enable_if и callable. Или концепты
729 2318361
>>318346

> большой


шта

> скорее всего


я чтоли проверять должен?
изображение.png26 Кб, 634x129
730 2318367
>>318361

> шта


Учитывая это быстродействие я уже проверять не стал
731 2318372
>>318367
Какой тип имеет х и почему он 1?
732 2318373
>>318372
Он имеет типо написанной справа лямбды. Погугли почему он 1
.png210 Кб, 758x2060
733 2318540
>>318373

> Why does a lambda have a size of 1 byte?


Ебать, целая статья. Больше графоманили только про std::launder и inline variables.
734 2318706
>>318540
Почему до сих пор люди стартуют проекты на этом. Я думал С++ это легаси только. Что их к этому подталкивает?
735 2318719
>>318706
А почему нет? Имхо, плюсы зачастую очень удобен, когда хочется получить больше контроля за программой. В другом языке вероятнее всего вместо красивой и аккуратной лямбды будет хуйня с оверхедом в 64 байта на функцию. Или как в питоне, где объекты имеет размет не суммы состовляющих как в c(за исключением паддинга), а какой то неебический
736 2318723
>>318719
Да, сори, чушь написал.. ошибся подумав что там сказано о возможности переопределять лямбду с получением ub.
737 2318939
>>318706

>Почему до сих пор люди стартуют проекты на этом.


Кресты говно, но альтернатив нет.
738 2318976
>>318939

> Кресты говно


Почему?
мимокрокодил
739 2318980
>>318976
Посмотри тред. C++кодеры кроме "этанужна" никаких аргументов не имеют. Получается язык говно.
740 2319002
>>318939
Альтернатив нету только в каком-нибудь кернеле и в диком хайлоаде\реалтайме, где ты сидишь с профайлером и считаешь миссы кэша.

Во всех остальных случаях С++ нахуй не сдался. Мы все хотим вообще весь наш код, кроме драйвера перевезти на С# или Go, но увы, пока нету капасити в команде
741 2319008
>>319002

>Альтернатив нету только в каком-нибудь кернеле и в диком хайлоаде\реалтайме, где ты сидишь с профайлером и считаешь миссы кэша.


В таких задачах, как раз есть альтернативы, но плюсам там делать нечего.

>Мы все хотим вообще весь наш код, кроме драйвера перевезти на С# или Go


Голанг не может в десктопы, у шарпа с переносимостью хуево.
742 2319031
Теперь представь что все программы запущенные сейчас у тебя, какой нибудь браузер, файловый менеджер, читалка книг, еще какая нибудь хуйня внезапно станут написаны на каком нибудь питоне
743 2319033
>>319031
Это кому?
744 2319035
745 2319044
>>319031
Электрон приветы передает.

А вообще - в нашем конкретном случае с этим проблем не будет, специфика софта.
746 2319087
>>319031
похуй. абсолютно.
я твою мамку кстати ебал своим питоном
image.png57 Кб, 1407x751
747 2319116
https://godbolt.org/z/7MKzznxEE
У меня есть пикрил код, он работает в годболте, но когда пробую скомпилить локально у меня выдаёт код ошибки -1073741571 (винда, судя по ответам в интернете стак оверфлоу), я не понимаю, вроде mingw gcc 11.2 компилятором компилю тоже -O2, но стек переполняется, почему бля.. Как понять что не так без залезания в асемблер я слишком тупенький для этого
748 2319121
>>319116
А под линуксом (wsl) всё норм работает... Блять ладно в пизду, походу нельзя на хвостовую рекурсию в плюсах полагаться
749 2319129
>>319121

>нельзя на хвостовую рекурсию в плюсах полагаться


Да.
750 2319133
>>319008

>Голанг не может в десктопы, у шарпа с переносимостью хуево.


Так может у них вообще десктопа нет? Тогда зачем им С++, когда можно на говноланг или шарп все переписать? Писать код на шарпе в разы проще и приятнее, чем на плюсах.
751 2319136
>>319116
Интересно, с какого языка пикрел перешел
752 2319164
С линукса для винды только mingw что ли компилит?
753 2319219
>>319164
Шланг еще. А если у тебя СИМЕЙК и код без корявой хуйни - то и студия компилять будет
754 2319224
>>319219
А чому так? Я думал почти все компиляторы по умолчанию умеюи в разные ос
755 2319227
>>319219
А может и не будет, если там Посекс.
756 2319230
>>319224
Сборка проекта это сценарий, записанный в специальные файлы. В Linux есть свой собственный формат Makefile и утилита make, которая эти файлы исполняет. То есть она в процессе выполнения вызывает компилятор, линковщик и системные утилиты Linux (всё вместе - tool chain). В Windows нет ни make ни этих утилит, поэтому нужно ставить mingw или cygwin, чтобы они появились.
Это работает и в обратную сторону - студийный проект .vcxproj это такой же Makefile, но написанный в терминах windows и в формате XML (а ещё есть формат для студийного nmake).
Так как это полная ебанина, то дополнительно придумали CMake, который использует промежуточный формат сценариев - CMakeLists. Он конвертируется самой утилитой в Makefile или vcxproj и потом уже собирается tool chain'ом, который есть в OS.
757 2319231
>>319230
Так не, я немного о другом. Пусть у меня есть просто файлы без зависимостей всяких. И вот как я понял я не могу будучи на линуксе получить на выходе exe, если не использую то что написал выше.
758 2319232
>>319231
Не, ты можешь собрать, если напишешь makefile или через консольку последовательно команды введёшь. Проблема будет, если в коде есть вызовы системного API (WinApi или POSIX).
759 2319233
>>319232
Я чет не нагуглил как с gcc под винду скомпилить. Да, имею ввиду случай, когда я ручками указываю все cpp и получаю исполняемый файл без всяких cmake и прочего. И в случае, когда я явно не использую api специфичное
760 2319236
>>319231
А, я понял, ты хочешь под лялексом сделать exe и потом его запускать на win. Тогда тебе нужен не штатный gcc из linux, а кросс-компилятор (придётся поставить на линукс mingw-w64 и использовать компилятор из него).
761 2319239
>>319236
Ну так я спрашиваю почему компиляторы по дефолту не умеют в разные ос
762 2319257
>>319239
Зачем тащить оверхед для разных ос? Почему именно ос есть же другие архитектуры, почему для них не надо тащить? Будет компилятор размером 20гб удобно.
763 2319258
>>319133

>Так может у них вообще десктопа нет?


Тогда кресты были ошибкой изначальной.
764 2319352
>>319239
В итоге получится компилятор огромных размеров. А ещё есть проблемы с лицензиями, интеллектуальной собственностью и банально конкуренцией. Microsoft и Apple не хотят раскрывать свои исходники и делают только под себя.
765 2319353
>>319352

>Microsoft и Apple не хотят раскрывать свои исходники и делают только под себя.


???
766 2319366
>>319353
Чё сказать то хотел?
767 2319368
>>319366
К чему это?
768 2319378
>>319368
К теме про 100500 компиляторов от разных вендоров и под разные платформы.
769 2319470
>>318291
бамп
770 2319505
Почему разработчики стандарта за 20 лет не смогли выпустить нормальную библиотеку форматированного вывода?
771 2319507
>>318291

> A Tour of C++ лучше


Лучше. Старый пидорас таки умеет не лить воду и писать кратко.
772 2319508
>>319505
Что подразумевается под форматированным вводом/выводом?
773 2319509
>>319508
print("foo: {}, bar: {}, baz: {}", a, b, c)
774 2319510
>>319509
Напиши ручками
775 2319511
>>319510
Ты вопрос изначальный прочитай.
776 2319512
>>319511
Нахуя это пилить? Имхо, польза сомнительная
777 2319513
>>319512
Так почему оно во всех других языках есть?
C#, Java, Rust, Go, в остальных просто лень проверять.
778 2319515
>>319509
Зачем использовать printf-like функции в C++, когда есть поточный вывод?
779 2319516
>>319515
Потому поточный вывод неудобный? Что легче: написать форматную строку, а после неё просто расставить все объекты, или ебаться с переключением состояний обоссаного cout'а?
780 2319517
>>319516
Какие ты состояния переключать собрался?
781 2319518
>>319516

>Потому поточный вывод неудобный?


Да.

>Что легче: написать форматную строку, а после неё просто расставить все объекты


Используй printf, в чем проблема?
782 2319519
>>319518

> в чем проблема


В том, что я не могу имплементировать вывод произвольного объекта.

> Какие ты состояния переключать собрался


Всякие hex, oct, dec, fill, setw, не ебу как это называется, но суть понятна.
783 2319520
784 2319524
>>319519

>В том, что я не могу имплементировать вывод произвольного объекта.


Клэнговский парсер + обработка перед компиляцией.
785 2319525
>>319524
Хуенговский. Готовые решения есть, почему долбоёбы их в стандарт до сих пор не завезли?
786 2319530
>>319525
Бесконечное расширение стандарта, снова. Просто используй другой язык или используй нестандартные расширения.
787 2319533
>>319530

> Бесконечное расширение стандарта, снова.


Крестам слишком поздно сходить с этого пути. Им остаётся только идти по нему дальше.
788 2319534
Чтобы любой язык, какой бы у него ни был синтаксис, являлся подмножеством крестов.
789 2319543
>>319507
А в шапке именно первую для новичка советуют. Прошло правда 5 лет уже судя по надписи в начале фака, но на тот момент вроде уже тур был написан. Я думаю его бы там упомянули наверное будь он лучше.

Короче что читать если я хочу знать с++, опыта почти нет, немного на пайтоне писал, но ничего серьезного, просто хуйню типа разложения числа на простые множители и немного пайгейм ковырял. Есть небольшое представления о классах, объектах, функциях и подобном
790 2319551
>>319543

>я хочу знать с++


Зачем?
791 2319554
>>319551
Просто есть такое желание, вообще я админ, но хочется просто для себя немного си++ поучить
792 2319563
>>319554
питон поучи, епт. Прекрасный язык для админа, решает 100% всех задач в этой области.
Будешь знать питухон, попрогай на чем-нибудь комплируемом вроде C#, Java, Kotlin, Scala (рекомендую скалу из-за прикосновения к fp)
Потом попрогай на чем-то лоулевел с gc вроде раста или go
Потом помацай сишку
А вот теперь, если тебе вдруг захочется посидеть в мейнстримных проектах, завязанных на производительность, то вкатывайся и страдай в плюсы. Есть даже маленькая вероятность, что через 10 лет он будет представлять из себя нечто вменяемое на уровне языков нового поколения, которые появились на почве боли и страдания из-за C++

мимо-сеньер-помидор-с-широким-кругозором
793 2319569
>>319563

> решает 100% всех задач в этой области


Я как раз в другую область хотел заглянуть. В серьезный язык, в разработку софта, даже выбрал программу опенсорс, которой пользуюсь часто и которая на с++, чтобы попозже копаться в ней

> питон поучи


> попрогай на чем-нибудь комплируемом вроде C#, Java, Kotlin, Scala


> Потом попрогай на чем-то лоулевел с gc вроде раста или go


> Потом помацай сишку


Какой-то до охуения долгий путь, я думал как раз после плюсов если будет желания учить что-то другое, тем более говорят в плюсах всё есть, все парадигмы, и вся прочая хуйня, поэтому в другие языки будет легко переходить потом если знаешь с++
794 2319572
>>319569

>тем более говорят в плюсах всё есть, все парадигмы


лолнет. Там есть формально есть разные парадигмы, но они в урезанном виде. Возьмем, к примеру, haskell и c++. И там, и там есть функциональная парадигма, но есть нюанс. Кроме того решает еще качество реализации парадигмы и выставленные акценты. К примеру, асинхронное программирование в плюсах неплохое, а вот iostreams - параша ебаная. Причем даже если дизайн и тулинг неплохой в плюсах, это не означает, что нет такого же хорошего, но немного другого или что нет еще лучше. Чем больше пробуешь разного, тем лучше видишь ущербность и отсталость плюсов. Впрочем, в других языках тоже видишь ущербность. А также более толерантно начинаешь относиться к недостаткам, т.к. становится похуй на очередную N+1 реализацию одних и тех же принципов
795 2319573
>>319572

>если дизайн и тулинг неплохой в плюсах


если дизайн и тулинг отдельных моментов языка неплохой в плюсах
796 2319597
Привет, аноны. Вопрос про MySQL + C++ через X DevAPI
Я хочу написать функцию select для всех таблиц в бд и не использовать литералы в названии полей, но проблему с датой и переводом ее UnixTimeStamp решают через select с "UNIX_TIMESTAMP(имя поля)", что опять приводит к необходимости вбивать ебучие названия полей в код. Как можно решить эту проблему без литералов и как-то перекодировать то, что хранится в дате, в UnixTimeStamp?
797 2319598
>>319597
Не использовать литералы для перечисления названий полей при написании select'а, то есть
798 2319646
>>319563
У раста нет gc, не сравнивай его пожалуйста с GO. То что они одновременно на слуху не делает их под один класс задач.
799 2319681
>>319563

> лоулевел с gc


Лик вообразили?
800 2319685
>>319569

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


Куча оперсорса написано на Си, питоне и тд. Зачем нагружать голову крестами?

>поэтому в другие языки будет легко переходить потом если знаешь с++


Да. Потому что понимаешь сколько в C++ говна и радуешься, что в других языках от этого уходят или ушли.
801 2319742
>>319685
Охуеть как плюсы говнят. Почему тогда на них столько всего пишут?
802 2319747
>>319742
Потому что говноеды.
803 2319749
сохраняйте спокойствие это шпион из растотреда
804 2319795
>>319569

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


Так учить С++ еще дольше чем этот путь. И ты его не сможешь выучить, если только у тебя нет дара от природы хранить миллиард устаревших фактов.
805 2319960
Ребятки, с понедельника буду учиться в яндекс практикуме. С трудом осилил базовые понятия Си++, это 18 часов, а впереди 250 часов чего-то как я понимаю невообразимо сложного, я боюс.
806 2319962
>>319685

> Куча оперсорса написано на Си


> Зачем нагружать голову крестами?


Может потому что в крестах есть много улучшений Си, и ты в принципе можешь писать в процедурном стиле, но это будет намного приятнее?
807 2319972
>>319685

>Куча оперсорса написано на Си, питоне и тд. Зачем нагружать голову крестами?


Есть ровно 3 (три) валидных причины писать на C в 2022 году.
1. FFI\extern "C" интерфейсы для других языков
2. Под твой некроконтроллер нет C++ компилятора.
3. Адовое сишное легаси, которое перевезти на С++ маловозможно (бизнес причины как минимум)

Всё, других причин писать на C в 2022 году нету.
808 2319975
>>319962

>потому что в крестах есть много улучшений Си,


Какие?

>и ты в принципе можешь писать в процедурном стиле


Проблема не в стиле, а в том какой пиздец из себя представляют кресты.

>но это будет намного приятнее?


Нет.
809 2319977
>>319975

> Какие?


Из того, что в голову приходит сразу:
1. auto
2. Ссылки вместо б-гомерзких указателей (при передаче в фунцкию имеется в виду)
3. Исключения вместо передачи флажков через 10 циклов
4. Дженерики
5. Нормальные, по сравнению с C, строки
810 2319979
>>319975

>Какие?


Самое простое RAII без очищения ресурсов на каждый чих уже настолько улучшает код и избавляет от утечек, по сравнению с чистым С, что этого одного достаточно
811 2319980
>>319977

>1. auto


void *

>2. Ссылки вместо б-гомерзких указателей (при передаче в фунцкию имеется в виду)


Не ясно, что ты передаешь в функцию.

>3. Исключения вместо передачи флажков через 10 циклов


Отключены.

>4. Дженерики


_Generic

>5. Нормальные, по сравнению с C, строки


Обертка над сишными строками.
812 2319985
>>319980

> void *


> _Generic


Я тебя понял.

> Не ясно, что ты передаешь в функцию.


Ссылку на объект передаю в функцию.

> Обертка над сишными строками.


И? Эта обёртка даст столько удобства, сколько ни один программист на Си в жизни не видел.
813 2319992
>>319985

>Ссылку на объект передаю в функцию.


В чем преимущество перед указателем, кроме экономии 1 символа? Почему все объекты обладающие размером больше размера указателя не преобразуются в ссылки\указатели автоматически?

>И? Эта обёртка даст столько удобства, сколько ни один программист на Си в жизни не видел.


Никакого.
814 2320005
>>319960
Тебе там скорее всего не покажут такое https://godbolt.org/z/hzWbGjG4j
Так что учись пока мы живы.
815 2320007
>>319980

>void *


Значение знаешь? нетипизированный указатель
И почему это считается дурным тоном в >2000х годах.
816 2320011
>>320007

>И почему это считается дурным тоном в >2000х годах.


Расскажи.
817 2320017
>>320011
Хотя бы потому что любой осмысленный кусок памяти в твоем компьютере имеет тот или иной формат, а лишая себя знаний о том что там хранится ты подвергаешь себя и других программистов разбирающих этот код возможности ошибиться на этот счет.

Самое смешное происходит тогда, когда через годы ты понимаешь что так писать не обязательно. И ты себя при этом ни в чем не ограничишь.
818 2320022
>>320017

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


Тип void , в Си можно преобразовать в указатель на любой тип, иначе тебе бы пришлось писать function((type )param) или отключать варнинги.
819 2320023
>>320022

>void ⚹


>type ⚹

820 2320024
>>320005
Блеванул, спасибо

>>319646

>У раста нет gc, не сравнивай его пожалуйста с GO. То что они одновременно на слуху не делает их под один класс задач.


Базара нет, в расте нет рантаймового GC, с другой стороны направление языков похожее - "мы против ручного управления памятью, но мы не хотим превращать наш язык в очередного IR мастодонта, так что давайте придумаем какой-нибудь инструмент, чтобы памятью поменьше управлять". В Go запилили mark&sweep, в rust обычный reference counting + обязательный статический анализ на расшаривание мутабельных переменных. Собственно в плюсах без refcount тоже никто не пишет, а это так-то одна из форм GC

>>319681

>Лик вообразили?


Компилируемый язык без IR, без тяжелого рантайма, с gc. Если смотреть с точки зрения сферы применения, то он гораздо ближе к с/c++/rust, чем к IR языкам

>>319742
Писали бы на чем-то другом, но мешает слишком большой объем кода на плюсах, который очень дорого переписать на другой язык и который неудобно использовать в других языках. Какой-то приличный FFI есть только с C, кто бы что не пытался с этим сделать.
821 2320026
>>320022
Преобразование из одного типа в другой в нормальных языках реализуется одной строчкой.

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

В Си же непонятно что такое находится за этим поинтером в момент где эта субстанция находится. Может они это комментариями к коду указывают, не знаю.

Зря я разглагольствую о Си и С++ когда банальных вещей про разработку на них не знаю. Сорян если чушь пишу. Просто самому интересно, неужели кто-то считает нетипизированный указатель чем-то что необходимо в современном мире и при этом не является рудиментом.
822 2320038
>>320024
Тут хочется добавить про то что ты сказал о ГЦ

> Собственно в плюсах без refcount тоже никто не пишет


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

>refcount одна из форм GC


Самая самая нетребовательная по накладным расходам. Без разрешения циклических ссылок.
15633963172190.jpg27 Кб, 400x400
823 2320041
>>320005
Ну ты ебанутый бля. Моё почтение.

про лямбды забыл: ([](){})();
824 2320048
>>320026

>А передача обобщенного типа реализуется указанием что тип поддерживает какую-то функциональность, или обладает какими-то общими свойствами. В С++ это реализуется (если не ошибаюсь) через наследование, абстрактные классы и шаблоны.


https://0bin.net/paste/p8nuyOWh#+dwU6o0LINUvKPg+wHbwPE8hlaeLmjR++bXqkVX6m-s
Например, вот это можно было бы сделать через void *, но сделали через указатель на структуру, в итоге постоянно приходится явно приводить к типу. Я не знаю почему, возможно я что-то не понимаю.
https://www.opennet.ru/man.shtml?topic=connect

>В Си же непонятно что такое находится за этим поинтером в момент где эта субстанция находится. Может они это комментариями к коду указывают, не знаю.


Да или самодокументированный код.

>Зря я разглагольствую о Си и С++ когда банальных вещей про разработку на них не знаю. Сорян если чушь пишу. Просто самому интересно, неужели кто-то считает нетипизированный указатель чем-то что необходимо в современном мире и при этом не является рудиментом.


Работа с данными по указателю, как с областью памяти.
https://www.opennet.ru/man.shtml?topic=memcpy
https://www.opennet.ru/man.shtml?topic=memset
https://www.opennet.ru/man.shtml?topic=memmove
825 2320057
>>319992

> >И? Эта обёртка даст столько удобства, сколько ни один программист на Си в жизни не видел.


> Никакого.


Сейчас ты присылаешь код в котором делаешь конкатенацию двух строк неопределенного размера в Си и при этом не обсираешь себе штаны. Я жду.
826 2320058
>>320048
>>320026
На С деды давно сделали СОМ с интерфейсами типа IUnknown и т.д.
И вообще эта динамикопараша переизобретается регулярно.
827 2320067
>>320057

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


https://0bin.net/paste/vv6ouKYt#6fVwAA-y02tUNvVSGZrSbuONS2DSkNmknU9mSfuJgee

Сейчас ты присылаешь мне объяснение, что хорошего есть в C++. Я жду.
828 2320069
>>320067
Обосрался с +1.
829 2320087
>>320038

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


unique_ptr - это привязка вызова деструктора к фрейму стека. Т.е. частный случай reference counting
830 2320093
>>320067
То, что в C++ твоя лапша делается одной строкой
a + b
Где a и b имеют тип string.
831 2320097
>>319985
обёртка так-то говно, всякий кал типа find, starts/ends_with и прочее по хорошему должно быть реализовано как свободные функции, но в c++23 туда ещё и contains засунут

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

мимо
832 2320098
>>320093
И что? Сколько раз в твоем копировании произойдет копирование строки? А выделений памяти? А если памяти не хватит, исключение или аборт?

Какие у C++ есть достоинства? Безграничный стандарт?
833 2320099
>>320098

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


в твоей конкатенации
834 2320102
Нахуя кормите?
835 2320104
>>320067
Чел, ты же толсто нас троллишь. Ты сам не видишь в этом пиздеце проблем?
836 2320107
>>320104
>>320098
Не вижу.
837 2320108
>>320098
У твоей мамки много достоинств
838 2320110
>>320108

>У твоей мамки много достоинств


C++кодер пытается в разговор.
839 2320111
>>320048

>Например, вот это можно было бы сделать через void *, но сделали через указатель на структуру,


Используя такую древность можно было конечно и получше если бы в википедию заглянули (tagged union) https://0bin.net/paste/unJN41wX#ElXvFbqlytv3m4u5tEaJZYMkr3rB9yKUDcP45Ajs9VY
https://en.wikipedia.org/wiki/Tagged_union

>Работа с данными по указателю, как с областью памяти.


Слава Богу 99% такой необходимости можно закопать в базовые типы вроде обобщенного массива.
>>320087

>unique_ptr - RC


Но он без накладных расходов стадии исполнения. Такой же по накладным расходам как &. Ну, там есть в результирующем бинарнике небольшой оверхед, но он связан только с необходимости поддержки разных форматов вызовов. И концетпуально никаких ограничений не накладывает
840 2320112
>>320098
лол, в худшем случае динамической памяти выделится столько же, сколько и у тебя, в лучшем - будет SSO, который твой велосипед офк не делает

про копирование бред какой-то
841 2320113
>>320098

>А если памяти не хватит, исключение или аборт?


А что ты в программе сделаешь, если у тебя памяти не хватит?
842 2320117
>>320111

>Такой же по накладным расходам как &.


Такой же по накладным расходам как ✱.
843 2320118
>>320024

> Писали бы на чем-то другом, но мешает слишком большой объем кода на плюсах, который очень дорого переписать на другой язык и который неудобно использовать в других языках. Какой-то приличный FFI есть только с C, кто бы что не пытался с этим сделать.


Получается правда с++ лучше не учить сейчас?
844 2320121
>>320112
Смотри, преобразование char * в std::string, скорее всего будет реализовано через выделение памяти + копирование. Существуют оптимизации стандартных библиотек, но стандарт такое поведение не определяет, насколько я знаю. Могу ошибаться. Уже 2 выделения и 2 копирования. Далее, если ты захочешь их "сумму" другой строке std::string = std::string + std::string, то произойдет еще 2 копирования и 1 выделение памяти. В итоге, 4 копирования и 3 выделения памяти, если повезет и строки будут вмещаться в заранее выделенную кучу, то всего 1 системный вызов будет, а если строки длинные, сколько системных вызовов будет? 3?

>про копирование бред какой-то


Где тут бред?

>>320113
Если про пример, то выход. Там же все ясно видно, проверка на NULL с последующим успешным выходом, потому что мне не интересна работа и код завершения, так как в случае успешного выполнения в stdout поступит вывод.
845 2320127
>>320111

>https://0bin.net/paste/unJN41wX#ElXvFbqlytv3m4u5tEaJZYMkr3rB9yKUDcP45Ajs9VY


Там юнион в структуре занимает `sizeof(int) x 2`, а вообще пример не понятен.
846 2320135
>>320121

>преобразование char * в std::string


Ты не показал что там 2 выделения и 2 копирования. Просто сказал бездоказательно.

>Далее, если ты захочешь их "сумму" другой строке std::string = std::string + std::string, то произойдет еще 2 копирования и 1 выделение памяти


А как тут должно быть? Если тут три строки в результате из двух то так и должно быть. Если ты хочешь к первой прибавить вторую. То есть у тебя всего две строки. То произойдет 1 реаллок первой и в нее 1 раз скопируется вторая.
sage 847 2320150
>>320121

>Смотри, преобразование char звёздочка в std::string


если я внутри плюсов, то я, скорее всего, си-строки не юзаю и у меня на руках будут на руках два std::string, никаких преобразований не будет

если одна из строк char const звёздочка, то у операторов + и += для строк внезапно есть перегрузка под этот случай, а если обе строки сишные, то я просто создам строку сразу нужного размера и сделаю в неё += view на сишные строки (чтобы размер строк не пересчитывался лол)

в плюсах нет оператора+ для двух const char звёздочка, нельзя их просто приплюсовать
короче, тут не будет никаких преобразований сишных строк в std::string

>Далее, если ты захочешь их "сумму" другой строке std::string = std::string + std::string, то произойдет еще 2 копирования и 1 выделение памяти.


ну да, выделится память под строку, в которой уместятся две сконкатенированных, и туда эти две и скопируются, в твоей реализации ровно это и делается лол
848 2320156
>>320135

>Ты не показал что там 2 выделения и 2 копирования. Просто сказал бездоказательно.


Ты первый день программируешь? Смотри адреса.
https://godbolt.org/z/7KKzWqKE4

>А как тут должно быть? Если тут три строки в результате из двух то так и должно быть. Если ты хочешь к первой прибавить вторую. То есть у тебя всего две строки. То произойдет 1 реаллок первой и в нее 1 раз скопируется вторая.


Это был пример с 2-ойным преобразованием char ⚹ -> std::string, в этом случае будет 2 выделения памяти и 1 выделения для конечной строки. Можно сделать и через std::string(argv[1]) += char ⚹, тогда будет 2 выделения памяти для std::string = argv[1] и std::string += argv[2], но это не отменяет моих слов.

В реальности std::string резервирует на несколько байт больше памяти, поэтому при коротких строках будет 1 выделение, но при длинных будет 2 выделения и в худшем случае 2 системных вызова. Но количество копирований останется равно количеству преобразований.
849 2320166
>>320127

>Там юнион в структуре занимает `sizeof(int) x 2`


Что поделать, раньше не было никаких абстрактных классов, наследования и шаблонов.

>а вообще пример не понятен.


Хоть я и не программист на Си или С++, но даже я догадался https://godbolt.org/z/WxfY7zW1q Гораздо понятней чем непонятно что.
850 2320168
>>320156

>Ты первый день программируешь? Смотри адреса.


Но там все-таки не показано что два выделения и два копирования на одну строку. Зачем ты меня троллишь?
851 2320170
>>320150

>если я внутри плюсов, то я, скорее всего, си-строки не юзаю и у меня на руках будут на руках два std::string, никаких преобразований не будет


Параметры запуска передаются в виде "сишных" строк, у тебя нет выбора.

>если одна из строк char const звёздочка, то у операторов + и += для строк внезапно есть перегрузка под этот случай, а если обе строки сишные, то я просто создам строку сразу нужного размера и сделаю в неё += view на сишные строки (чтобы размер строк не пересчитывался лол)


Удивительно, тогда разницы никакой не будет в исходном коде, но разница в производительности будет, кроме того, что будет если памяти не хватит исключение, аборт или ожидание, что случится внутри std::string?

>короче, тут не будет никаких преобразований сишных строк в std::string


Копирование, выделение памяти внутри std::string уже является преобразованием "сишной" строки в std::string.
852 2320172
>>320166

>https://godbolt.org/z/WxfY7zW1q


Все равно юнион потребляет больше памяти, размер указателя больше размера int.
853 2320180
>>320156
Я кажется понял чего ты просишь. Ты хочешь создания объекта string inplace прямо из char* с поглощением владения последним.

Тут https://stackoverflow.com/questions/65055864/construct-stdstring-from-dynamically-allocated-char-array-in-an-owning-way советуют использовать string_view или unique_ptr. Возможно в библиотеках есть.
854 2320182
>>320180
Но это не значит что язык такое не позволяет. Это претензия к стандартной библиотеке.
855 2320184
>>320150
https://quick-bench.com/q/q6drxZkC_FC3d86hq8S4uHmVAgc

Может быть не правильно понял, что ты хотел сделать, но в любом случае C++ будет медленней.
856 2320215
>>320184
А где вообще этот выигрыш в скорости нужен? Я понимаю если это софт для пво, который должен ракету перехватить пока она не ебнет в цель, ну или когда ОС пишешь, но условным десктопным приложениям это нахуя

Мимо
857 2320220
>>320215

>но условным десктопным приложениям это нахуя


Процессорное время у всего кода одно, если одна программа потребляет много, то на других это тоже сказывается.
Screenshot 2022-03-20 at 22.08.50.png59 Кб, 902x302
858 2320222
>>320184
охуительный бенчмарк, просто сказка
859 2320223
>>320222
Я делал B). Не заметил.
860 2320225
>>320222
Без оптимизации показатели все равно в пользу 1 варианта.
https://quick-bench.com/q/noiN41EsJXLPSt9JQltxLo_5nh4
861 2320253
>>320225
https://github.com/google/benchmark/blob/main/docs/user_guide.md#preventing-optimization
нужно делать DoNotOptimize + ClobberMemory, а не просто выключать оптимизации компилятора, какой вообще смысл их выключать, когда мы тестим скорость, лол

на больших вроде примерно одинаково, сишные только самую малость быстрее, хз хз, я первый раз бенч делаю, не уверен, что всё правильно сделал
https://quick-bench.com/q/0sU_YZEAMyFkRMRvn0miCWyIDaI (это который пикрил)

а на маленьких у меня почему-то сильно проигрывает мой вариант, но выигрывает наивный?
https://quick-bench.com/q/uKXSaS7Pw1UPvk0BWqy4Cc91K88

но на кланге std::string выигрывает, мб проблемы libstdc++ я хзхз, я слишком тупой чтобы понять чому так
https://quick-bench.com/q/v50CqNBkbz9hw9vd8pcj2shJm5w

не знаю, но с твоим бенчем очевидно что-то не то, смотри, он сам себе проигрывает
https://quick-bench.com/q/oE_osrLAAkkJEnTaZ_5MmNhTJFk
862 2320258
>>320220
Хорошо, но в любом случае много всего пишется на каком нибудь питоне и подобном, который в десять раз медленнее, а вы тут своими с и с++ высчитываете у кого код на микросекунду быстрее
863 2320260
>>320253

>мб проблемы libstdc++


а лол там в обоих случаях он выставлен ну я хз, я не могу асм читать энивей, и на си чистой в жизни писать никогда не собираюсь
864 2320263
>>320225
Естественно, без оптимизаций конкретный код сильно быстрее абстрактного.
Но, как уже было продемонстрировано тобой же, в любой хоть сколько-нибудь нетривиальной логике очень просто обосраться. Собственно, для снижения когнитивной нагрузки и пишется (a + b), вместо твоего шедевра.
Вопрос с производительностью более тонкий. Простой ответ на него такой -- пока не доказал, что нужно оптимизировать, не делай этого. Иначе просто лишний раз жопу себе порвёшь. Нет, это, конечно, полезно, но когда учишься, а не работаешь.
865 2320273
>>320253

>какой вообще смысл их выключать, когда мы тестим скорость, лол


Потому что я одной ногой уже во сне и мне лень этим заниматься.
866 2320346
>>320258
ДРОЧЬБА на скорость - детектор студентика-дебила, или просто неуча. Потому-что скорость она не в слиянии двух строк, а в гораздо более сложных вещах.

Да и скорость почти нигде нахуй не сдалась в нашем шлепательном ремесле
867 2320355
>>320346
если ты настолько тупой, что не можешь даже избежать лишнего преобразования сишной строки в std::string, то куда тебе до чего-то более сложного, ну камон, ты же не копируешь векторы по значению без необходимости, вот это то же самое
868 2320360
>>320355
Друг, я достаточно умен, чтобы не париться из-за такой полнейшей хуйни как преобразование сишной строки в std::string.
869 2320365
>>320360
И в итоге получится так, что любое интерпертируемое говно со сборкой мусора трахнет твой говнокод тупо хотя бы из-за того, что ты насрал строками в память. Зачем вообще тогда писать на плюсах? И те самые сложные вещи, где ты находишь скорость, будут проявлять себя только на достаточно больших инпутах, когда оверхед копирования строк по кд и прочей "полнейшей хуйни" станет сравнительно малым по сравнению с основной работой.
870 2320370
>>320365

>Зачем вообще тогда писать на плюсах?


Ты сейчас всё понял.
871 2320373
Чёт проигрываю с треда. Днбичи обсасывают строки, которые в 90% кода используются только для логирования.
872 2320375
>>320253

>а на маленьких у меня почему-то сильно проигрывает мой вариант, но выигрывает наивный?


Оптимизация std::string для коротких строк, в котором не происходит выделение памяти, а используется внутренний буфер.

>не знаю, но с твоим бенчем очевидно что-то не то, смотри, он сам себе проигрывает


Все то, он сам у себя выигрывает.
873 2320376
>>320373

>Днбичи обсасывают строки, которые в 90% кода используются только для логирования.


У тебя логирование бесплатное?
874 2320380
>>320263
Там нет оптимизаций со стороны программиста, там только валидный код на C и C++.
875 2320520
>>320376
Относительно общего объёма вычислений - да. Я же не текстовый процессор пишу. В большинстве проектов достаточно подцепить какой-нибудь spdlog и заниматься своими делами. Ну разве что поглядывать за количеством вызовов.
876 2320707
Сидишь, ковыряешь CUDA, тензорные ядра, векторизацию. Заходишь на двощ, а тут до сих пор строки оптимизируют, попадание в кэш и "шта garbage каллектар всё сам сделает".
877 2320718
>>320707

> ковыряешь CUDA, тензорные ядра, векторизацию


Как именно?
878 2320730
>>320718
Очевидно, что пишешь cuda ядра, ASM вставки/интринсики.
879 2320839
>>320121
смотри: если хочешь чтобы у тебя си-строка побыстрее конвертировалась в string, либо сделать конкатенацию сишных строк с преобразованием в string, то есть парочка приемов оптимизации:
первый, это то что есть перегрузка конструктора string и член-функция append которые принимает не только сишную строку, но и количество копируемых символов вторым параметром, соответственно не надо там пробегать высчитывать длину сишной строки
второй это то что в классе string есть члены-функции reserve и shrink_to_fit, в случае когда у тебя уже известны (либо примерно известны) размеры сишных строк из которых ты хочешь сделать объект string, используешь эту парочку функций
по итогу если заранее знаешь размеры сишных строк, то у тебя будет 1 выделение памяти и 2 копирования
880 2320842
>>320839

>если хочешь чтобы у тебя си-строка побыстрее конвертировалась в string


Не хочу.

> соответственно не надо там пробегать высчитывать длину сишной строки


Чтобы узнать длину сишной строки, нужно найти ее конец.

>у тебя будет 1 выделение памяти


Выделение для преобразования, выделение для копирования, минимум 2.

Научись читать целую ветку, а не отдельные ответы. Там все уже расписано много раз.
881 2320846
>>320842

>Чтобы узнать длину сишной строки, нужно найти ее конец.


зачастую ты уже знаешь длину сишной строки
к примеру в реляционных субд строковые поля фиксированной длины, и когда ты пишешь с++ обертку для работы с интерфейсом этой субд это обычный прием оптимизации..
882 2320848
>>320842

>Выделение для преобразования, выделение для копирования, минимум 2.


используешь конструктор который принимает сишную строку, будет только одно копирование
883 2320849
>>320846
>>320848
C++кодеры не могут в понимание внутренностей кода и реализаций. Даже тред прочитать не могут полностью.
884 2320908
Немного оффтоп, но как адекватно переводится "statement"? Я почему-то переводил его для себя всегда как "выражение" или типа того, но тут решил сунуть в переводчик и везде хрень какая-то, то оператор, то инструкция. В общем должно быть какое-то слово получше для "statement"
885 2320917
>>320908
Да, инструкция или оператор (но не операция, которая operator). Никакое это не выражение, у выражения есть результат какого-то типа. его можно присвоить соответствующей переменной, либо сделать из выражения инструкцию добавлением ; в конец.
image.png116 Кб, 731x634
886 2320919
>>320917
Для меня оператором всегда было то, что на пикриле.
Блять, десять терминов и на все одно слово.
887 2320920
>>320919
Да просто дебилы придумали перевести operator как операция и начали городить вокруг этого костыльные термины.
888 2321005
>>320849
хорош маняврировать
если надо смотрим ассемблерный листинг, если надо то влючаем флажек "заходить в код библиотек" и смотрим что там в потрохах stl
никакой магии нет, это белый ящик
889 2321027
>>320908
"утверждение" хорошо подойдет
890 2321031
#include <iostream>
using namespace std;
void main()
{
long int x = 64310, y = 54, z = 0;
z = x + y;
cout << x << "+" << y << "=" << z;
cin.get ();
{
Короче, помогите мне, пожалуйста. Для вас нихуя, а мне спасёте жизнь.
Суть: препод сказал изменить код так, чтобы вычисления были в cout , как я понял. Напишите, пж.
891 2321032
>>321031
Вместо << z ; пишешь << (х + у);
892 2321033
>>321032
>>321032
Живи сто лет, спасибо.

P. S. Я не тупой, просто я тупой и жизнь меня закинула сюда :/
893 2321037
>>321027

>"утверждение"


Это к "assertion" ближе.
894 2321127
Я не понял. Почему тред не закреплен на главной? С++ теперь единственный перспективный язык в нашей стране.
Началась новая эпоха низкоуровневых и среднеуровневых языков, написание своих библиотек и фреймворков.
895 2321131
>>321127

>С++ теперь единственный перспективный язык в нашей стране.


Почему?

>Началась новая эпоха низкоуровневых и среднеуровневых языков


Нет.

>написание своих библиотек и фреймворков.


Зачем?
896 2321134
>>321127
Будь это так, я бы первый перекатился из ебаной ненавистной жабы в любимые крестики.
897 2321135
>>321134

>жабы


>любимые крестики


Ты говноед со стажем?
898 2321161
>>321037
Тут как договоришься. Для меня, assertion = жопу ставлю, а statement идет как утверждение, предлагаемое к рассмотрению.
899 2321196
>>320908
Если больная логика, то можно перевести, как "установка состояния", "изменение состояния", "смена (переход) состояния" или "шаг", хотя не отражает смысл исходного значения, но имхо наиболее ясный вариант для меня, слово "выражение" у меня в голове создает картину каких-то математических формул, а "утверждение" ассоциируется с assert, "операция" с Украиной.
900 2321256
Чому в openssl - одной из самых популярных либ для криптографии миллион багов и утечек?
901 2321277
>>321256
Потому что она на сишке, с кучей макросов, кроссплатфооменных хаков, местами имитацией ооп (через struct с десятком указателей на функции), void× и size_t (а то и int) и это всё хер отследишь и даже статик анализаторы мало помогают. Читал её код и плакал.
902 2321281
>>321277
Почему она самая популярная? Она кажется вообще даже одобрение от какой то американской криптоорганизации получила, лол. Разве не лучше использовать Crypto++ или что то подобное.
903 2321283
>>321277

> size_t (а то и int)


Как? Мне в вузе на первой паре сказали, что нигде кроме контестов так писать не надо, потому что потом заебешься искать ошибку
904 2321286
Поисковики это какая область? Машоб по большей части?
905 2321337
>>321196
>>321027
>>320920
Короче постараюсь придать этому слову для себя смесь смыслов слов "утверждение, выражение, операция", и будут читать с++ книжки с таким настроем в голове
906 2321842
>>321256

>миллион багов и утечек?


Какие?
907 2321847
>>321286

>Поисковики это какая область?


Коммерческая.
908 2321848
Что почитать по поводу шаблонов и их использования?
910 2321931
>>321849
Там же просто сухая информация. Мне бы что-нибудь с примерами использования, объяснением каких-то неочевидных фич или спорными моментами, в которых легко обосраться.
Неужели нет никаких статей/книг про это?
911 2321942
>>321848
https://www.youtube.com/channel/UCvmBEbr9NZt7UEh9doI7n_A
У этого челика из МФТИ последние лекции для баколавра были про шаблоны и их применение.
913 2322080
>>321127

>написание своих библиотек и фреймворков


А на какие деньги это все будет писаться и поддерживаться? Вон, яндекс тратит дохуиллиарды на поддержание своей самописной инфраструктуры в актуальном состоянии.
Разработку своих велосипедов в основном только фаанги могут позволить. Либо какие-то узконаправленные стартапы.

Дефолтное ковыряение крудов в банке или гос энтерпрайзе не нуждается в собственных велосипедах, всегда можно взять старую джаву8 и спринг4 для больших проектов, а для тех, что поменьше пхп5 и битрикс с 1с, где еще нет или не было никаких закладок против злых русских, это проще и дешевле в разы.
914 2322633
>>321848
страуструп "дизайн и эволюция с++" 15я глава
страуструп "язык программирования с++, специальное издание" 13я глава и приложение в13
это чисто база, написанная еще тогда когда страус не был ленивой задницей
Coplien, James O. "Curiously Recurring Template Patterns" - crtp одна из основ практической шаблонной магии на крестах
Александреску "Современное программирование на с++" - ну это база метапрограммирования на с++, в сегодняшних стандартах языка ты будешь делать все то же самое, но просто с применением новых языковых расширений, а суть не поменяеться
ну и есть толстая книжка вандевурд, джосаттис, грегор "шаблоны с++", где собственно попытались все запехать, и основы, и crtp, и метапрограммирование, неплохая как по мне, для новичков сойдет
915 2322642
>>321127
ты там зайди на hh
крестовики больше всех провалились по вакансиям
мы теперь совсем не нужны здеся
916 2323021
На Qt нужно сделать так что бы в зависимость от введенных цифр на экране загорались нужные квадратики, квадратики это виджеты, цифры получаются в отдельном потоке, когда приходят нужные цифры загорается нужный квадратик. Планирую создать двумерный массив указателей на виджеты(квадратики), передать это в поток который читает цифры. В потоке который читает цифры создать также события которые будут отправляться нужному квадратику и иметь такой же индекс в двумерном массиве что и квадратик. То есть строка и столбец событие в массиве событий будут соотвествовать нужному указателю на виджет в массиве указателей на виджеты.
Затем берется событие из массива событий, туда подставляется нужный указатель из массива указателей, и отсылается виджету событие измени цвет.
Нормальная идея, или шиза?
Лично меня не устраивает то что цифры приходящие в поток который читает цифры, так сказать не весь свой диапазон задействуют. Ну вот например пришли цифры 2 и 1 и значит во 2 строке и первом столбце должен зажечься квадратик, а 2 например 2 и 3, не должно существовать квадратика, а 2 и 4 должен. И так пропусков может быть много, и жалко память тратить. Хотя че эти жалкие байты экономить.
917 2323026
>>323021
Или же связать все квадратики с сигналом из потока который читает цифры, пускай все квадратики получают сигнал в котором будут передаваться цифры, и если квадратик обнаружил свои цифры, то он загорается, а ну так то полегче и покрасивше будет.
918 2323027
>>323021
Рисуй квадратики сам.
919 2323028
>>323027
Кто?Я?
920 2323058
>>323021
Если кто не понял, то квадратики расположены на экране, просто они меняют цвет если пришли цифры зажигающие нужный квадратик
921 2323084
Есть ли у меня гарантия того, что деструктор объекта сработает?
Просто в шарпе, например, такой гарантии нет, и приходится использовать либо using, либо try-finally.
Есть ли в плюсах какие-то такие заморочки?
922 2323085
>>323021
Один сигнал для менеджера квадратиков, он проверяет существует ли такой и даёт ему сигнал на изменение цвета.
923 2323091
>>323084
Есть при удалении объекта из кучи, для стековых - при выходе из скоупа или исключении. Т.е.если ты создаёшь все на стеке и используешь умные указатели - всегда.
924 2323092
>>323084
Всегда, но только при нормальной работе программы, нестандартное (системный вызов, сигнал завершения и т. д.) завершение программы или потока не гарантирует вызова деструктора.
925 2323126
>>323092
Ты можешь создать объекты на куче, нормально завершить программу и деструкторов не будет.
926 2323131
>>323126
Потому что вызова деструктора изначально не было, а не потому что он не вызвался из-за каких-то языковых проблем.
927 2323245
>>323021
надеюсь ты студентик еще и это курсач твой
а если ты РАБотаешь уже то земля пухом твоей фирме и отдельный привет службе hr
928 2323250
>>323245
хихихи
929 2323265
>>323021

>Qt


Очень надеюсь что ты не из РФии
930 2323267
>>321931
Тебе скинули >>321953 норм курс, но он на базовый поток. А так, чтобы ты не терял своё время, советую ознакомиться с тем, что тебе придётся понять и освоить если хочешь вкатиться в C++.
http://mesyarik.ru/17/cplusplus_course.html

К слову, это только язык. Дальше там на ФПМИ есть ещё куча курсов для C++, в которых учат писать качественное ПО. Ну и ещё есть курс где рассказывается БАЗА для программирования.

Если тебе не страшно, если ты на 100% уверен что тебе не интересен ВебДевелопмент, и никакие там C# с Java, то... Добро пожаловать..

Чуть не забыл, дальше ещё надо бы алгоритмы подучить, там тоже на ФПМИ есть. Но, если ты не учился на матфаке, будет тяжко вкатиться в эти дебри (манеру объяснения). Ну, на этот счёт есть курсы МГУ / МФТИ по матану и линалу, там по сути студентов подводят к этой философии изложения материала.
931 2323270
>>321848
Гугли курс метапрограммирования на C++ от ФПМИ, там должен быть плейлист с 10 видосами как минимум.
932 2323351
>>321848

>Что почитать по поводу шаблонов и их использования?


>>321942
>>321953
>>323267
>>323270

>Рекомендуют 50 часов лекций.

933 2323401
>>323265
РФия
934 2323414
>>323401
Не советую в ближайшее время использовать Qt. Они уже сейчас начинают хуйню творить в отношении русскоязычного сообщества.
935 2323416
>>323414
Ну у меня пока все работает
936 2323663
>>323414
Какую? Это ж попенсорс (раньше был)
937 2323665
>>323663
Лицензию посмотри их.
938 2323667
>>323665
какую именно? Там их дохуя - на каждый компонент лицензия отдельная
939 2323674
>>323667
Достаточно в гугле вбить. https://regnum.ru/news/polit/3526080.html

мимо другой анон
940 2323677
>>323667
Для закрытого и коммерческого ПО стало проблемно использовать Qt, потому что оплатить и скачать оффициально нельзя из РФ, для открытого и некоммерческого можно использовать.
941 2323765
Я быдло, хочу программировать на C++ как боженька. Прочитал Шилдта и A Tour Of C++.
Что читать дальше?
942 2323769
>>323765

>Что читать дальше?


Программируй.
943 2323783
>>323765
Быдлу будет сложно вкатиться из-за большого порогового входа. Мб тебе выбрать что-то другое?
944 2323788
>>323765
Гарри Поттера почитай, а код писать надо
945 2323789
>>323769
>>323788
Нельзя же просто взять и начать писать код, нужен какой-то базовый набор знаний. Иначе я буду троллируем опытными C++-девелоперами.
946 2323790
>>323789
можно. Ты достаточно прочитал, чтобы сделать какую-нибудь хуевую консольную змейку или тетрис, например
947 2323870
>>323265
А какой гуи фреймворк тогда юзать?
948 2323872
949 2323875
>>323769
А что такого написать в виде пет-проекта, чтобы ты на собесе сказал "молодца"?
950 2323962
>>323875
Придумай. Почему у меня в вузе первокуры сами проекты придумывают и им потом на собесе говорят "Малаца"? Вы все спрашиваете блядь. Ладно книги, это нормально, но что тебе писать это странно. Неужели тебе самому не интересно что то сложное и большое написать? Вот это для себеса подойдет
951 2323971
>>323962
Я бы игру сам хотел написать, но будет ли это выглядеть серьезным?
952 2323973
>>323971
Зависит от реализации, если просто возьмешь готовый движок, то ты написал игру на готовом движке, еще одну. А если ты напишешь свой движок (даже хуевый и примитивный), но на нем можно будет построить несколько игр, даже 2д, даже визуальных новелл, но это будет удобно, то имхо будет интереснее выглядить.
953 2323986
>>323971
>>323973
Фокусируйся на технических деталях. Для игрушки с точки зрения пользователя важен сюжет, персонажи, красивая рисовка и тд. Для проги это все абсолютно неважно. Для проги важно придумать какой нибудь интересный алгоритм, решить сложные технические задачи.
954 2323997
Ребят, читаю : "Программирование. Принципы и практика использования C++".
Но там есть своя библиотека какая-то, а я не могу найти её целиком в интернете, получается только частями какие-то функции выискивать и вставлять себе((
Кто читал, помогите дурачку
955 2324054
>>323414
Вопрос по теме. Какие вообще гуи есть годные кроме Qt, а то всегда как только заходит тема про гуи, то только про него говорят. Это такая прям годнота или конкурентов просто нет?
Мимо
956 2324055
>>323677
Как будто здесь кто-то пишет коммерческие проекты. Ну а если и пишет, то явно это не человек который что-то там решает и выбирает какие фреймворки/библиотеки использовать
957 2324074
>>324054
Для крупных проектов GTK, для мелких xvWidgets. Qt лучшее, что есть на c++ и другого не будет. На данный момент на c++ GUI пишут скорее как исключение: чутка под эмбед, чутка под мобилки и чутка под десктоп. Типичный проект - это связка с web или C#/Java (React, WPF, Spring).
958 2324085
>>324074
Получается если хочешь десктоп приложения, то лучше в шарп/джава идти?
959 2324094
>>324085
Скорее в веб, щас все на электроне из крупняка. На С++ только адове легаси
960 2324096
Привет, анон. Нашел у ФПМИ клевый курс по concurrency.
https://www.youtube.com/watch?v=zw6V3SDsXDk&list=PL4_hYwCyhAvZLYM41IC4JMnrPpNLbAVL2&index=2
Однако лекций всего 6, а в первом же видосе есть список тем, и лекций там 15
Вопрос: никто не знает, где можно добыть полный набор лекций? Или это проприетарщина мфти? Или еще может просто не все выложили?
И, может, кто проходил его. Насколько годный? Мне по вводной лекции показалось, что прям ок.
961 2324098
>>324085
В целом - да. На c++ пишут десктоп для гос. нужд под всякие Astra Linux. Либо доделывают проекты с долгим жизненным циклом. Иногда бывает софт типа графических редакторов или для работы с видео и аудио (хотя многое уже на wpf переехало).
962 2324127
>>324094
>>324098
А если требования к производительност есть? Внутренности на с++ писать, а потом прикручивать к этомуи гуи через электрон?
963 2324143
>>324098
ага ага, поэтому яндекс переписали такси с питона на плюсы, все потому что только легаси осталось. Не позорься, а
кому нужна производительность - пишут на плюсах, все.
Плюс есть области где кроме плюсов пока никто ничего предложить не может - селф драфвинг, очень часто комп зрение, бэк реже, но есть
Или ты просто 11 классник и наслушался неудачников на дваче?
964 2324148
>>324127
На С++ переписывать такие произведения никто не собирается, посоветуют взять железо помощнее, если это клиентское ПО, или выделят еще пару серверов для микросервисов, если серверное.
965 2324228
>>324127
Ну в целом gui стараются абстрагировать и отделить от остальных подсистем. Прогресс не стоит на месте и многие проекты хотя бы раз меняли фронт. Допустим раньше был MFC и с него перекатывали на Qt или WPF. Я видел немецкий enterprise, где фронт на Qt выкинули нахуй и заменили на Web (только выиграли).

Поэтому да, критическую по производительности внутрянку пишут на cpp, а остальное на том, на чём быстрее и с чем меньше ебаться при дальнейшей поддержке (фактически на c++ писать не выгодно по деньгам).

Бывает ещё в эмбед ситуация, когда ресурсов у железки мало и жабу с дотнеткорами не впихнуть - там страдают с Qt или библиотечками поменьше.
966 2324234
>>324228

> стараются абстрагировать и отделить от остальных подсистем


Я пока не сильно разбираюсь в этом. Что это вообще за процесс соединения условного кода на с++ с гуи на условном электроне?
Есть какие-то библиотеки для этого или какая-то еще штука уже встроенная в электрон и другие фреймворки? Это вообще сложно делается или в два клика?
967 2324238
>>324143
Ну я даже не знаю куда тебе пояснять...

Портирование кода с питона это обычная практика. Например головастики пишут алгоритмы и proof of concept на нём, а потом его уже дрочат под конкретную платформу с avx, cuda, opencl, intrinsics на c++. Причём пилится либа с биндами для питона, а остальная бэкендовская часть на питоне же и остаётся.

По зрению ты тоже фантазируешь. Математика gbitncz на c, c++, fortran. Бэк бывает написан на Go/Rust/c++/java/python. Фронт - чаще встречается web.
968 2324243
>>324234
Не знаю, как оно в JS устроено. Но вот например в жабе есть JNI. Там делается так - пишешь класс на java и помечаешь его методы как native. Отдаёшь его компилятору джавы javac с ключиком и он тебе генерирует c++ заголовок .h. Цепляешь его и либы jni из java sdk к своей библиотеке на c++ и реализуешь его методы. Компилируешь в dll. Дальше в коде Java загружаешь dll одним вызовом и используешь свой java класс.
В итоге у тебя есть абстрактный java класс с набором методов без реализации (на java). Потом ты можешь выкинуть dll и запилить эти методы на чём-то другом.
969 2324252
>>324127
"Требований к производительности" нет ни у Микрософт тимс, ни у слака (с миллиардами установок у каждого) - а у тебя есть, да?

Если разговор идет о программе, делающей что-то трудозатратное - числодробилке там, или видеоконвертере - то ГУЙ пишешь на электроне\шарпе\прочем.

И далее собираешь из гуя и числодробилки общий продукт, где они общаться могут хоть через пайпы, хоть через сеть, хоть через прости-господи http. Ну, или через нативные вызовы, любой язык умеет дергать сишный код.
970 2324257
>>324234
Это не сложно, скорее муторно, но в долгую очень помогает.
Реализация может быть разная - например вызовы библиотек Qt через JNI, как я описал выше, либо это общение с JS фронтом через отправку REST запросов.
971 2324259
>>324096
весна 2022 не кончилась еще
курс выходит
972 2324281
>>324252

> "Требований к производительности" нет ни у Микрософт тимс, ни у слака (с миллиардами установок у каждого) - а у тебя есть, да?


А потом такие обезьяны начинают свое говно подчищать спустя годы и получается ситуация как с блендером, когда сайклс ускорился в 3-10 раз после одной обновы. Но производительность нам не нужна конечно, у нас таких требований нет, напишем говно хрен знает как, а потом понадеемся что через 15 лет кто-то исправит
973 2324297
>>324238

> Портирование кода с питона


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

> По зрению ты тоже фантазируешь


нет. Нейросети - питон. Деплой - плюсы. Не веришь - тот же хуавей набирет на зрение спецов со знанием с++. И не только хуевей

> Бэк бывает написан на Go/Rust/c++/java/python


согласен, бэк на плюсах себе позволяют только топ конторы типа яндекса и пр. В целом, я и написал бывает. И это не всегда легаси.
974 2324316
>>324281
Пока ты будешь делать ПРОИЗВОДИТЕЛЬНО и на С++ - говношлепы уже 100% рыночка займут. В этом и суть.

Переписывать можно сильно позже, только business justification у гуйни нет для этого
Screenshot2022-03-27-23-16-09-801com.android.chrome.png169 Кб, 1080x1920
975 2324320
как стать таким крутым? овер 8000 ответов, это законно вообще? что за разум такой?
https://stackoverflow.com/users/85371/sehe?tab=topactivity
976 2324324
>>324297

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


чёт кекнул с этого

>Нейросети - питон.


В моём проекте cети Кохонена, каскады Хаара, AdaBoost - всё на плюсах, avx и cuda. Но тебе ничего не мешает педалить на Python фреймворках типа PyTorch позади которых стоят всякие blas/lapack, писанные на c/c++/fortran.

>Деплой - плюсы.


Вообще похуй на чём он.

>хуавей набирет


Если позиция - researcher, то у них в требованиях Python, если sw developer, то c++. То есть там такой же процесс python --> cpp, как я и описал.
977 2324329
>>324320
у меня есть профиль на SO с 4к+ репы. Просто сидишь эфпячишь 24х7 и очень стараешься успеть ответить самым первым.

Сейчас это пиздец как сложно, т.к. все легкие вопросы отвечены - та кчто надо успеть ответить, пока мочераторы не помаркают вопрос как дубликат.
978 2324336
>>324329
А что если бустить аккаунты и продавать их индусам? Взлетит бизнес?
979 2324339
>>324336
Зачем?
980 2324341
>>324336
Если ты можешь бустить аккаунты на SO очень быстро - то тебе проще работать программистом на 100 баксов в час на удаленке, или онсайт в Гугле\ФБ L5+.

Если ты не можешь их бустить быстро - то раздавать листовки на улице будет выгоднее
981 2324343
>>324339
Ну типа тебе деньги а им бонус в CV. Плюс они, как и азиаты, падки на тщеславие.
16235876877020.jpg88 Кб, 1080x872
982 2324564
>>324316

> Пока ты будешь делать ПРОИЗВОДИТЕЛЬНО и на С++ - говношлепы уже 100% рыночка займут. В этом и суть.


В каком мире мы живем...
983 2324630
Кто разбирается в создании собственных виджетов для QtDesigner, я вот виджет сделал, но не пойму как его добавить в QtDesigner, что бы он был как полноценный, а не как promoted. Что бы были видны все его свойства справа. Я гайд в интернете нашел, там сказано сделать его как плагин, патом собрать это все надо и положить библиотеку dll в папку с плагинами, я так делаю мне выдает ошибку не найден подключаемый модуль имявиджета.dll, хотя он лежит в папке plagins.
984 2324724
>>324630

>plagins


Попробуй положить в папку plugins
image.png386 Кб, 589x521
985 2324795
986 2324802
>>324324

> чёт кекнул с этого


бля да, тоже проорал

> Но тебе ничего не мешает педалить на Python фреймворках типа PyTorch


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

> Вообще похуй на чём он


Деплоить на сервере - похуй. На условной тачке ты го никуда не засунешь

насчет хуевея такое ощуещение. что мы достигли соглашения, потому что твой ответ, в целом, подтверждает мой
987 2324810
>>324802
Деплой вообще не про языки программирования, это devops. Чем отличается "сервер" от "условной тачки"? Go без проблем тиражируется образами для запуска в контейнерах и оркестраторах.

>такое ощуещение


что ты виляешь жопой, дав подливы
988 2324812
>>324810
Ебанутый?

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


> ХУАВАЙ ПЛЮСЫ НА СЕ ДА ДА


> соглашаюсь


> ЫЫЫ ОПОДЛИВИЛСЯ ВИЛЯЕШЬ ЖОПОЙ


дебич

> Деплой вообще не про языки программирования, это devops.


ой бляя. Ну давай, девопси в юпитере нейросети в докере своем.
Я говорю, что как только нужно уйти за пределы маня ноутбуков с обучением и превратить то что нахуярили дата сентисты в производительный код с применением того же тензоррт, то тебе , нихуя себе, понадобится не девопсер, а прогер на плюсах
989 2324813
>>324812
бля не те скобки
990 2324817
>>324812
Сначала почитай, что такое deployment, а потом поясни как он связан с cpp:
https://en.wikipedia.org/wiki/Software_deployment

>>324813
хватит подливу по треду размазывать
991 2324846
>>324817
ты же хуйню пишешь
мимо
992 2324851
>>324846
В чём он не прав?
мимо
993 2324868
>>324851
в том, что пишет хуйню

>>324810
Чем сервер отличается от тачки? Ну, как минимум требованиями к скорости. У тачки они выше. Твои докеры в связке с го идут нахуй. Мы у себя паримся над количеством копирований, и том, как в памяти выровнять точки траектории робота, а ты все еще думаешь, что твои контейнеры с го туда можно впилить
994 2324872
Господи, как в этом эклипсе подключать заголовочные файлы?
995 2324874
>>324872
Бля, опять ты, иди нахуй.
996 2324887
>>324868
Ну то есть ты думаешь, что твоя прога, помещённая в контейнер, сразу начинает потреблять x2 по памяти и замедляется в два раза? Или что контейнер сам жрёт х10 оперативки? Или ты не понимаешь, что на Go пишется не алгоритм робота, а бэкенд, в котором твой робот это лишь часть пайплайна или многокомпонентной системы?
997 2324888
>>324868
Вангую, что для тебя контейнер и виртуальная машина это одно и тоже.
998 2324914
>>324872
Не пользуйся эклипсом.
999 2324915
>>324888
Да.
мимо другой
1000 2325163
>>324914
Самый дельный совет
Скачал студию и разобрался за секунду
1001 2325338
А есть какой-то учебник с практикой, но легче страустропа?
Там просто не могу врубиться с калькулятором в 6 главе, а остальные учебники будто просто теорию подают и в конце глав вопросики лёгкие.
1002 2325368
>>325338

> но легче страустропа


Нахуя? Иди сразу по сложному пути, иначе нахуя вообще что-то читать.
1003 2325383
>>325368
Да я думаю, что можно легче что-то почитать, а потом вернуться к сложному. Разные источники информации использовать
1004 2325523
>>297529 (OP)
Сап. Что я делаю не так? Решаю сейчас задачку, в которой необходимо впихнуть в словарь "базу данных" из тхт, связку логин/пароль и потом сравнить с вводимым в консоль. Столкнулся с проблемой, что, после слэша чтение файла тупо прекращается, и все, что ниже первой строки в словарь уже не входит. Как это пофиксить?
1005 2325525
>>325523
Проблема в алгоритме, которого у тебя нет, а есть ошибочное использование getline.
1006 2326022
Аноны, можете объяснить смысл ООП и классов в частности? Полистал книги, посмотрел ютуб. Везде используются довольно странные примеры, смысл которых не понятен, ибо эту хуйню можно спокойно запихнуть в функции.
1007 2326028
>>326022

>Аноны, можете объяснить смысл ООП и классов в частности?


Определение функциональности, каких-либо данных.

>Везде используются довольно странные примеры


Возможно они используют ООП, как "Все используют и вообще современно!".

>ибо эту хуйню можно спокойно запихнуть в функции.


Да, но данные и функции условного списка удобнее представить в виде класса, чтобы было удобнее и яснее List.Length, List.ValueBy, вместо list_length(struct list list), list_value_by(struct list list, ...).
1008 2326063
>>326028

>Возможно они используют ООП, как "Все используют и вообще современно!".


Ну а мог бы привести пример, где классы необходимы? Просто до этого я видел только то, как долбаебы умудряются написать 80 строчек класса, когда это можно запихнуть в 10 в функции или вообще в мейне.
1009 2326066
>>326063
>>326028

>Да, но данные и функции условного списка удобнее представить в виде класса, чтобы было удобнее и яснее List.Length, List.ValueBy, вместо list_length(struct list list), list_value_by(struct list list, ...).

1010 2326075
>>326063

> долбаебы умудряются написать 80 строчек класса


Тебе за код построчно платят что-ли? Эти 80 строк могут тебе упростить взаимодействие с данными в разы.
И чет слишком сильный перевес, есть конкретный код?
1011 2326092
>>326075

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


Как минимум не у тех, кого я приводил выше.
Один додик создал класс, в полях определил две переменные, унаследовал их в другой класс, в одном методе их перемножил, во-втором вывел.
Вместо того, чтобы написать:
int a,b;
cout << a*b;
И ВСЕ
1012 2326102
>>326092
Ты думаешь, в реальном софте всё происходит так?

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


Если он сделал это не в демонстративных целях, то его мотивация действительно не ясна, но вдруг он просто хотел показать тебе, как можно делать?
1013 2326137
>>326022
возможно тебе стоит посмотреть с другой стороны на классы в с++ как на возможность создания в языке пользовательских типов данных, с правилами конструирования объектов этих классов за счет предоставления пары конструктор-деструктор, с правилами взаимоотношений между типами за счет предоставления специализированных конструкторов и возможности перегрузки оператора приведения типа, с возможностью создать иерархию пользовательских типов (в том числе и гомогенную) через наследование..
механизмы наследования классов и виртуальные функции предоставляют динамический полиморфизм, механизм шаблонов дает возможность статического полиморфизма, перегрузку свободных функций можно рассматривать как случай ad-hoc полиморфизма..
ну и опять же классы предоставляют банальную инкапсуляцию данных и кода что их обрабатывает, с разграничением доступа..
с++ не концептуальный язык, скорее это такая солянка из необходимых семантических и синтаксических механизмов, добавленных поверх языка си..
1014 2326142
>>325525
Мог бы ты объяснить че за алгоритм и почему я неправильно использую гетлайн? Я с этой хуйней уже вторую ночь сижу.
1015 2326152
Анон, объясни как должен работать вектор содержащий вектора?

То есть суть std::vector в том чтобы все данные в нем лежали друг за другом без дыр в памяти (из-за чего можно делать всякие си финты типа &v[0])

А что тогда произойдет тут:

std::vector<std::vector<Tile>> map;
map.push_back(std::vector<Tile>{...});
map.push_back(std::vector<Tile>{...});
map.push_back(std::vector<Tile>{...});

А теперь:
map[1].resize(...)

Как теперь будут лежать данные, если я сделаю &map[0] (или map.data())?
1016 2326175
>>326152

>Как теперь будут лежать данные, если я сделаю &map[0] (или map.data())?


Так же, как и лежали.
1017 2326176
Что учить дальше? Знаю всю хуйню, аля массивы, словари, функции. Имею общее понимание ооп.
1018 2326179
>>326176

>Что учить дальше?


Пиши код.
1019 2326182
#include <iostream>
#include<math.h>
using namespace std;
int main()
{
int num1, num2, result1, result2, result3, result4, result5, result6;
cout << "Enter number 1: " << endl;
cin >> num1;
cout << "enter number 2: " << endl;
cin >> num2;
result1 = -num1 + sqrt(((num1^2) + 3 num2)) / (2num2);
result2 = sqrt((3 + num1 num2 / 4 (num1 ^ 2)));
result3 = 6 - abs (num1 num2) / sqrt(5-(num2^2));
result4 = (exp(num1 + 7))
sqrt (37num2 - (num1^3));
result5 = sin(num1) + ((num2^2) / cos(2
num1) + 23);
result6 = tan(num2) - abs(num1 - 3*num2 + (2 / sqrt(num2+4)));
cout << "result: " << result1 << endl << result2 << endl << result3 << endl << result4 << endl << result5 << endl << result6 << endl;
cin.get();
}
Лабу сдаю, эта хуйня не работает. Помогите, пж.
1020 2326183
>>326182

>Лабу сдаю, эта хуйня не работает. Помогите, пж.


1) Что он должен делать?
2) Что он делает?
1021 2326187
>>326183
Решать 6 примеров
Не решает 6 примеров
1022 2326193
>>326187
А, всё, я исправил>>326182
1023 2326194
>>326175
C чего бы? Как он выделит под них память, если эта память там уже занята следующим элементом?
1024 2326196
>>326194
>>326152

>map[1].resize(...)


Почему она должна быть занята?
1025 2326199
>>326196
Потому что после map[1] идет map[2] который должен быть ровно за map[1]

Это же не лист в котором память может дергаться из любого места
1026 2326200
>>326199
https://godbolt.org/z/1r6vnvGsd
Ты изменяешь размер памяти внутри вектора, а не сам вектор, он у тебя имеет константный размер.
1027 2326771
>>326194
Я так понимаю, что внутри вектора должен быть вызван realloc в таком случае.
>>326200
Так вектор гарантирует, что данные внутри него идут подряд. Если ему не получится довыделить память для новых элементов, то нужно переаллоцировать.
1028 2326773
>>326771

>Так вектор гарантирует, что данные внутри него идут подряд.


Да.

>Если ему не получится довыделить память для новых элементов, то нужно переаллоцировать.


Да.
1029 2326801
>>326199

>после map[1] идет map[2] который должен быть ровно за map[1]


?
1030 2326809
>>326773
Спасибо. Значит я не совсем долбоеб в плюсах. Мимосишник.
1031 2326831
>>326809
Вектор внутри это как структура
struct vector {
int size;
int allocted;
void⚹ data;
}
В ней объекты по указателю data лежат последовательно в памяти. Всего их size, а allocated это сколько может влезть без реаллокации. Как только место заканчивается - выделяется новый блок побольше, в него копируется старый и адрес нового блока ставится в data.

А вектор векторов это такая же структура, только data указывает на список структур vector и ведёт она себя также.
изображение.png96 Кб, 587x1006
1032 2327305
Какой-то тупой пример, я его с первого раза правильно решил и на 10 вопрос ответил что деструктор здесь нахуй не на что не влияет. Запустил проверил, все правильно. В чем подвох такого задания?
1033 2327427
>>327305

>В чем подвох такого задания?


В том, что C++ имеет бесполезный функционал.
1034 2327431
>>320024

>в rust обычный reference counting


чо несёт бля
1200px-OpenCVLogowithtextsvgversion.svg.png76 Кб, 1200x1478
1035 2327635
Для проекта нужно сделать обработку картинок на OpenCV и 3д визуализацию в Viz, но у меня не получается собрать проект OpenCV со всеми модулями. Анон, предоставь пожалуйста ссылку на целиком собранный OpenCV с Viz или толковый не устаревший гайд по сборке.
1036 2327733
auto p = &"Hello, world!";
std::cout << ⚹p;

Вот так пишут хеллоуворлд хацкеры.
1037 2327738
>>327733
Слишком просто. Надо прихуярить шаблоны.
1038 2327768
>>327733

> хацкеры


> хеллоуворлд

1039 2327775
>>327733
БЛИН ПОМОГИТЕ!!!! Скомпилировал код, а у меня компьютер выключился, что делать?!?!??!??!
hottess.png336 Кб, 512x512
1040 2327843
Здравствуйте. Подскажите что сделать чтобы перегрузить оператор <<? Этот код работает в visual studio, но в clion не работает.
https://www.toptal.com/developers/hastebin/ceniwemajo.cpp
1041 2327852
>>327843
этот код работает и в шланге и в гцц
1042 2327853
>>327852
Ну хорошо, но все равно со стрингами и чарами проблема, стандартный << не работает.
1043 2328002
Как устроен bitset? Вряд ли есть способ хранить отдельный бит. Я думаю, там используются обычные байты, в которых упаковыны эти биты. Выигрыша в памяти тогда никакого нет, вопрос в удобстве?
1044 2328005
>>328002

>Вряд ли есть способ хранить отдельный бит.


Есть, но память будет выделяться побайтово, поэтому <8 бит будут размером 1 байт.

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


1 байт = 8 бит.

>Выигрыша в памяти тогда никакого нет, вопрос в удобстве?


Говно без задач.
1045 2328135
>>327775
Кстати, без шуток, как-то разбирался с винапи, в частности с перехватом и отправкой событий клавиатуры.
Нажимаю билд (не запуск даже) - что там началось... Я думал мне сейчас спецназ дверь вынесет. Такой визг из антивируса стоял, как будто его все китайские хакеры одновременно вскрывают.
高雄さんおっぱいチャレンジ動画版 TikTok風 [@takesuing].mp41,5 Мб, mp4,
720x1016, 0:10
1046 2328239
>>328135
Мне ебаная винда не дала не давала запускать простейшее клиент-серверное приложение с сокетами, хотя я это приложение написал и собрал в MVS под бдительным надзором большого брата. Не заработало, пока не отключил виндоус дефендер и брандмауэр.
Вот так вот нашим миром управляет глупость.
1047 2328294
>>327635

>Для проекта


для диплома, лох
1048 2328302
>>326831
все же не стоит так упрощено объяснять внутреннее устройство контейнеров стандартной библиотеки, в которых управление памятью вынесено в аллокаторы, являющимися по сути менеджерами ресурсов
1049 2328313
>>326152
ответ на этот вопрос ты найдешь загуглив по теме "валидность итератора"
ну опять же проблема эта не нова, и в си был тот же самый подводный камень, валидность указателей
1050 2328387
>>297529 (OP)
Подскажите IDE под линукс, желательно опенсорс.
1051 2328393
>>328387
vim, g++, gdb, valgrind
1052 2328405
>>328387
Все говно, переходи на редакторы.
sage 1053 2328456
>>328393
Вимодебилов не слушай
1054 2328486
>>328393
А где gсс и mingv
1055 2328487
>>327775
У тебя что-то с блоком питания.
1056 2328489
>>328486

> gсс


g++ это часть gcc

> mingw


Это вообще про шиндовс.
1057 2328492
>>328489
Да? спасибо, не знал.
1058 2328535
Сап. Я первокурсник, который до поступления на Айти не выводил даже Хеллоу ворлд в Паскале. У нас сейчас идёт программирование на Си, скоро должны перейти на С++. Я начал вкатываться с Си, как идет по программе, но т.к на С++ нашел больше понятных видосиков и курс на Stepik, сейчас решил писать на нём: Си считается более удобным для вката, в факе написано, что при вкате с С++ анона ждёт разочарование, но я не вижу между Си и С++ какой-то разницы, а учебная программа вынуждает кодить на них. Че, реально всё тлен? Потом, кстати, пойдет С# и JavaScript. Последний я планирую изучать, т.к хочу попробовать себя во фронте, ибо не думаю, что достаточно способный, чтобы осилить какое-то более тяжелое программирование на высоком уровне

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

Не знаю, как преодолеть этот барьер, когда вроде познакомился с темой, а написать ничерта не можешь — у других в моем окружении такого нет, и они продвинулись гораздо дальше меня, хотя кроме Гоши Дударя на Ютубе ничего не смотрели. Так же плохо у меня со всеми математическими предметами, должно быть, в целом слабые способности аукаются мне и в этом деле

Сейчас я стал решать задачи из курса Stepik и тупо заниматься больше. Скачал книжку Трупа Страуса, стал смотреть канал Simple Code на Ютубе. На Си кодить потерял смысл — скоро переход на С++
Может, будут какие-то советы? Какие-то ошибки в том, как я занимаюсь

Как стал заниматься больше, вроде бы, стал получать удовольствие от процесса. Может, когда-нибудь я напишу какую-нибудь интересную программку для себя. Я также стал задумываться о том, какие алгоритмы имеют разные штуки из повседневности, те же турникеты на входе в универ. Но когда вижу более способных в окружении, а более способные в нём вообще все, ловлю дизморать. Так же, как и тогда, когда осознаю, как я далек от того, чтобы сделать какую-нибудь лабораторную работу, которую остальные легко делают. Приходится покупать работы, иначе будут проблемы после сессии
1058 2328535
Сап. Я первокурсник, который до поступления на Айти не выводил даже Хеллоу ворлд в Паскале. У нас сейчас идёт программирование на Си, скоро должны перейти на С++. Я начал вкатываться с Си, как идет по программе, но т.к на С++ нашел больше понятных видосиков и курс на Stepik, сейчас решил писать на нём: Си считается более удобным для вката, в факе написано, что при вкате с С++ анона ждёт разочарование, но я не вижу между Си и С++ какой-то разницы, а учебная программа вынуждает кодить на них. Че, реально всё тлен? Потом, кстати, пойдет С# и JavaScript. Последний я планирую изучать, т.к хочу попробовать себя во фронте, ибо не думаю, что достаточно способный, чтобы осилить какое-то более тяжелое программирование на высоком уровне

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

Не знаю, как преодолеть этот барьер, когда вроде познакомился с темой, а написать ничерта не можешь — у других в моем окружении такого нет, и они продвинулись гораздо дальше меня, хотя кроме Гоши Дударя на Ютубе ничего не смотрели. Так же плохо у меня со всеми математическими предметами, должно быть, в целом слабые способности аукаются мне и в этом деле

Сейчас я стал решать задачи из курса Stepik и тупо заниматься больше. Скачал книжку Трупа Страуса, стал смотреть канал Simple Code на Ютубе. На Си кодить потерял смысл — скоро переход на С++
Может, будут какие-то советы? Какие-то ошибки в том, как я занимаюсь

Как стал заниматься больше, вроде бы, стал получать удовольствие от процесса. Может, когда-нибудь я напишу какую-нибудь интересную программку для себя. Я также стал задумываться о том, какие алгоритмы имеют разные штуки из повседневности, те же турникеты на входе в универ. Но когда вижу более способных в окружении, а более способные в нём вообще все, ловлю дизморать. Так же, как и тогда, когда осознаю, как я далек от того, чтобы сделать какую-нибудь лабораторную работу, которую остальные легко делают. Приходится покупать работы, иначе будут проблемы после сессии
1059 2328541
>>328535
Сейчас, например, мне нужно выполнить работы по темам "бинарные деревья" и "односвязные списки"
Каков мой порядок действий для изучения данной темы, чтобы я мог решать по ним задачи? При чем достаточно быстрые, чтобы я укладывался в университетские сроки: срок даётся в пару недель.
1060 2328545
>>328535
>>328541
У тебя все очень плохо. Каналы на ютубе почти все говно, а не говно я не видел, кроме пары записей лекций из шараг, курсы такое же говно, как каналы на ютубе, дрочи всякие литкоды и кодварсы, общее понимание реализаций алгоритмов будет. Односвязные списки и бинарные деревья база, просто пойми их.
1061 2328636
>>328405
А запускать то где?
1062 2328637
>>328636
Кого?
1063 2328697
Хуйня этот С, на плюсах уже все вопросики обкашлены, где надо добавлена move-семантика, RVO, NRVO, поэтому можно без задней мысли возвращать по значению. А если я вдруг перейду на С, я как в темном подземелье буду боятся лишний шаг сделать: а вдруг неэффективно, а вдруг утечка?
1064 2328707
>>328541

> работы по темам "бинарные деревья" и "односвязные списки"


Симпл код хорошо разобрал списки, посмотри его видео и повторяя за ним напиши свою реализацию листа.
1065 2328754
>>328545

>дрочи всякие литкоды и кодварсы


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

Перед тем, как решать задачи по какой-либо теме на том же LeedCode, нужно ведь изучить темы, которые будут нужны для решения задачи. Если я сейчас сходу зайду туда и выберу задачи на темы, которые еще не изучал — в чем будет профит? Я просто посмотрю на задачу и не напишу и строчки кода, не зная темы. В курсе перед тем, как отправить своё решение задачи, тебе объясняют тему, показывают на примерах других задач, как надо решать задачи по этой теме, и только потом дают задачу. А сразу идти на Кодеварс или Литкод... Что-то я не врубился.
1066 2328767
>>328707
Нахуя их писать вообще.
Что сложного в списках?
1067 2328885
>>328697

>на плюсах уже все вопросики обкашлены


это не так
стандартизованного abi так и не сделали, стандартизованной динамической загрузки классов нету, как следствие любые системы с расширяемостью через плагины приходиться писать используя тот же олдскульный сишный компонентный подход (com в винде самый известный пример), правда можно сверху для удобства шаблончиками обмазать используя crtp, ну и то что абстрактный класс взаимозаменяем со структурами из указателей на функции, что дает синтаксические плюшки, но суть не меняет
из-за этого к примеру весь энтерпрайз в начале нулевых дружно пересел на явку и шарпик
1068 2328980
for (string str; getline(inp, str); ) {
size_t id = str.find('1');
while (id != str.npos) {
id = str.find('1', id+1);
}
}

id удвоен по сравнению с фактическим индексом единицы
пример - строка "0 1 0 0 1 0 1 1 0 0"
id для неё будут 2 8 12 14

че за хуйня?
1069 2328991
>>328980
Без пробелов строку введи.
1070 2329015
>>328637
Код блядь, если я пишу в редакторе, то запускается он где?
1071 2329024
>>329015
В компилятор суешь и запускаешь.
Ох уж эти зумеры-программисты...
1072 2329043
>>329024
Я слышал про библиотеки, в редактор кода она тоже должны быть загружены? Мне кажется это не удобно, если постоянно ctrl+c - ctrl-v делать, из редактора в компилятор.
Тогда какой выбрать? Под линукс.
1073 2329044
>>329043

> если постоянно ctrl+c - ctrl-v делать, из редактора в компилятор


Ох уж эти зумеры-программисты...
1074 2329050
>>329043
Если серьёзно, то почитай первый том Столярова.
Он хоть и шиз, который фреймбуфер в ядре отключает и ищет CMS, написанную на чистом C/C++, но в плане dev-набора расписал всё +- нормально.
1076 2329481
>>328535
Список и деревья - это алгоритмы и структуры данных. Для меня порядок для понимания темы такой:
1. Успокоился и расслабился.
2. Настроился на занятие
3. Гуглю базу по теме
4. Смотрю примеры
5.а. Решаю задачи, начиная с несложной
5.б .Решаю лабу по универу

Забей на успехи окружающих - смотри на себя. Реализовывай свои цели. Если ты учишься и не забросил - значит победил.

университетские лабы гуглятся, да и к тому же можно у старшекурсников глянуть или к преподу обратиться
1077 2329620
>>329481
Спасибо за советы, няша

>Гуглю базу по теме


Ну я вот в Ютубе забиваю обычно, но как-то решать это не помогало мне, разве что что-то очень простое. Попробую теперь LeetCode, Codewars юзать и начинать с простых и переходить к сложным задачам, смотреть решения, мб учебник читать перед сном для закрепления

>университетские лабы гуглятся


Ни одна не гуглилась. Бывают похожие задания, разумеется, но один в один — никогда. А когда похожие, там код так надо переделывать, что работу не особо облегчает

>можно у старшекурсников глянуть


Реалии таковы, что всем друг на друга похуй. А еще я социализацию проебал, такие дела. Лабы у нас делаются в командах на 3 человека, но я делаю их один. По физике аналогично. На этом фоне началась социофобия (до того, как всрал социализцию, ее не было) и теперь вообще пиздец с башкой
1078 2329757
>>329050
Спасибо.
мимозумерпрограммист
1079 2329800
https://www.toptal.com/developers/hastebin/ezimulaxak.properties

Господа, почему у меня неинициализированная локальная переменная? Пытаюсь перегрузить оператор ввода чтобы вводить структуру.
1080 2329826
>>329800
По ссылке нужно передавать второй параметр, когда перегружаешь оператор>>
1081 2329829
>>329826
Спасибо! работает!
1082 2329836
>>329829
Но это так себе решение.
Инициализируя объект оператором ввода, ты нарушаешь RAII
1083 2329849
>>329836
Не перегружать оператор ввода?
1084 2330702
хочу в файле (фб2) находить данные, и в соответствии с ними переименовывать (std::filesystem::rename) этот самый файл.
все норм, кроме того, что при считывании гетлайном русские символы читаются как кракозябры (смотрю при отладке, ну и до конца так остается).
при этом в файле есть данные "encoding="UTF-8"". НО, если попробовать эти кракозябры декодировать (например http://foxtools.ru/Text ) читабельный вариант имеет данные "Исходная кодировка Кириллица шиндовс1251, Конечная - юникод ЮТФ8".
и что в итоге мне надо? сразу считывать ютф8? считывать как сейчас, потом декодировать? или м.б. просто нахуй пойти еще что-то?
подскажите плес, куда копать, а то совсем в этих соснах запутался.
1085 2330707
>>330702
Используй xml парсер
1086 2332280
Сап, есть main.сpp вида
}
string str;
while (getline(str)) {
Делаем бочку(line)
}
}

test.txt - просто строка текста

Можно ли makefile сделать который бы засовывал текст в str, или в самом main открывать файловый дескриптор, или test.txt на что-то менять?
1087 2332324
>>297529 (OP)
Поясните тупому неосилятору.
Откуда высралось число 4, а не 128. Как я понял, должно произойти деление 900 на 7
1088 2332327
>>332324
% это остаток от деления 900 на 7 и он равен 4
e797e8315d39bcce514fcfb408109683.jpg52 Кб, 500x409
1089 2332332
1090 2332366
К сожалению сейчас нет времени полноценно засесть за учебник, так что учу этот ваш си плюс плюс "на ходу", экспериментируя в процессе написания программ. В следствие этого возник дурацкий вопрос:

Прога

const int RAW = 5;
const int COL = 3;

int arr[][COL] {{1,2,3},
{1,2,3}
};

cout << RAW << ' ' << COL << endl;

for (int r = 0; r < RAW; r++)
{
cout << "r = " << r << "\t\t";

for (int c = 0; c < COL; c++)
{
//cout << arr[r][c] << "\t\t";
}

cout << "RAW = " << RAW << endl;
}

выводит ожидаемый результат с первой пикчи, но стоит раскоментить строку с массивом, как начинается полный пиздец как на второй пикче. Я осознаю, что вопрос, скорее всего, дурацкий, и посидев пол часа за учебником я мб
нашел бы на него ответ. Но мб кто в двух словах ответит, почему цикл фор игнорит условие r < RAW?
1090 2332366
К сожалению сейчас нет времени полноценно засесть за учебник, так что учу этот ваш си плюс плюс "на ходу", экспериментируя в процессе написания программ. В следствие этого возник дурацкий вопрос:

Прога

const int RAW = 5;
const int COL = 3;

int arr[][COL] {{1,2,3},
{1,2,3}
};

cout << RAW << ' ' << COL << endl;

for (int r = 0; r < RAW; r++)
{
cout << "r = " << r << "\t\t";

for (int c = 0; c < COL; c++)
{
//cout << arr[r][c] << "\t\t";
}

cout << "RAW = " << RAW << endl;
}

выводит ожидаемый результат с первой пикчи, но стоит раскоментить строку с массивом, как начинается полный пиздец как на второй пикче. Я осознаю, что вопрос, скорее всего, дурацкий, и посидев пол часа за учебником я мб
нашел бы на него ответ. Но мб кто в двух словах ответит, почему цикл фор игнорит условие r < RAW?
1091 2332368
>>332366
Если что, не надо писать, что: "азазаза, у тебя там размерность массива не та))))"

Я в курсе. Мне интересно, как это в принципе может повлиять на условие цикла
1092 2332375
>>332366
Ладно, чтобы меня совсем сходу нахуй не послали просто спрошу:
Как видно из второго скрина, переменные r и RAW не херятся ни чем, занчит херится условие цикла, так ведь? Хериться оно может только массивом, который мог что-то перезаписать в коде проги, но в строчке /cout << arr[r][c] << "\t\t" мы его лишь считываем, так что каким образом эта строчка может что-то поменять - я не ебу.Ну, либо я чего-то не понимаю.
1093 2332376
>>332368

>Мне интересно, как это в принципе может повлиять на условие цикла


Никак, значит проблема в другом.
1094 2332378
>>332376
В чем?)))))))) Я, считай, за исключением полуформальной дефолтной хуйни весь код выложил. Если это играет роль, компилю на код блоке вроде MinGW (если не путаю)
1095 2332379
>>332378
Не, наврал. Соряны. GNU GCC Compiler
1096 2332383
>>332378

>код блоке


>MinGW


Значит в этом.

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


При условии, что ты в этом ничего не сломал.
1097 2332385
>>332383
#include <iostream>

using namespace std;

int main()
{

const int RAW = 5;
const int COL = 3;

int arr[][COL] {{1,2,3},
{1,2,3}
};

cout << RAW << ' ' << COL << endl;

for (int r = 0; r < RAW; r++)
{
cout << "r = " << r << "\t\t";

for (int c = 0; c < COL; c++)
{
//cout << arr[r][c] << "\t\t";
}

cout << "RAW = " << RAW << endl;
}

return 0;
}

Спешиал фо ю. Вряд ли проблема в include, "int main" или "return 0"/ А больше этот код ничем не отличается от того, что выше.
1097 2332385
>>332383
#include <iostream>

using namespace std;

int main()
{

const int RAW = 5;
const int COL = 3;

int arr[][COL] {{1,2,3},
{1,2,3}
};

cout << RAW << ' ' << COL << endl;

for (int r = 0; r < RAW; r++)
{
cout << "r = " << r << "\t\t";

for (int c = 0; c < COL; c++)
{
//cout << arr[r][c] << "\t\t";
}

cout << "RAW = " << RAW << endl;
}

return 0;
}

Спешиал фо ю. Вряд ли проблема в include, "int main" или "return 0"/ А больше этот код ничем не отличается от того, что выше.
1098 2332386
>>332385

>код блоке


>MinGW


Значит в этом.

Баг скорее всего в компиляторе или в отладчике, который ты используешь. Запусти без отладчика.
1099 2332388
>>332386
А ты не могу бы у себя скомпилить? Если не влом, канеш. Просто сравню результаты.
1101 2332392
>>332386
>>332389
Хмм... Я сейчас попробовал тоже в другом онлайн компиляторе откомпилить, но получилось то же самое, что и в код блоке:
https://ideone.com/CR59Ta (работает через впн)

Это так после изучения плюсов в дурку и попадают, да?
1102 2332733
>>332386
>>332383
>>332378
>>332376
>>332392
Вы ебанутые?
Лезут за пределы массива, да еще и на стеке, а потом удивляются "чо ето нечего не роботает, баг в конпеляторе наверно".
image.png14 Кб, 466x209
1103 2332839
Вопрос по Visual Studio: когда сохраняю проект, а потом снова открываю его, запуск становится недоступной. Поэтому я, открыв проект, чтобы запустить его, копирую весь код, создаю новый проект и уже потом запускаю
А как сделать, чтобы я мог открыть файл сходного кода формата .cpp и сразу компилировать его, а не делать такие идиотские кульбиты? Нигде в ютубе, гугле не нашел решение этой проблемы. Поэтому и я, и люди в моем окружении тоже занимаются такой хуйней. Но на нервы действует уже.
image.png14 Кб, 466x209
1104 2332840
Вопрос по Visual Studio: когда сохраняю проект, а потом снова открываю его, запуск становится недоступной. Поэтому я, открыв проект, чтобы запустить его, копирую весь код, создаю новый проект и уже потом запускаю
А как сделать, чтобы я мог открыть файл сходного кода формата .cpp и сразу компилировать его, а не делать такие идиотские кульбиты? Нигде в ютубе, гугле не нашел решение этой проблемы. Поэтому и я, и люди в моем окружении тоже занимаются такой хуйней. Но на нервы действует уже.
1105 2332841
>>332839
>>332840
Блядь, сначала пишет, что капча невалидна, а потом постит по 2 поста.
1106 2332849
>>332839
>>332840

> А как сделать, чтобы я мог открыть файл сходного кода формата .cpp и сразу компилировать его, а не делать такие идиотские кульбиты?


Можно просто воспользоваться компилятором напрямую через консоль
А вообще тебе нужна система сборки
1107 2332863
>>332366

>цикл фор игнорит условие r < RAW


Он как раз не игнорит, у тебя вывод raw соптимизировался на вывод постоянного значения, а не того, что ты наворотил на стеке. Замени const на volatile.
FE3nTzraIAM7QMv.jpg176 Кб, 857x1200
1108 2333029
Сегодня выходные, после подня ебалм на русте, узнал от колеги о библиотеке буст на плюсах, на плюсах последний раз я писал два года назад даже классов и стл не продвинулся, и решил потратить этот день на изучение этой библиотеки, ибо она мне показалось интересной

Вообще, какие есть подводные? Стойт ли оно того вообще? Сейчас она испольузетьс хоть где-то?

Копчую с последней бубунты
1109 2333035
>>333029
те денег что ли уже платят, щеня? как так то блядь
че за тупые вопросы?
скажи, плиз, чем занимаешься, если ты такой тупой но при этом на работе работаешь?
1110 2333037
>>332733

>Лезут за пределы массива


Как "запредельное" чтение может изменить поведение цикла?
>>332863

>а не того, что ты наворотил на стеке


Что он натворил на стеке?
1111 2333051
Привет, подскажите как посмотреть в visual studio на какой итерации код падает? https://www.toptal.com/developers/hastebin/uvofohibil.cpp
1112 2333236
>>333042 (Del)
Как стать учителем по программированию? Мне кажется это изи, приходишь и на каждом занятии пытаешься разъяснить бездарям концепцию полиморфизма. Потом даешь им самостоятельно простенькую задачу, а сам сидишь чиллишь.
1113 2333333
Привет, анончики. Только не бейте сразу ссаными тряпками, хочу спросить насколько сложно к вам закатиться из Java на серверную разработку, по типу написание софта для форекс, там где задержки по GC недопустиы? Опыта 3 года.

Ещё можете разъяснить чем сейчас qt-шники занимаются? Легаси? Или есть так много десктопного софта, который требует взаимодействия с системными API?
1114 2333356
>>333294 (Del)

>Почему так?


free
totalram
freeram
sharedram
bufferram

>как линукс работает с памятью?


Так же, как и все.

>как это будет работать на винде?


sysinfo даже не posix, чтобы там работать.
>>333333
Ахуеть.
1115 2333436
>>333037
А очень просто. Имеет право, т.к. чтение тоже UB.
1116 2333485
Сап плюсач, есть вопрос по организации IPC с помощью каналов на Win API. Суть такая: есть канал-сервер, сначала он ждёт подключения клиента с помощью ConnectNamedPipe, клиент подключается с помощью связки функций CreateFileA и SetPipeState. После обмена информации клиент отключается посредством CloseHandle (закрывает свой дескриптор), сервер вызывает связку функций FlushFileBuffers и DisconnectNamedPipe, после чего опять вызывает функцию ConnectNamedPipe и начинается вторая итерация цикла. Только второй клиент при подключении падает, GetLastError() возвращает ERROR_PIPE_BUSY, хотя по идее канал свободен. В чём могут быть траблы, анонче? Могу также код на пастебин скинуть, если это поможет лучше понять проблему.
1117 2333494
>>333333

>закатиться из Java на серверную разработку


тебе это не надо 100%
не знаю ни одного человека который ушел бы с явки на кресты, но с кресты на явку - полно
1118 2333547
>>333436
>>333037
>>332863
Так, блет. Чет я подзалип немного. Смотрю, по моему вопросу к консенсусу еще не пришли?
1119 2333650
>>333547

>Смотрю, по моему вопросу к консенсусу еще не пришли?


консенсус в распределенных системах невозможен
есть только частные решения, а общего решения этой проблемы нет!
1120 2333707
Какой из двух стульев выбрать ньюфагу: codelite или code::blocks? Visual studio не очень хочу ставить, и даже не спрашивайте почему - на это нет рациональных причин.
1121 2333721
>>333707
Заодно спрошу: я попробовал накатить на codelite CMake, но, такое чувство, что я сделал что-то не так. Я правильно понимаю, что если все сделано верно, то достаточно в IDE прожать билд прожект и он автоматически запустит CMake на нужном этапе компиляции? Или там нужно каждый раз что-то делать вручную? (Прост при нажатии ПКМ на проект есть пункт меню Run CMake, вот я и думаю)
1122 2333730
>>333721
Блин, забыл сказать (но по контексту и так мб понятно): проекты на codelite + CMake + MinGW упорно не билдятся, или я что-то не понимаю. После нажатия Run CMake появляются только два экзешника разных папках - оба с именами a.exe. А если просто билдить проект, то, похоже, экзешники даже не создаются.
1123 2333744
>>333707

>Visual studio не очень хочу ставить


ты можешь его не юзать, но ставить в 99% на винде скорее всего придется

> codelite или code::blocks


Сорта говна как говориться, можешь хоть в виме программировать
Тебе главное научиться Cmake пользоваться и сможешь где угодно свои проэкты писать
ну и еще language server тебе скорее всего пригодиться тогда, я знаю только clangd - мбы в виме\емаксе какие то свои приколы еще есть
1124 2333833
Продолжаю дудосить двощь нубовопросами:

void EnableOpenGL(HWND hwnd, HDC hDC, HGLRC hRC)
{
//....
//везде в теле ф-ции исользуется запись в виде разыменования ссылки на HDC
//например:
SetPixelFormat(hDC, iFormat, &pfd);
//....
}

void DisableOpenGL (HWND hwnd, HDC hDC, HGLRC hRC)
{
//.....
ReleaseDC(hwnd, hDC);
}

Я так понял, в первом случае нам в функцию приходит ссылка на HDC, а во втором содержимое HDC. Так, собственно, нахуя нам в первом случае приходит ссылка на HDC, если мы везде в теле функции используем
hDC? Можно же было сразу в функцию слать содержимое HDC или нет? Просто интересно, чому сделали именно так?
изображение.png18 Кб, 552x306
1125 2333835
>>333833
Сцук. Забыл, что двощь звездочки удаляет
1126 2333843
>>333037

>Что он натворил на стеке?


Трудно сказать, зависит от компилятора. Но стек растет вниз, а адресация массива вверх, так что он точно залазит на свои константные переменные когда выходит за пределы массива.
1127 2333846
>>333707
Попробуй qtcreator, сам кют необязательно использовать, есть много приятных фич.
1128 2333935
>>333721
а мог поставить студию и не ебать голову никому
1129 2333943
>>333935

>Ньюфаг


>Не ебать голову


Да и вообще, думаю тебя тоже вела дорога приключений. Не пизди, что нет.
1130 2334121
>>333943

>дорога приключений


Сук, аж вспомнил как к codeblocks прикручивал новый питон и скрипты для нормального отображения в дебаге содержимого контейнеров std. Это была неделя жесточайшего пердолинга, я со сборкой буста так не ебался.
1131 2334124
Зачем в стек сохранять локальные переменные?
Единственное логичное объяснение, которое я нашел - рекурсивные функции. Только для этого?
Ведь если у нас не рекурсивная функция, то мы можешь напрямую грузить переменные в регистры процессора прямо из блока кода и хранить их там же. Просто в регистр ebp записать адрес не из стека, а из блока кода. Это же по сути идет просто лишнее копирование.
Понятно, что основная задача стека вызовов - это хранение адреса возврата из функции. Я прав?
1132 2334127
>>334124
Регистров не хватит
1133 2334131
>>334127
Спасибо
1134 2334344
Вопрос по VS Community 2019, решил через полгода покодить а на моей учётке пишет что лицензия устарела, нажал обновить и всё работает. А теперь вопрос есть ли какая ни-будь версия той же самой программы, только без раздражающих учёток, напоминаний об обновлении? Тем более кто знает обновится ли завтра она или нет!
1135 2334372
>>334344
Нет. Можно только взять какую-нибудь кряк ультимейт кейген бесплатно без смс с варезника, из которой пираты всё выпилили. Если найдёшь.
1136 2334722
Так оказывается точка входа точкой входа не является. Можно запустить другую функцию до входа в main(), и об этом могут спросить на собеседовании. Тогда зачем было называть это точкой входа, сишный архаизм? Правильней назвать точка входа после инициализации глобальных переменных.
1137 2334763
>>334722
В общем случае порядок инициализации глобальных переменных не определён, так что за начало выполнения программы разумнее считать main().
image.png8 Кб, 473x152
1138 2334847
Как надо?

У меня С++20
1139 2334854
>>334847
Растовик троль? Или просто пишешь все подряд?
image.png11 Кб, 573x237
1140 2334866
>>334854
при чем тут раст?
1141 2334870
>>334847
Наведи на подчёркнутое красным и прочитай, что студия тебе пишет.
1142 2334874
>>334847

> error: variable has incomplete type 'const MyClass'


у меня тоже почему то компилятор тупит
ну как очевидное решение вынести эту переменную вне класса
1143 2334879
>>334870
Какая разница что он пишет, я спрашиваю как нужно сделать чтобы работало.

>>334874

>вынести эту переменную вне класса


У меня инлайновый класс в заголовке. Мне не нравится из-за пары констант новый файл добавлять. Да и вообще не нравится когда эти константы торчат из каждого угла, а не упорядочены по месту
1144 2334882
>>334879

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


в неймспейс засунь
1145 2335052
>>334847
Представь змею, которая пытается съесть саму себя, вот это ты и делаешь.
1146 2335062
>>335052
слово статик тебя не смущает?
1147 2335091
>>335062
Меня инлайн смущает, на статик похуй.
1148 2335094
>>335062
То что ты пытаешься использовать ещё не созданный класс тебя не смущает? Ты должен сделать его объявление перед определением, а внутрь пихать указатель на него, тк размер указателей всегда известен.
В том виде как ты пишешь прокатит в языках типа Шарпа и джавы, т к там все переменные объекты - указатели.
1149 2335097
>>335091
Инлайн добавили в 17 стандарте чтобы не морочится с статик переменными в срр файлах. В принципе это слово означает что определение переменной или функции может по несколько раз инклудится и компилятор не будет ругаться, а собственно инлайном функций компилятор сам занимается без подсказок при оптимизации.
1150 2335118
>>335094
как статик переменная влияет на использование класса?
я могу свой класс и как параметры функции легко передавать, так и преспокойно как указатели на него вертеть
статик переменная никак на размер класса не влияет, так что не вижу ни одной причины почему компилятор не может выполнить тот код, у него достаточно информации для выполнения этого функционала
1151 2335132
>>335118
Но все равно класс ещё не определен на тот момент, попробуй сделать его объявление заранее и то я сомневаюсь что прокатит, компилятору же все равно надо знать сколько памяти выделять для статиков.
1152 2335134
>>335132

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


столько же сколько и классу
или компилятор глупенький и не умеет чуть дальше просмотреть?
1153 2335136
>>334847
после определения дописать

const MyClass MyClass::s_my = MyClass{};
1154 2335139
>>335134
У тебя класс рекурсивно объявляется, как он посчитает? Там получается бесконечная петля вложенности и компилятор вахуе.
1155 2335140
>>335136
В одной из единиц трансляции (cpp файл), в которую этот класс инклюдится.
1156 2335144
>>335139
компилятор.цпп:
если (встретил статик + тип класса) то:
отложить создания статика
пропарсить определение класса
создать статик
1157 2335150
>>335144
Давай ты напишешь компилятор.
1158 2335232
Учу плюсы. Разбираюсь с указателями на функции. Имеется функция

int func1(void) {
return 555;
}

Вызывается так:

void pointerplay() {
int (*fp1) (void);
fp1 = func1;
cout << "fp1 = " << fp1() << endl; // куда копируется 555 перед выводом?
}

Возникает ли в этом коде повреждение памяти, ведь указателю не выделена память? Несмотря на то, что в mingw компилируется и выводится 555, у меня сомнения.
1159 2335240
>>335232
upd
inb4 только опыт байтоебства с микроконтроллерами, где все указатели либо на глобал переменную буфера, либо на фиксированный адрес. Там таких вопросов не было.
1160 2335281
>>335232
ты просто с указателями разберись сначала, а потом лезь к указателям на функции.

Судя по "указателю не выделена память" - ты вообще нихуя не понимаешь.
1161 2335294
>>335281
Да, хуйню сказал насчет памяти. Хорошо, указатель хранит адрес. В данном случае - адрес возвращаемого значения функции. Оно что, блять всегда по одному и тому же адресу находится?
1162 2335315
>>335294
Указатель на функцию - адрес возвращаемого значения - разные вещи. Функция - код, значение вообще через регистр возвращается.
1163 2336001
>>335991 (Del)
А путь к заголовкам в makefile сам собой пропишется?
1164 2336002
>>335991 (Del)
Вон ты вызываешь g++, указываешь -L либы, а -I для заголовков где?
1165 2336006
>>336001
Конечно сам, а не как у дедов в прошлом веке.
1166 2336149
По итогам скомпилил через эту команду

Анон >>335989 (Del)
1167 2336362
>>336149
господи, тупое ебло, ты теперь тут срешь вместо своих десктоп тредов
1168 2336379
Вопрос 1) Стоит ли обновлять VS2019 на новый? 2) Периодически он подвисает когда кликаешь куда-то или переходить, висит где-то 5 секунд, как от этого избавиться?
1169 2336385
>>336379

>как от этого избавиться?


Пиши код в vim.
1170 2336390
>>336379

>как от этого избавиться?


Перейти на редакторы.
1171 2336618
>>336379
1. Ну если хочешь новые фичи - обнови.
2. Отключи АНТИВИРУС в шинде, ну или у тебя очень слабый комп, хули делать.

Вимодебилов не слушай, их мнение равно мнению грязи из под ногтей
изображение.png10 Кб, 366x71
1172 2336709
Как так выходит, что скобочка с } занимает больше времени, чем все остальное?
1173 2336715
>>336709
разрушение обьектов на стэке?
1174 2336718
>>336715
Нет объектов. В теле ифа только строчка dp=min(dp1, dp2)
1175 2336722
>>336709
Вывод: скобочки потребляют много процессорного времени, а значит от них надо отказываться.
изображение.png7 Кб, 245x66
1176 2336727
>>336709
Я переписал с вектора на двумерный массив и теперь картина более понятная. Но что вектор там так долго делает?
1177 2336747
>>336727
Не знаю, что за профилировщик, но можешь посмотреть на граф вызова функций из этой функции (в VS точно есть), где больше всего self time. А вообще прямо процентикам около строчек не стоит верить, часто это значит "где-то тут тратится время, может строчкой выше или ниже"
1178 2336778
Надо написать серверное приложение, которое будет обрабатывать поступающие запросы. Клиентское приложение на qt, так что наверное буду использовать qt network. Хотя boost asio кажется легче. С чего начать?
1179 2336783
>>336778
Покурить доки asio?
1180 2336947
>>336778

>Надо написать серверное приложение


Возьми голанг, а не кресты.
1181 2336972
>>336947
Но я не знаю его синтаксис
1182 2336976
1183 2337014
>>334847
Зачем вы вообще инлайны пишите, самые умные чтоле? В учебнике по c++ написано, что инлайн для петухов, мол компилятор сам решит, когда инлайнить функцию, когда нет, а не когда кодер своими корявыми ручками впишет этот устаревший спецификатор.
1184 2337016
>>337014

>самые умные чтоле?


Да.

>A static data member may be declared inline. An inline static data member can be defined in the class definition and may specify an initializer. It does not need an out-of-class definition:


https://en.cppreference.com/w/cpp/language/static
1185 2337059
>>337014
Компилятор мразь по определению, которой доверять нельзя
Поэтому иногда нужно заставлять его инлайнить
1186 2337060
>>337059

>доверять нельзя


>нужно заставлять его инлайнить


Имеет право полностью игнорировать любую твою просьбу на инлайн функций.
1187 2337116
>>337060
Есть способы заставить
1188 2337180
>>337014
Дурачок, инлайн это вообще про другое теперь.
1189 2337200
>>337180
Поясни.
1190 2337203
1191 2337394
Изучаю с++ после питона и не могу понять как в одну структуру запихать массив других, заполнить ее и обратиться к ней после? Не отправляйте в гугл, пожалуйста)
struct Children {
string name;
int age;
}
struct User {
string name;
int age;
vector<Address> address;
}
1192 2337398
>>337394
бля
struct Children {
string name;
int age;
}
struct User {
string name;
int age;
vector<Children> childrens;
}
1193 2337407
>>337398
array[index].value
1194 2337415
>>337407
Я походу не умею формулировать вопросы)
1195 2337463
>>337394
А зачем тебе это? Код должен быть простым и понятным.
1197 2337568
Аноны, а в каком редакторе/иде щас модно писать C++ проги под иксами? Нужны подсветка синтаксиса, автодополнения, подсвечивание ошибок, дебаггер.
1198 2337589
Можно как-нибудь сократить писанину и не писать перед каждой функцией template<typename T>?
1199 2337596
>>337589
Через #define.
1200 2337597
>>337596
Человеческого решения как всегда нет?
1201 2337621
1202 2337625
>>337621
Ты отличаешь вывод типов от шаблонов? Сможешь написать коллекцию через auto?
1203 2337633
>>337625
а тебе надо в реализации коллекции перед каждым методом писать template<typename T>?
и ты про функции спрашивал, что не так с auto аргументами...
1204 2337707
>>337486
Спасибо, друг.
1205 2337783
>>337625
Тот анон про abbreviated function template говори, и это как раз то, что тебе надо.
1206 2337943
>>337942 (Del)

> На днях узнал о свойстве компиляторов "time", которое показывает время выполнения


ls и vim - это по твоему тоже свойства компилятора?
1207 2337952
>>297570

>Если выдернуть компьютер из розетки, то деструктор тоже не вызывается.


Это так называемая база
1208 2338454
Вопрос насчет p2p приложения. Какое максимальное количество сокетов я могу позволить себе открыть? Теоритически 2^48, но на практике компьютер охуеет столько держать. Какой максимум лучше поставить? 10? 20? 100?
1209 2338460
>>338454
А ты используй UDP.
1210 2338461
>>338460
Впадлу контролировать приход пакетов. Мооожет быть когда нибудь сделаю и на udp, но пока хз
1211 2338465
>>338454

>Вопрос насчет p2p приложения.


Возьми готовый алгоритм или реализацию.
1212 2338471
>>338460
Да, чет я тупанул. Лучше udp, чтобы кучу соединений постояннт не открытвать/закрывать/держать открытыми
1213 2338475
>>338460
Спасибо
1214 2338764
Бля аноны, помогите, для перемножения матриц скачал библиотеку
http://mathenglish.ru/dmatrix/
Но она внутри юзает StdCtrls.hpp Которой у меня нет, гуглю, но найти ее не могу, типа должна быть встроенная, что делать?
image.png11 Кб, 762x73
1215 2338883
А что, так можно чтоли?
перегрузка функций в классе. Я думал что можно только когда разные аргументы.

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

const WindowSystem& e = engine.GetWindowSystem(); // думаете константная ссылка вернется? А вот хуй. Вызовет WindowSystem& GetWindowSystem(), несмотря на то что e - константая ссылка

А вот тут все норм:
void goo(const EngineSystem& engine)
{
auto& e = engine.GetWindowSystem();
}
goo(engine);

проверял так:
WindowSystem& GetWindowSystem() { puts("WindowSystem"); return m_window; }
const WindowSystem& GetWindowSystem() const { puts("const WindowSystem"); return m_window; }

Вывело:
WindowSystem
const WindowSystem
1216 2338885
>>338764

>Но она внутри юзает StdCtrls.hpp Которой у меня нет, гуглю, но найти ее не могу, типа должна быть встроенная, что делать?


Взять любую другую библиотеку для матриц. Они все одинаково считаются.

Единственное - что возможно результирующую матрицу нужно будет транспонировать(Transpose) (так как одни библиотеки хранят построчно, другие по рядам. Transpose меняет туда-обратно)

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

Либо руками удаляй весь болрадский код (то есть удали StdCtrls.hpp и все что там тянется.. __fastcall тоже удаляй), так как работа матриц - это тупо базовые операции по умножению, сложению. Плюс синус-косинус
1217 2338889
>>338764
Сам напиши. Чего там писать-то.
На CUDA напиши.

>>338883

>const WindowSystem& e = engine.GetWindowSystem();


Ну так здесь выбор метода GetWindowSystem зависит от того, константен engine или нет. Константность e тут ни при чём.
1218 2338891
>>338883
Ой, я тут недавно разбирал стандарт сишки, и по его грамматике получилось что вот эти выражения норм: ++x = 0; x++ = 0; но компилятор проглотил только первое. Пути си языков неисповедимы.
1219 2338999
>>338891
Язык определяется не только грамматикой. Вот тут например х++ это rvalue.
1220 2339195
>>329481

>4. Смотрю примеры


>5.а. Решаю задачи, начиная с несложной


Где смотреть примеры и где решать задачи? У меня тоже проблемы с выполнением лабораторных работ по программированию: в Ютубе смотрю уроки по теме, повторяю их код, читаю в учебнике базу по теме, а как до решения задач доходит — жидко пукаю и не знаю, как решать.
1221 2339229
>>339195
codeforces, codewars -- этими сам пользуюсь. Ну и в учебниках по проге задания решать можно, какого-то конкретного не посоветую.
другойанон
1222 2339285
>>339195

>Где смотреть примеры и где решать задачи?



Примеры есть на сайтах(cppstduio, purecode например), учебниках по теме. Оттуда и задачи можно порешать.

>не знаю, как решать



Если не знаешь синтаксис - учишь язык и std
Не знаешь алгоритмы - учишь алгоритмы и структуры данных
Не знаешь вообще ничего - проходишь курс, параллельно смотришь дополнительные материалы(видосы, задачи и тд)

Учебники неплохо закрепляют программирование. На cyberforum есть темы для новичков и тд., там тоже много чего интересного могут предложить почитать\прорешать.

Кстати, лабы с вузов бывают плохо структурированы по уровню знания студента, что создает барьер. Гугл и ресурсы в свободном доступе помогают этот барьер преодолеть.
1223 2339616
Есть идей по учебнику с++ для детей и дебилов стандарта с13 с стл?

АТО у меня есть толька классика с++99 для дедов
1224 2339618
>>339616
Да, в шапке.
1225 2339749
Вопрос по VisualStudio, как перемещаться по закладкам и почему не сохраняются свёрнутые функции после перезапуска, опять рассрыты
1226 2339948
Анон, наставь на путь истинный.

Хочу вкатиться в эти ваши кресты, дабы в будущем делать какие-нибудь мелкие игры на ПК мечта с детства.

Мне в 17-18 лет это показалось чем-то невероятно сложным, дошёл в С++ до раздела функций и дропнул, хоть и сдал ЕГЭ по информатике на 88 баллов, поэтому я забил, отложил мечту на потом и поступил в говновуз чтобы зацепиться за Москву.

Сейчас мне 23, отучился по профессии которая совершенно не интересует, и вот уже около четырёх месяцев потихоньку вкатываюсь в IT сферу - чутка поговнокодил на Петухоне, выучил основы HTML и CSS и стараюсь в целом "вариться" в этой тематике.

И вроде всё идёт нормально, мне очень нравится копаться во всём этом, но проблема в том, что я вообще нихуя не уверен, за что стоит полноценно зацепиться и где стоит прокачивать хард скилы. Как не почитаю очередную статью / мнение с двачей / рандом комментарий про то что языкнейм говно без задач, куча минусов, работы нет, конкуренция 5000 человек на место, и даже если и возьмут, то за бесплатно учиться будешь ещё полгода, я вот учил этот язык и 2 года работу не могу найти потому что не берут - сразу накатывает паника и желание дропнуть всё к хуям и пересесть на что-то более актуальное, потому что есть ощущение, что я в итоге буду ненужным и безработным. Короче пугалки на меня пиздец сильно действуют, и я вместо того чтобы ПРОСТО сидеть и ебашить - начинаю паниковать и постоянно думаю "а надо ли оно мне вообще бля? а вдруг реально нет работы? а что если работа будет скучной и унылой?", и всё в таком духе.

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

Можешь меня обнадёжить, анон?
1227 2339965
>>339948

>мелкие игры на ПК


C#.

>языкнейм говно без задач


Да.

>куча минусов


Да.

>работы нет


Без опыта - скорее всего.

>конкуренция 5000 человек на место


Да.

>я в итоге буду ненужным и безработным


Сейчас ты нужный?

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


Возможно, но ты скорее всего дропнешь кресты.
VID20220308183116404.mp41,5 Мб, mp4,
656x848, 0:10
1228 2340024
>>339965

>>Сейчас ты нужный?


Сижу без работы и без опыта на мамкиной шее стыдно.
Нужна уверенность в том, что моя "нужность" заметно возрастёт после дроча крестов.

>>но ты скорее всего дропнешь кресты.


Хуй там, плюсы пока что самый привлекательный язык из всех, да и книга из шапки треда уж очень нравится тоже пока что. Если я на чём то и зациклюсь - то только на них. Единственное что раздражает - вышеперечисленные сомнения.

>>C#


Судя по треду он больше на веб нацелен, а меня от веба слегка подёргивает. Всё же хотелось бы в сторону софта двигаться но если что могу и веб потерпеть.
1229 2340060
Понюхал тут Go. Какой же прекрасный язык. Всё просто, понятно, красиво. В иде есть прекрасная встроенная документация, стоит только навести на название функции. Таким и должно быть программирование в 21 веке, а не ошибки на 2 листа А4, которые невозможно прочесть.
изображение.png2,7 Мб, 900x1600
1230 2340061
>>340060
Пикрил в принципе полностью передает суть крестов. И ладно бы платили много, так в среднем по больнице язык используется только в легаси и платят немного.
К слову, помню тут был кун из нвидии с за 600к, интересно, что с ним.
1231 2340149
>>340060

>В иде есть прекрасная встроенная документация, стоит только навести на название функции. Таким и должно быть программирование в 21 веке, а не ошибки на 2 листа А4, которые невозможно прочесть.


Причем тут язык?
1232 2340173
>>340061
За 700, и он релоцировался. Писал из их офиса только один человек остался.
1233 2340183
>>340173
еще не релоцировался, пока только процедуры начались.

Ну и да, 900к где-то сейчас, акции упали. А так больше ляма было
1234 2340315
Можно ли определение шаблонного класса писать в cpp? Я так понимаю, что можно только отдельные функции, которые не зависят от шаблонов.
1235 2340342
1236 2340379
>>340342
хуимпл, деб, башкой подумай прежде, чем высирать какую-то хуйню
1237 2340535
>>340315
Можно
1238 2340821
Аноны, а есть ли шизы, пишущие код прямо противоположно букве О в СОЛИД? Вот чтоб код потом можно было легко модифицировать или переписать. Как вообще такое проворачивать? Если ООП не принципиален, то может есть какой-то уже изобретённый приём вне этой парадигмы для подобного извращения? Причём главное требование — без потери производительности, т.е. рефлексировать или оборачивать код в тонны абстракций — не вариант. Единственное рабочее, что мне приходит в голову — это писать в процедурном стиле, по сути выкинуть весь ООП и писать как на Си с сахаром. Посоветуйте что-то адекватнее.
1239 2340831
>>340821

>пишущие код прямо противоположно букве О в СОЛИД


Закрытый для расширения и открытый для изменения интерфейса?
1240 2340841
>>340831
Да, переписывать функционал без добавления нового. В том числе и сам интерфейс менять, по необходимости. В процедурном стиле оно уже разбито на минимальные элементы — минимум правок надо делать при переписывании, нет интерфейсов — нет проблем. А как быть, если хочется оставаться с классами? Или я хочу невозможного от ООП?
1241 2340848
>>340841

>минимум правок надо делать при переписывании


>противоположно букве О в СОЛИД


ты кажется что то путаешь
1242 2340851
>>340841
Это секретная информация, среди разработчиков на C++, но ты можешь просто изменять класс, то есть, прямо из `class a { void m1(); void m2() };`, можешь сделать `class a { int m1(int, int); int m2(int, int); };`, плавающий интерфейс есть, возможность расширения только через наследование, что неизбежно, насколько я знаю.
1243 2340855
>>340851

> Это секретная информация, среди разработчиков на C++, но ты можешь просто изменять класс


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

>пишущие код прямо противоположно букве О в СОЛИД


>>340841

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


>>340855

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

1245 2341096
Ахуеть. Думал скачаю Qt. Сварганю приложуху на домашнюю пеку, а установка ide забанена по IP. Пидарасы
1246 2341222
Помогите плз решить задачу
https://www.cyberforum.ru/cpp-beginners/thread2973571.html
1247 2341264
>>341222
pos = 0
while (pos < array.size - 1) {
1. среди элементов с позиции pos находишь максимальный;
меняешь его местами с array[pos];
сдвигаешь pos на 1;
2. среди элементов с позиции pos находишь минимальный;
меняешь его местами с array[pos];
сдвигаешь pos на 1;
}
1248 2341318
>>341096
в msys2 есть
1249 2341351
>>297529 (OP)
как называется операция когда мы делаем * нам поинтером
вылетело из головы.
1250 2341363
>>341351
Разыменование
1251 2342157
Как выводить в файл кириллическую строку,введенную в cmd с клавиатуры? setlocale(LC_ALL, "ru") не помогает,все равно в тхт на месте букв кракозябры
1252 2342298
>>342157

>Как выводить в файл кириллическую строку,введенную в cmd с клавиатуры?


Проблема окон, копай в эту сторону.
1253 2342305
>>342157
Чел, в Шинде всегда используй _tmain и TCHAR. Юникод выключи, нахуй!

> setlocale(LC_ALL, "ru")


Чё, блять?

> в тхт на месте букв кракозябры


Блокнот любит cp1251.
1254 2342309
>>342305

>setlocale(LC_ALL, "ru")


>Чё, блять?


Эта инструкция позволяет на консоль кириллицу выводить
1255 2342310
>>342309
Ты из какого года капчуешь?
1256 2342326
>>342310
Заебись лектор по информатике, в восьмидесятые нас переносит. Машина времени ебать.
Он строки как массив чаров пишет ,всегда.
1257 2342344
>>340061

>Пикрил в принципе полностью передает суть крестов


Не суть крестов, а суть вкатывальщиков, которые нихуя не знают, а уже программисты

Нет ничего сложного в С++.

Да, есть наркоманская STL где и выкатывает полотна невнятного бреда... ну это наркомания и придумал ее наркоман в наркобреду (и это даже не шутка, он сам об этом писал)
1258 2342346
>>342326

>Заебись лектор по информатике,


Кстати о лекторах... Какой же охуенный чел по С++
https://www.youtube.com/channel/UCGlYKd-FR4g0Tp4wF6_wxig/videos

Я бы к такому походил поучиться сям.

А говорят что в институтах не учат нормальному программированию... эх, жаль я был слишком туп чтобы поступить очно (поступил заочно на программиста, кстати тоже норм лекторы были - финальной лабой года например была полностью законченная программа управления школьным расписанием со всякими там базами данных, работой по сети и т.д.)
1259 2342586
>>340535
Как?
1260 2342633
>>338465
Пока только retroshare знаю, но к сожалению, там только исходники придется читать, что не просто бывает. Скорее даже затратно по времени
1261 2342636
Ну шо, как дела, как зряплатки крестовиков в рашке? Всё еще ржоте с Kharkiv IT Cluster или уже нет?

Салтовка-кум
1262 2342675
>>342636
Если в долларах считать, то выросли. А так - по-разному.
1263 2342716
>>342636
проблема не с зарплатами, как никак многие крестобояре из городских семей, зачастую с родителями инженерами, и как следсвие с наследной бабкиной хатой, и поэтому крестобояре всегда были готовы трудиться за копеечку
но проблема с количеством вакансий, а вот оно за последние пару месяцев просто рухнуло
к примеру, геймдев в россии (даже унылые мобилки) просто перестал существовать, его сейчас нет можно скзаать
1264 2342725
>>341264
Я что то не совсем понял, что именно ты предлагаешь сделать.
Типо ты предлагаешь мне создать цикл, в котором я уже сделаю:

>среди элементов с позиции pos находишь максимальный;


меняешь его местами с array[pos];
сдвигаешь pos на 1;

>среди элементов с позиции pos находишь минимальный;


меняешь его местами с array[pos];
сдвигаешь pos на 1;
Но как мне это сделать? Я просто в с++ совсем ньюфаг
1265 2342727
>>341264
Я что то не совсем понял, что именно ты предлагаешь сделать.
Типо ты предлагаешь мне создать цикл, в котором я уже сделаю:

>среди элементов с позиции pos находишь максимальный; меняешь его местами с array[pos]; сдвигаешь pos на 1;


>среди элементов с позиции pos находишь минимальный; меняешь его местами с array[pos]; сдвигаешь pos на 1;


Но как мне это сделать? Я просто в с++ совсем ньюфаг
1266 2342764
>>342716

>поэтому крестобояре всегда были готовы трудиться за копеечку


Ну не, опция релокейта всегда существует. В Грузию например?

>но проблема с количеством вакансий, а вот оно за последние пару месяцев просто рухнуло


>к примеру, геймдев в россии (даже унылые мобилки) просто перестал существовать, его сейчас нет можно скзаать


У остальных должны были упасть рейты, не?

Салтовка-кум
1267 2342766
>>342716
Да не сказать, чтобы рухнуло. Сократилось где-то на 25%, ну максимум на 30. При этом изменилась структура, да. Гейдев ушёл, пришли телекомы, эмбед, нагруженный бэк и сервисы. Зепки в принципе остались довоенными. В некоторых местах апнули, потому что вакухи по полгода висели.
1268 2342771
>>342764
А что тебе релокейт в Грузию даст? За переезд и хату мало никому доплачивают, зарплаты - остаются те же, а кому-то предлагают идти на меньший прайс. Паспорт Грузии - хуйня полная. Сама Грузия маленькая, работы там нет, делать там нехуй.
1269 2342772
>>342771

>А что тебе релокейт в Грузию даст?


Возможность работать? У нас с проектов кастомеры выпиздили всех разрабов кто в рашке или белорашке
1270 2342775
>>342764
Так а почему рейты должны были упасть? Посыпались прежде всего аутсорсные направления. А кресты в аутсорсе занимают малую долю. Кто может в кресты перекатиться из безработных? Да в общем-то никто (джависты и шарписты зарабатывают больше сидя в сытных офисах).
1271 2342777
>>342772

> У нас с проектов кастомеры выпиздили всех разрабов кто в рашке или белорашке


А нехуй работать на галере. Пойди устройся в нормальную компанию, которая пилит свои разработки или хотя бы не для западных куколдов. В чём проблема? Сейчас наоборот все фрилансеры-трактористы нахуй пошли и в рашке можно без проблем найти работу.
1272 2342778
>>342775

>Так а почему рейты должны были упасть?


Меньше вакансий = больше кандидатов на место = меньшие рейты

>А кресты в аутсорсе занимают малую долю.


Ну хуй знает, у меня 20 штыков работает

>>342777

>Пойди устройся в нормальную компанию, которая пилит свои разработки


Я не нищееб

>хотя бы не для западных куколдов


Ой дурак
1273 2342780
>>342778

> Я не нищееб


Но очень похож, раз выбираешь между бомжеванием и укатыванием в недострану.

> Ой дурак


Азиаты уже давно платят больше, чем любители шестицветных флагов.
1274 2342781
>>342772
Возможность работать, она ускользающая. Если джон боар через пол года скажет всё, то что ты дальше делать будешь? В Грузии работы нету, а искать ты будешь удалёнку как руссо программисто.

В качестве нормальной альтернативы есть Кипр. Там и ойти развито и фин сектор и русскоговорящих масса и проблем с местными нет. Но как туда сейчас попасть - я хз.
1275 2342782
>>342780

>укатыванием в недострану


Я не в рашке です

>Азиаты уже давно платят больше, чем любители шестицветных флагов


Это сколько?

>>342781

>а искать ты будешь удалёнку как руссо программисто.


Не, стоит искать как человек из Грузии, в нормальных странах всё понимают

>В качестве нормальной альтернативы есть Кипр. Там и ойти развито


Айти развито в штатах и в штатах только. Остальное - это всего лишь место комфортной работы на нормальных клиентов
1276 2342783
>>342778

>20 штыков


Так а чё они от тебя не уходят? Зачем жить в стране, где с неба падает хуета и президент говорит, что будем воевать ещё 10 лет (пока всех не призовём)?
1277 2342788
>>342782
В нормальных странах считают, что Georgia это ламповый американский штат, а не горы с чебуреками.
Хотя в целом всем поебать откуда кодер, главное не попасть под санкции.
1278 2342790
>>342783

>Так а чё они от тебя не уходят?


Куда ж ты денешься с подводной лодки?

>>342788

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


Так отож
1279 2342796
>>342778

>Меньше вакансий = больше кандидатов на место = меньшие рейты


Так вакансий сильно меньше не стало и основной удар пришёлся по вкатунцам. Ушёл Luxoft (хотя они продолжают мониторить рынок). Вместо него активизировался VK.
1280 2342802
>>342790
Сам то с Украхи съехал или ждёшь призыва?
1281 2342805
>>342802
Жду призыва естественно

Салтовка-кум
1282 2342807
>>342796

>Ушёл Luxoft


А еще ушел EPAM и интел
1283 2342810
>>342807
Интел перетечёт в Huawei, LG и им подобные.
Luxoft вроде крупнее был, чем EPAM. Да и контрагенты у Luxoft были получше. В Украхе наоборот.
1284 2342813
>>342810

>Интел перетечёт в Huawei, LG и им подобные


Разве шо в хуавей, потому что лыжи тоже закрываются
1285 2342816
>>342813
У хуавея очень много вакансий. Samsung ещё хантил людей на тематику близкую к проектам Intel.
1286 2342824
Знаете ли вы реализации надежной доставки сообщений по udp? Есть ли сурсы, а то че то не нашел
1287 2342826
>>342824
Тончее нашел, но сомнительные
1288 2342828
>>342824
Лучше я опишу проблему, а вы может подскажите че. Может есть какие то другие протоколы с нормальной реализацией, но на основе udp. Мне нужно почти всё, что есть в tcp, но при этом мне не подходит формат соединений. Мне нужно отправлять данные без установления соединения
1289 2342830
1290 2342831
>>342828
Пишешь P2P?
Считается, что если пытаться достичь такой же надёжности, как в TCP, в итоге и получится такой же оверхед. Так что можно либо снизить требования, либо устанавливать соединение, передавать ланные и разъединяться, как в HTTP без keep-alive.
1291 2342835

> Пишешь P2P?


Да

> Так что можно либо снизить требования, либо устанавливать соединение, передавать данные и разъединяться


Тогда мне придется очень часто соединяться, разъединяться, что при большом количестве человек может быть очень критично. Я очень слабо представляю как это будет выглядеть в чате на 1000 человек, например.
1292 2342846
Есть еще вариант использовать SCTP или RUDP, но я это в первый раз вижу
1293 2342927
>>342782

>Айти развито в штатах и в штатах только


а под айти ты подразумеваешь сайто-клепательство?
9bqBEan3gJc.jpg248 Кб, 864x1080
1294 2342981
Здравствуйте. Вы моя последняя надежда. Дело в том что я совершенно не понимаю алгоритм ханойских башен и для решения задачи использу код, который пытаюсь переводить с джавы (мне нужен именно такой принцип), но, ожидаемо, у меня ничего не получается.

Вот что я наделал: https://www.toptal.com/developers/hastebin/sahuyikeya.cpp

А вот откуда я это взял:
https://zhengyang2015.gitbooks.io/lintcode/content/mock_hanoi_tower_by_stacks_227.html
1295 2343043
>>342927

>>Айти развито в штатах и в штатах только


>а под айти ты подразумеваешь сайто-клепательство?


Именно что не вебмакакинг. Все самые advanced поделки делаются там, а остальные - копируют
1296 2343052
>>342344
Любитель велосипедов, ты?
1297 2343109
>>342775

>Кто может в кресты перекатиться из безработных? Да в общем-то никто


всегда есть приток свежего мяса: умных дурачков из вузов что решили специализироваться на си/си++
1298 2343115
>>342835

> чате на 1000 человек, например.


чел, сейчас решают проблемы C10M на сервак, для протоколов http и websocket
а ты бля хочешь уходить на udp потому что у тебя http 1k не держит
ха ха
1299 2343151
>>342981
Хелп.
1300 2343166
>>343109
Ну так то величина постоянная. Вузы выпускают примерно одинаковое количество народу ежегодно (это без учёта демографической ямы).
\r\n \r\n \r\n
изображение.png26 Кб, 512x738
1301 2343188
Почему так нахуй? Если уж делать explicit так до конца, без исключений для ифов
1302 2343199
>>343188
Потому что как раз для ифов этот оператор в основном и нужен. А explicit - защита для остальных мест.
1303 2343200
>>343199
Основное использование - в смарт поинтерах и optional
1304 2343390
>>342636
уже давно не плюсовик, но по java/scala бек все оки доки, рейты даже растут, т.к. всякие нервные пориджи судорожно ищут релокейт. nvidia офис не закрыла, хуавей не закрыл, сименс не закрыл, ебучих размеров яндекс и vk остались. Банки никуда не делись, но там плюсовых вакансий мало

>>342805

>Жду призыва естественно


ебать дебил

харьков-кун
image.png25 Кб, 278x714
1305 2343400
>>343390

>nvidia офис не закрыла


А почему вакансий нет? https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite
Почему Ukraine есть, а Russia нет?

>ебать дебил


Сейчас лучше оказаться по эту сторону железного занавеса, чем по рашкинскую

Салтовка-кум
image.png25 Кб, 890x192
1306 2343404
>>343400
Хз, на hh.ru вакансии публикуют и обновляют. Правда сильно меньше, чем раньше
https://hh.ru/vacancy/54409308?from=vacancy_search_list&hhtmFrom=vacancy_search_list

>Сейчас лучше оказаться по эту сторону железного занавеса, чем по рашкинскую


tell me about it
У нас тут по сравнению с Украиной сейчас либеральный рай. У нас тут на подвалы не увозят за неправильное мнение в отличие от. Все мои родственники из Харькова со вторника боятся звонить мне по телеге, т.к. у знакомых устроили обыск за то, что звонили родственникам в РФ по сотовой связи. Железный занавес, да?
1307 2343405
>>343400
Потому что бизнес любит тишину. Luxoft тоже журавлика на сайте нарисовал. Но по резюме они всё равно шерстят.
1308 2343411
>>343400
Так а чё ты в Европу то не уехал? Даже всякие Сергеи Немчинские укатились, ибо нахуя жизнью рисковать, если ты хорошо зарабатываешь и можешь получать от жизни удовольствие? Уровень жизни упадёт по обе стороны границы. Какой смысл жить среди бедных и вских махновцев с разноцветными повязками?
1309 2343422
>>342716

>геймдев в россии (даже унылые мобилки)


А тут вообще после нулевых вообще было что-то кроме мобилок, браузерок и ммо? Все нормальные студии позакрывались. Только ледорубы вспоминаются но это творцы, не умеющие в проджект менеджмент и работающие только лишь на энтузиазме Дыбовского, да симуляторы самолётов для аутистов.
1310 2343424
>>343404

>https://hh.ru/vacancy/54409308?from=vacancy_search_list&hhtmFrom=vacancy_search_list



Armenia, Remote

>У нас тут по сравнению с Украиной сейчас либеральный рай.


Ахаха, ясно

>Все мои родственники из Харькова со вторника боятся звонить мне по телеге


Просто тебя уже выписали из родственников, но этого еще не понял

>>343411

>Уровень жизни упадёт по обе стороны границы


А вот и нет. Бумага, прокладки, памперсы и сахар у меня в магазе как раз есть.
1311 2343428
>>343424

>московская вакансия без релокейта


>Armenia, Remote


Смекаешь, да?

>Ахаха, ясно


>Просто тебя уже выписали из родственников, но этого еще не понял


>А вот и нет. Бумага, прокладки, памперсы и сахар у меня в магазе как раз есть.



Всегда думал, что в /po такой низкий, отбитый уровень контента, т.к. там срут работники ботоферм на зарплате. Но оказывается, что ровно так же пишут вполне себе образованные ребята - программисты. Просто пиздец.
1312 2343430
>>343428

>>московская вакансия без релокейта


>>Armenia, Remote


>Смекаешь, да?


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

>Всегда думал, что в /po такой низкий, отбитый уровень контента


В Харькове последние ватаны уже ненавидят рашку, после пережитых обстрелов, пожаров и прочего пиздеца. Выписывание из родственников - довольно распространенная тема
1313 2343437
>>343430

>В Харькове последние ватаны уже ненавидят рашку


Мне интересен алгоритм поиска ватанов, если за любой неотрицательный сентимент в сторону РФ неиллюзорно могут прийти пообщаться, а то и чего похуже.

>Выписывание из родственников - довольно распространенная тема


Во-первых, это твой личный опыт, опыт ближайшего окружения? Если нет - нехуй распространять не личный опыт. Во-вторых нехуй свои фантазии проецировать на меня - у меня с родственниками охуительнейшие отношения и они стали со мной очень осторожно контактировать сразу после некоторых событий неделю назад
1314 2343438
>>343424

>прокладки, памперсы


То есть ты ещё и жизнью семьи рискуешь. Ебать ты промытый.
1315 2343439
>>343437

>Мне интересен алгоритм поиска ватанов, если за любой неотрицательный сентимент в сторону РФ неиллюзорно могут прийти пообщаться, а то и чего похуже.


С соседями никогда не общался? Не знаешь их настроений?

>у меня с родственниками охуительнейшие отношения


Можешь верить. Но родственников у тебя больше нет
1316 2343837
>>343422

>кроме мобилок, браузерок и ммо?


это и было потому что давало безумную маржу
изображение.png7 Кб, 500x117
1317 2343906
При инициализации сокета в конструкторе виджета, программа вылетает. Что я делаю не так?
1318 2343915
>>343906

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


Ставишь лишние запятые. Попробуй его инициализировать до тела конструктора. this там уже определен.
1319 2344116
>>343906
У тебя есть дебаггер. Как именно вылетает?
1320 2344242
Двощ, хуле рандом не рандомный? По логике хеш должен пересчитываться каждое срабатывание функции, но по факту во время всего выполнения выходит одно и то же число.
https://pastebin.com/QR4JzZkW
1321 2344251
>>344242
А все, нахуй скопипиздил откуда-то код через random.h, и он заработал
1322 2344281
>>344242
Основы.
1323 2344543
Проблема с определением длины файла в режиме "rb"
Почему при загрузке функции для определения длины файла вида (1-й пик)
не соответствуют (2-й пик)
Получается что в текстовом режиме каждую новую строку в первом случае прибавляется два символа, во втором только один.
1324 2344749
бля, как упростить себе жизнь будучи плюсовиком, создал папку приходится блять запихивать в нее CMakeList и так в каждую....
добавить бибилиотеку с гитхаба это вообще горе.
Как упростить все это?
Можно конечно взять vcpkg но у меня CLion с ним не дружит абсолютно, а через mingw приходится постоянно врубить их консольку и искать (а там иногда все устарело)

Ну почему в раст есть богоподобный единственный toml файлик и все
1325 2344766
>>344749

>Как упростить все это?


Использовать средства среды, для организации проектов.
1326 2344770
>>344749
Cmake fetch content
1327 2344774
>>344766
что это за средства среды в данном случае для Clion
>>344770
Да, спасибо новой фишечке, но указывать прямо юрл адресс в файле эстеттически не комильфо, а также проблема с тем что в каждую папку надо сувать этот сраный файл

какой вообще модерн тулчейн
1328 2344809
>>344774

> в каждую папку


Ты видимо что то не так делаешь, в каждую ничего сказать не надо, сделай общую зависимость у всех таргетов
Нужна практика! 1329 2344816
Всем добрый вечер. Начал недавно изучать плюсы по самоучителям, получается без подсказок решить простые примеры из тех же самоучителей, но я считаю, что этого очень мало. Подскажите, как и где можно начать реальную практику плюсов, какие задачи решать? Есть ли смысл пробоваться в какие-нибудь пулл-реквесты на гитхаб? Те, кто шарят, пожалуйста, подскажите.
1330 2344817
>>344816

>какие задачи решать?


Напиши что-нибудь полезное.

>Есть ли смысл пробоваться в какие-нибудь пулл-реквесты на гитхаб?


Нет.
1331 2344906
>>344543

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


Дай угадаю - у тебя шиндовс?
1332 2345009
>>344906
именно, в принципе понятно что это из-за управляющих символов, не понятно почему разные результаты
1333 2345023
>>345009
Сочетание символов \r\n тебе о чем-то говорит?
1334 2345090
>>344543

>Получается что в текстовом режиме каждую новую строку в первом случае прибавляется два символа, во втором только один.


Все так. Под виндой перевод строки кодируется двумя символами.
1335 2345115
>>345090

>Под виндой перевод строки кодируется двумя символами.


Понимаешь, что пишешь?
12847065343377.jpg6 Кб, 207x186
1336 2345370
Массив для постоянных значений используют, а вектор для переменных?
1337 2345371
>>345370
Нет.
1338 2345377
>>345371
Вектор - усовершенствованный массив?
1339 2345379
>>345377
Нет.
1340 2345380
перекатывайте
иначе последствия.....
1341 2345397
>>345380
Перекатывай.
1343 2346317
>>344816
напиши впо которое будет делать что-то полезное
1344 2347942
>>342981
Toptal еще работает с разработчиками из этой страны или прикрыли лавочку из-за санкций?
drake3250 1345 2387118
https://rsdn.org/article/cpp/stl.xml
стоит ли учить stl по этому руководству?
1346 2387121
https://rsdn.org/article/cpp/stl.xml
стоит ли учить stl по этому руководству?
sage 1347 2388587
>>343405

>бизнес любит тишину



Бизнес любит пиар, подписчик четких пабликов в вк хуев
Тред утонул или удален.
Это копия, сохраненная 5 августа 2022 года.

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

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