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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
2 1336875
Ребятa, а что более верное?
переменная в void main()
a=5+2
где "а" это левое, а 5+2 это правое?
либо тут "а" это тоже правое, а левым считаются только глобальные переменные?
3 1336883
>>36875

>void main()


int main. void main нет уже лет 30

>где "а" это левое, а 5+2 это правое


если ты про lvalue и rvalue, то lvalue это все, что может быть помещено слева, а rvalue - справа. Если a=5+2; компилируется, то да a - lvalue. 5+2 очевидно, rvalue.
4 1336889
>>36883

>void main()


Спасибо) просто запутала инфа, где говорится, что временная переменная, которая умирает после того как функция заканчивается, не может быть левым
это сложно понять было для меня
5 1336906
>>36889
Не путай rvalue и rvalue reference
rvalue - это все, что может быть справа от присваивания. Вообще все.
lvalue - это все, что может быть слева от присваивания. Тоже вообще все.
Ссылки обычно lvalue - то есть если ZZ у тебя ссылка (void yoba(int& ZZ)), ты можешь написать ZZ=238 и ничего тебе не будет

А rvalue reference - это ссылка, которая, в отличие от обыкновенной lvalue ссылки ты не можешь написать ZZ=238. В этом смысл - rvalue reference это такая ссылка с ограничениями.

Нужно это, чтобы можно было семантически показать, что твоя ссылка - ссылка на временное значение, которое можно уничтожить при желании. Как-то так.
6 1336907
>>36883
a может быть справа. Rvalue это то, от чего нельзя взять ссылки.
7 1336929
>>36875
Сам оператор + возвращает rvalue.
a = b + c;
выражение (b + c) в целом тоже будет rvalue, даже если b и c были lvalue, то есть не получится скомпилировать
b + c = a;
8 1336959
>>36883

>lvalue это все, что может быть помещено слева, а rvalue - справа


Самое колхозное объяснение из всех, что я видел.
>>36889

>временная переменная


Бессмысленный набор слов. Временными бывают объекты.
>>36906
Слишком толстый троллинг тупостью.
>>36907

>Rvalue это то, от чего нельзя взять ссылки.


Следующее по колхозности объяснение.
>>36929

>Сам оператор + возвращает rvalue.


Кстати, в стандарте об этом ни слова.
9 1336961
>>36959
Аутист-вахтер приперся. Держи в курсе о своем охуенно ценном мнении.
10 1336963
>>36961
Этот колхозник порвался, несите следующего.
11 1336966
>>36963
Я, в отличие от тебя, объясняю просто и понятно, а ты предпочитаешь выебываться, но не писать нихуя по существу, потому что знаешь, что сам напишешь хуйню.
У тебя претензии кроме как "колхозно" есть? Нет? Ну и пройди нахуй.
12 1336967
>>36959
а своего объяснения ты так и не дал
13 1336968
>>36961
Это конкурирующий совхоз, не обращай внимания.
14 1336969
>>36966

>Я, в отличие от тебя, объясняю просто и понятно


Это тебе от скудоумия кажется.
>>36967

>а своего объяснения ты так и не дал


И чо?
15 1336970
>>36969

>Это тебе от скудоумия кажется.


Пруфы моего скудоумия. Если ты считаешь, что на >>36875 нужно отвечать каким-то другими словами, то это пруф того, что ты аутист (не способный в социальный контекст) и вахтер (зашел в тред похамить и рассказать о том, какой ты у мамы самый умный). А вот пруфов моего скудоумия у тебя нет, потому что ты тупее меня.
16 1336975
>>36959

>в стандарте об этом ни слова


В стандарт я конечно лезть не буду.
Но где может храниться результат a + b кроме как во временном объекте, который и есть rvalue? если конечно + не переопределен В a записывется? или может быть в b?
17 1336978
>>36970

>Пруфы моего скудоумия.


Ты не в состоянии воспринимать пруфы, т.к. скудоумен.

>ты аутист (не способный в социальный контекст)


Я же написал. Колхозное объяснение. Это и есть социальный контекст. Объяснение от селюка для селюков.

>вахтер


Заметь, ты первый перешёл на личности (в >>36961), не я в >>36959. Так что иди отсюда тушить свою колхозную сраку, пока сеновал не поджёг.
>>36975

>В стандарт я конечно лезть не буду.


>Но где может храниться результат a + b кроме как во временном объекте, который и есть rvalue?


Все знают, что это prvalue. Но стандарт об этом не говорит явно. Хотя обещает во введении к выражениям рассказать про value category каждого оператора и требования к value category его операндов.
18 1336985
>>36978

>Все знают, что это prvalue


нууу, я всегда был не такой как все...
19 1336987
>>36978

>Ты не в состоянии воспринимать пруфы, т.к. скудоумен.


Засливан.

>Я же написал. Колхозное объяснение. Это и есть социальный контекст. Объяснение от селюка для селюков.


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

>Заметь, ты первый перешёл на личности


В чем проблема говноеда назвать говноедом?

>Все знают, что это prvalue


Лол. Охуенная аргументация продолжается - ВСЕ ЗНАЮТ.
>>36975

>Но где может храниться результат a + b кроме как во временном объекте, который и есть rvalue


А кто тебе сказал, что a+b обязательно должен возвращать временный объект? https://ideone.com/Ze5lsY
Не должен.
20 1336988
>>36975

>во временном объекте, который и есть rvalue?


Кстати да, никаких временных объектов там нет.
21 1336993
>>36987

> токсичный


Сорян, ты не колхоз оказывается, а колхоз_ка.

>В чем проблема говноеда назвать говноедом?


Для меня ни в чём, а вот для тебя проблема — ты сорвался в истерику с первого сообщения.

> https://ideone.com/Ze5lsY


Колхоз_ка, читай внимательно:
>>36975

> + не переопределен

22 1337007
>>36987

> возвращать временный объект


Что по-твоему значит "возвращать временный объект"? То, что в выражении у return будет временный объект или что (a+b) будет временный объект?
23 1337009
Парни, а можно когда пишите "ты не прав" кому-то, прикреплять верный вариант или свое мнение? было бы полезно почитать и вникать
15389160059571.jpg32 Кб, 420x434
24 1337018
>>36959
>>36975
>>36978
>>36987
Поехавшие. Оператор + может возвращать хоть void, хоть мой хуй. Особенно переопределенный.
25 1337021
>>37018
Мы тут изначально говорили про встроенный.
Только селюк, чтобы продемонстрировать, как он хорошо разбирается в контекстах, полез понтоваться переопределёнными операторами.
26 1337024
>>37018
Ну ебана, позырь с чего началось >>36875

>a=5+2


У него там int подразумевается. Какой void? Зачем переопределенный?
27 1337029
>>36875
>>36883
>>36906

https://habr.com/ru/post/322132/

Третий раз эту хуйню сюда кидаю. Скоро пора будет в шапку добавлять.
28 1337030
Ребята, можно тлдр да/нет
я С++ учу 1.5 месяца по официальным MS-курсам
сейчас я на теме "функция" и прошел только ее перегрузку, я не проходил перегрузку операторов
и так, могу ли я леджит пока воспринимать левое и правое как
а=b+c где "а" это левое а "b+c" правое?
29 1337031
>>37029
Архива тредов-то нету
30 1337033
>>37030

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


>а=b+c где "а" это левое а "b+c" правое?


Именем колхоза, разрешаю тебе.
31 1337034
>>36993

>Сорян, ты не колхоз оказывается, а колхоз_ка.


Ого, мамин альтрайт.

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


Конечно, когда говноеду говорят, что он говноед - это истерика. Ведь не может же говноед оказаться говноедом. Он же на двач всех хуесосить пришел.

>Колхоз_ка, читай внимательно:


Читать внимательно что, что все знают?
Оператор у встроенного типа вообще ссылку не возвращает, он возвращает значение. Вроде бы доебка, но ты же самый правильный хуесос, который читал стандарт.
32 1337036
>>37034

>Оператор у встроенного типа вообще ссылку не возвращает, он возвращает значение.


Он вообще ничего не возвращает, т.к. это не вызов функции. Даже концептуально.
Screenshot2019-01-2822-52-58.png29 Кб, 904x265
33 1337038
>>37036
Блядь.
34 1337048
>>37038
Так я и думал, что ты это кинешь.))))

Читай https://timsong-cpp.github.io/cppwp/n4659/over.built#1 и ссылки оттуда внимательно.

[over.built] используется только когда хотя бы один из операндов имеет не-встроенный тип. И используется только для overload resolution, для выбора встроенного оператора. Сами же эти операторы не вызываются даже концептуально.

> These candidate functions participate in the operator overload resolution process as described in [over.match.oper] and are used for no other purpose.



1. Для встроенных операторов не применяется [over.match.oper]
https://timsong-cpp.github.io/cppwp/n4659/over.match.oper#1 :

> If no operand of an operator in an expression has a type that is a class or an enumeration, the operator is assumed to be a built-in operator and interpreted according to Clause [expr].


2. Даже когда [over.match.oper] применим и какой-то из операторов из [over.built] выбран, срабатывает "used for no other purpose", который в том числе означает, что эти операторы даже концептуально не вызываются. Т.к. вызов функции это уже other purpose, а не overload resolution.
1548706153746.jpg49 Кб, 700x522
35 1337049
Поясните плиз за tcp сокеты.
Вот есть например сокет. Я зная его адрес и порт, могу отправить на него что нибудь, например текст, да? То есть пишу фукцию отправки, и текст ведь сразу оказывается на сокете? То есть на его стороне этот текст уже можно считать? Или нужно сначала как то открыть этот сокет?
36 1337050
>>37048

>1. Для встроенных операторов не применяется [over.match.oper]


* для встроенных типов
38 1337055
Плюсоёбы во всех смыслах
39 1337056
>>37055
В каких ещё всех? Нарываешься?
40 1337058
>>37056
Ебатели языка "плюсы" доебались до оператора "плюс" и ебутся
41 1337064
>>36906

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


А зачем это нужно? Чисто для удобства чтения кода?
42 1337070
>>37007
При наличии перегрузки операторов у тебя может возвращаться что угодно (и это очень удобно). В случае отсутствия перегрузки операторов у тебя, как тебе написали до меня, возвращается prvalue.

int yoba(int i) {return 5;}

yoba(5) = 5; можно написать? Нет. Но не потому что возвращается временный объект, возвращается просто rvalue. То, что я писал тут >>36906 , не путай rvalue и rvalue reference.

У встроенных операторов типы а-ля int operator+(int, int) и так далее.

В целом, не еби мозг, занимаются каким-то левым дрочем, а потом оказывается, что С++ сложный. Вся эта хуйня нужна только только того, чтобы понимать, как работает RVO, NRVO и move-семантика. От того, что ты это знаешь лучшим программистом ты не будешь. Но, возможно, какой-то аутист не назовет тебя колхозником потому что иммолейт импрувед.

>>37064
В основном для move-семантики, то есть чтобы работало быстрее. Сравни vector::push_back и vector::emplace_back. В первом случае будет создано больше лишних объектов, а втором ты компилятору говоришь, что помести в вектор то, что я тебе дал и мне это уже не нужно. В этом случае он сможет обойтись без лишних копирований.
Так же без этого весьма геморройно использовать unique_ptr - его же копировать нельзя, а что-то с ним надо делать.
1548707548058.jpg38 Кб, 400x400
43 1337071
>>37070
Если честно, не совсем понимаю, что делает vector::push_back и почему в его случае будет создано больше объектов. И не могу оценить прибавку в производительности, потому что не знаю, сколько времени выполняется данная команда.
44 1337079
>>37048
Падажжи. Так "все знают, что результат a + b это prvalue", или эти операторы не вызываются даже концептуально?
45 1337083
>>37079

>Так "все знают, что результат a + b это prvalue", или эти операторы не вызываются даже концептуально?


Ты так спрашиваешь, как будто эти 2 утверждения друг другу противоречат.

Для a и b не-классовых и не-enum типов (например, если оба — int) [over.built] вообще не применяется.
Так что считать то, что в [over.built] приводится `LR operator+(L, R)` для арифметических типов доказательством того, что a + b это prvalue для int a, b не получится.
46 1337092
>>37083

>Ты так спрашиваешь, как будто эти 2 утверждения друг другу противоречат.


Именно так. Результат a+b это не prvalue, это ничто. Вызова-то нет, значит нет и результата. Например
int i = (5+3)/(5+3) может быть скомпилировано в int i = 1. Какой результат у +? Никакого. Это просто ноды в AST.
Поэтому они были вынуждены добавить такую клозу - мол, чуваки, типы у нас такие, но вообще вы этого не видели.
47 1337101
>>37071

>Если честно, не совсем понимаю, что делает vector::push_back и почему в его случае будет создано больше объектов


На самом деле не всегда. В зависимости от того, есть ли у твоего объекта move-конструктор, copy-конструктор, временный ли твой объект сам (а-ля push_back(Yoba()) - это за счет оптимизаций может вообще с одним вызовом конструктора решиться), или постоянный, а еще от реализации push_back. Я всех тонкостей не помню и каждый раз беру принты и смотрю, как оптимальнее в моем случае. Последний раз такое было пару лет назад, потому что редко, знаешь ли, подобные вещи бывают бутылочным горлышком.
Это так хуйня, из-за которой С++ считают сложным языком, а на практике с тонкостями проще на месте разобраться.
48 1337103
>>37092

> Результат a+b это не prvalue, это ничто. Вызова-то нет, значит нет и результата.


Откуда этот радикализм?
Литералы, кроме строковых, это prvalue (https://timsong-cpp.github.io/cppwp/n4659/expr.prim.literal)
`5` — это вызов чего? Хотя бы притащи что-нибудь из [over.built].

Или ты считаешь что раз вызов функции с нессылочным возвращаемым типом это prvalue, то любое prvalue должно быть вызовом функции с нессылочным возвращаемым типом?

> Поэтому они были вынуждены добавить такую клозу - мол, чуваки, типы у нас такие, но вообще вы этого не видели.



Нет. Я видел обсуждение где пытались про отсутствующее описание свойства (не value category) одного встроенного оператора сказать, что оно не отсутствует, а следует из [over.built], на что был дан ответ от мембера комитета что для случая встроенных типов [over.built] не применяется и фиксить надо [expr]. Хочешь верь, хочешь — нет.
49 1337104
>>37092

>Это просто ноды в AST.


Вызов функции это тоже ноды в AST)))
Аноним 50 1337186
нихуя у вас страуструп
51 1337212
>>37103
>>37092
>>37083
>>37079
>>37070
>>37048

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

Допустим, я смотрю на выражение (a + b) как на возвращающее результат, по аналогии с функцией.

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

Или же это просто спор о том, что в чорном ящике происходит?
image.png11 Кб, 1171x68
52 1337218
>>37212

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


https://timsong-cpp.github.io/cppwp/n4659/over.built#14
https://wandbox.org/permlink/w5MpwseMmHithwnv поменяй #if 1 на #if 0
53 1337235
>>37212

>Или же это просто спор о том, что в чорном ящике происходит?


В чорном ящике, которого нет.
54 1337247
>>37049
tcp по идее сперва нужно открыть. udp позволяет слать сразу, но в любом случае на другой стороне у тебя должен висеть слушатель.
55 1337358
>>37101
А что такое принты, напомни пожалуйста.
56 1337360
>>37247
А слушатель - это кто? Функция какая то?
И на сокет данные в каком виде приходят? Это же вроде как просто поток единиц и нулей, то есть слушатель должен будет ещё и дешифровать все это сам?
image.png215 Кб, 750x558
57 1337424
Почему эта книга такой ёбнутой цены стоит?
58 1337532
Вот создал я tcp сокет. Как мне вернуть его адрес и порт? Какой функцией? Читаю доку Qt, но там почему то нет такой функции.
59 1337543
>>37532
А унаследованные функции смотрел? И не проще тсп сервер и клиента использовать?
60 1337565
>>37543
А обычно между сокетами данные не отправляют, да? Только с сокета на сервер?
И вообще, клиент ведь может несколько сокетов делать для связи с сервером, или так лучше не делать? А закрывать их надо руками или они сами? Как несколько сокетов вообще влияют на производительность?
61 1337574
>>37565
Почему с сокета на сервер? У сервера тоже есть сокет, не так ли?
62 1337581
>>37574
У сервера hostAddress. Который мы прописываем для сокета клиента, чтобы он читал с него данные. Так ведь?
63 1337585
потому что здесь и сейчас
у них нет будущего
женщины на это ведутся
им нужны эмоции
64 1337595
>>37585
Оставь этот тред крестоблещащий,
Динамикой дщерь соблазненная.
1548790122865.PNG54 Кб, 1413x762
65 1337616
Аноны, помогите. Код на пикче. Вроде бы все просто, ошибок никаких нет. Но почему то после сборки постоянно пишет "Программа неожиданно завершилась". И хуй знает, почему.
Опытным путем, закомменчивая строки, выяснил, что это из-за 19 строки. Но в чем проблема там - хз.
66 1337627
>>37616
server->serverPort() у тебя возвращает число. Попробуй заменить на QString::number(server->serverPort()).
Да и зачем комментить строки, запускаешь в режиме дебага, оно тебе само breakpoint поставит на том месте, где программа крашится. И call stack посмотреть можно будет.
67 1337630
>>37627
Я итак в режиме дебага запускаю, но почему то нихуя не показывает. В консоли сборки пишет, что процесс завершился успешно. В выводе приложения пишет хуйню с пика.
68 1337631
>>37627

> server->serverPort() у тебя возвращает число. Попробуй заменить на QString::number(server->serverPort()).


Не помогает. Да и в примере, в котором я смотрел код, все так же. Даже если я возьму код оттуда и заменю им свой, все равно будет писать "Программа неожиданно завершилась". Пиздец какой то. Для Qt Creator такие ситуации - это норма?
1548793674024.PNG78 Кб, 1594x859
69 1337657
>>37631
Короче, понял, как запускать отладку.
Какой то read access violation у меня.
Алсо, сервер создается, но IP адрес у него почему то 0.0.0.0.
В описании QTcpServer::serverAddress() написано Returns the server's address if the server is listening for connections; otherwise returns QHostAddress::Null. Почему серверу присваивается нулевой адрес, если у меня listen прописан?
70 1337686
Мне вот интересно, зачем у типов битность.
short — целевой тип будет оптимизирован по размеру и иметь ширину не меньше 16 бит.
long — целевой тип будет иметь ширину не меньше 32 бит.
long long — целевой тип будет иметь ширину не меньше 64 бит.

Это только для совместимости с архитектурами систем?
То есть long long будет выдавать ошибку в системе виндовс х32?
71 1337692
>>36773 (OP)
Hello world плюсики, вот ненавижу я ебаться с любими символьными задачами еб их мать, таки заставили.
В общем есть текстовый файл e.g любая книга там, нужно парсить на слова. Слово — набор символов по правилу a-zA-zА-яа-я0-9 разделенных любым не !правило символом e.g word space (пробел), запятая, да что угодно. Пытаюсь именно через fsanf сделать, красиво то бишь, таким образом fscanf(отсюда,"%[a-zA-z\u0401\u0451\u0410-\u044f\u0430-\u044f]s",сюда);
Если в файле первое слово на инглише -- распознается оно целиком и на этом все, я подозреваю что функция в цикле одно и тоже слово распознает, то есть не переключается на поиск следующего как при fscanf(pIn,"%s",pBuf);. Если в файле первое слово на руссцком то распознается только до первого мелкого символа и тоже стопорится на первом слове. Есть вариант именно через fscanf сделать распозвнование слов ?
72 1337693
>>37686

>тип будет оптимизирован


>тип будет иметь ширину


> ...


Это все зависит от архитектуры и компилирования. По - идее можешь хуй класть, а можешь запариться и все сделать красиво.
sage 73 1337714
>>37692
Hello world плюсики
В общем есть тарелка, оттуда надо есть суп.
Пытаюсь именно ножом есть красиво, но он режется.
Есть вариант как именно ножом поесть супа?
74 1337721
>>37692

>именно через fscanf


Причем тут плюсики?
75 1337786
>>37686

>То есть long long будет выдавать ошибку в системе виндовс х32?


Нет, схуяли?
массивы ы 76 1337837
памагите
77 1337865
>>37786
А всякие uint_64 зачем?
78 1337866
>>37786
А в чем тогда смысл
79 1337902
Зачем учить почти мертвый язык, на ХХ несколько вакансий, где нужен опыт от 3 лет, как сюда можно вкатится и возможно ли это?
image.png1,4 Мб, 2018x2228
80 1337910
Аноны, есть ли какой-то гайд на подобии пика, чтобы были расписаны сферы использования плюсов и необходимые знания для работы в этих сферах? Сейчас уже пол года изучаю язык, и внезапно остановился, потому-что хуй знает что вообще дальше делать, ибо в учебных пособиях расписано практически одно и то же, а что учить дальше я понятия не имею из-за недостатка опыта. Сейчас вот змейку консольную сделал. Мне лично интересны нейросети но у нас курс по ним начнется только через год. Стоит ли сидеть и учить самому, или это сфера в которую лучше не лезть без профильных знаний?
81 1337969
>>37910
Тот, кто достаточно опытен, чтобы запилить подобный гайд, подобной хуйней заниматься не будет.
Берешь не сильно крупный опенсорс с гитхаба и пробуешь пофиксить любой баг из issues. Попробуй сам, не получится - напиши мейнтейнерам.
Альтенратива - пилить пет-проекты самому, хуже.

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


Учи питон теперь, хули

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


Это, конечно, проблема, ведь если ты начнешь изучать сам, это тебе только помешает и тебе пиздец
82 1337977
>>37902
студентов в вузах чаще всего учат на сишке и крестах
потом часть из них идет работать за еду во всякие нии, геймдев и прочую парашу
так и живут крестобляди
83 1337979
>>37977
Крестобляди ОЧЕНЬ легко работать на западе. Потому что кресты являются унылым говном вообще везде, поэтому джоны учить кресты не хотят. А тут ты такой молодой и красивый
84 1338005
>>37721
>>37714
Ясно, ну хули от вас еще ожидать было. Ералаш ебаный
85 1338007
>>37714
Хотя этот прав на самом деле, я всегда такой хуйней маюсь, хз почему мне это доставляет.
86 1338010
>>37979
на швятом западе
дааа
87 1338021
>>38010
Ну, факт. Я через кресты вкатился и сейчас пишу на них процентов 20 времени. А кому я был нужен со стандартным стеком? Никому
88 1338256
>>38021
Если не секрет в какой области работаешь?
89 1338260
>>38256
deep learning в основном
90 1338268
>>37910
Это сфера в которую нужно лезть, дома ты ничего на научишься, таких материалов в широком доступе просто нет и у всех своя специфика. Если ты хочешь вкатываться в с++, то заимей базовые знания математического анализа и дискретной математики, чтобы хотя бы задания понимать тестовые и пробуй устраиваться.
91 1338270
>>38260
Бля как же грустно осознавать что такое проходит мимо, и я никогда не смогу туда вкатиться..
Удачи тебе анонче.
92 1338279
>>38270
хули мимо, серьёзные языки учит 3.5 человека, 90% ит скота пробует вкатиться в веб, потому что он дико распирен всякими барыгами курсов, здесь же вкатиться более реально
93 1338286
>>38279

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


Распиарен потому, что отбить вложеннок бабло гораздо проще. Вакансии на веб исчисляются просто тысячами в радиусе 10км от меня, например.
А что я буду представлять зная с/с++? Кроме этого требуют еще чуть ли не PhD по матану чтобы вкатиться, либо 100500 лет опыта.
Рад за тебя анон, если не пиздишь.
94 1338291
>>38286

>вложенное


быстрофикс
95 1338304
>>38286
У меня вакансии исчисляются десятками, соискателей конечно тысячи. По с++ вакансий в два раза меньше, чем по php, но не мало, по java вакансий почти в два раза больше, чем по php. Если у тебя тысячи, то по с++ будут тысячи/сотни тебе мало? Я с C# устраивался, когда было 3 вакансии на весь город и все с опытом, а ты тут ноешь. Требования ты преувеличивешь, они тебе кажутся завышенными, потому что ты нихуя не знаешь, ты поучи, что в требованиях написано и поймёшь, что они вполне адекватные и минимальные. Распиарен, потому что на курсах зарабатываешь больше, чем в офисе макакой.

Вообще в программировании ты нахуй никому не нужен, будущее программистов весьма хуёвое, оно будет напоминать сегодняшнего водителя. Поголовная автомобилизация, все пользуются машинами, всё доставляется машинами, всё перевозится, каждый чих, каждый пук, стопку из 300 листов А4 возят целый день по городу, сумасшедший дом, всем нужны машины, без машины никуда. Но вместе с тем почти каждый человек с яйцами имеет права и может управлять машиной, в результате чего водители имеют маленькую зп и хуже червя пидора, конечно если это не водитель какого-нибудь полковника, который сам майор или быть может это водитель какой-то йоба-строительной техники, которой умеет управлять 1 человек на 100 000. Вот и с программистами будет так же, ты станешь нахуй никому ненужной обслугой, которой, как грязи, бизнес никогда не позволит, чтобы ему рабочий класс диктовал какие-то условия.
Программисты дорогие? Наплодим тысячи программистов, чтобы рыночек порешал. В таких жёстких условихя в это говно либо нужно не вкатываться вообще, либо вкатываться так, чтобы быть программистов-майором у какого-нибудь полковника на подсосе, либо программистом, который знает ебалу, которую знает 1 человек на 100 000. Вот и выбирай что тебе учить.
96 1338307
>>38268

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


Неправда, есть опенсорс, который сам по себе лучше 90% коммерции. Не сам код, а соответствующая тусовка - мейллисты и т. п. У меня был наставником один из разработчиков Swift, например.
Сделай один хороший пуллреквест куда-нибудь, и работа у тебя в кармане, при чем сразу на позиции мидла.

>>38286

>Распиарен потому, что отбить вложеннок бабло гораздо проще


А в работе охранником отбить вложенное бабло еще проще.
В этом и прикол, что сюда идут только те, кто может пройти зефирный тест. Сама по себе работа как работа. В реакте например я так и не разобрался.
97 1338309
>>38304

>Программисты дорогие? Наплодим тысячи программистов, чтобы рыночек порешал.


Но это невозможно. Результат такой политики виден в Индии, плодят, плодят, да нихуя наплодить не могут.
98 1338317
>>38309
Ну так наплодили и их продуктами пользуется весь мир и бизнес с этого поимел сверхприбыли, потребитель тоже доволен, потому что по нему прошлись рекламой, он и не знает, что ест говно и можно иначе, наоборот рад и просит ещё. Понятно, что индусами ты серьёзных вещей не сделаешь, но для львиной доли рынка серьёзные вещи и не нужны, ит продажи строятся на том, чтобы внушить потребителю, что ему нужен этот продук, хотя на самом деле нет, это касается не только консумеров, но и энтепризе.
Всё держится на объёбе, и это на самом деле хорошо, благодаря этому объёбу работа хотя быть есть.
99 1338336
Аноны, что лучше учить после Шилда, вкатываться в QT или STL библиотеку? Продолжил обучение плюсов пока что книгой "Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ Скотт Майерс", но там не поясняют за то, что делают новые фичи в плюсах, а говорят как их юзать. Я лох в английском(но работаю над этим), поэтому не могу вкатиться в англ книгу(ждать пока не выучу англ до уровня чтения спец литературы не вариант). Есть что-то на русском про новые стандарты?
100 1338338
>>38336
Читай STL, иначе большая часть советов из современной книги будет тебе просто не понятна.
101 1338342
>>38304

>программистом, который знает ебалу, которую знает 1 человек на 100 000


Хочу это.
Ты имел ввиду с/с++?
chay-smeh-kompyuter193488144orig.jpg31 Кб, 400x400
102 1338353
>>38307

>есть опенсорс, который сам по себе лучше 90% коммерции


>опенсорс лучше 90% коммерции


>опенсорс


>лучше коммерции


>опенсорс


>лучше

103 1338354
>>38307

>наставником


Что значит наставником? Где их добывать? На гитхабе?
104 1338355
>>38353
Посмотри исходники винды на досуге
105 1338364
>>38354
Я тебе раскрою страшную вещь, но за опенсорс не платят, поэтому там нужно быть полным бесполезным долбоебом, чтобы тебя не приняли. Если ты полезен проекту, тебе будут помогать - объяснять какие-то вещи, ревьюить твой код, пока он не станет нормальным для пуллреквеста, и так далее. Естественно, нужно уметь в гайдлайны проекта - если ты пишешь код на уровне laba1.cpp, то конечно тебя нахуй пошлют.
Стыдно вспомнить, но я git rebase научился пользоваться именно после матюков.
Возьми проект, не сильно большой (там много бюрократии и ты нахуй не нужен - профессионалы на зарплате сидят коммитят), не сильно маленький (там два васяна годами пилят то, что хотят), короче тысяч 5 коммитов, с нетоксичным мейнтейнером (короче он не должен посылать нахуй с обсуждениях), по интересной тебе теме, зайди в issues и посмотри, что ты можешь пофиксить. У любого проекта на С++ ДОХУИЩА багов типа "здрастьте я юзер, я пукнул когда луна была в юпитере и у меня выпал сегфолт", который всем просто лень фиксить. А дело там скорее всего в паре строчек, и что кому-то лень фиксить, а для тебя принятый пуллреквест и строчка в authors.txt
У меня еще такая хуйня была, юзаю библиотеку с BSD-лицензией, в ней баг, который решен в виде пуллреквеста и висит год. Я на этот баг напоролся, охуел, но в общем наткнулся на этот пуллреквест. Ну и хули, написал автору, мол, давай я реквесты принимать буду, а то очень нехороший баг, а ты забил на свою репу, и теперь я мейнтейнер с правом приема пулреквестов. А автор этот член комитета стандартизации С++.

Только не участвуй во флеймах и прочей токсичной поеботе. Если такая хуйня начинается, лучше смени проект.
106 1338384
>>38364

> А автор этот член комитета стандартизации С++.


Так чем закончилось в итоге?
Поебались? Он пригласил тебя в свои СШП в качестве молоденького супруга? Рассказывай, не томи.
107 1338420
>>38364
Спасибо! Огромное!
Я вот просто без задней мысли, зашел на гитхаб, и нашел кое-что по душе - игру из юношества моего :)
Чуваки пилят форк.
image.png11 Кб, 498x117
108 1338432
>>37657
Доставь код из main.cpp.
Утром проверял код с пикрил, у меня всё работает.
109 1338435
>>37657
Блин, не надо ничего из main.cpp) Я кажись догадался. У тебя statusLabel не создан, а ты берёшь и по указателю пытаешься что то в него поместить. У тебя даже в отладчике написано это в списке справа "statusLabel 0x0".
110 1338530
>>37657
че за IDE
111 1338535
а С++ объектно-ориентированый язык?
112 1338541
>>38530
Очевидный QtCreator
>>38535
Страуструп говорил что нет. Мультипарадигменый.
113 1338586
>>38435
Бля внатуре похоже так. Чувак, приду домой, проверю, если починится, я тебя расцелую
114 1338596
>>38535
он как хорошая жена - ночью в постели как шлюха, но на людях сама скромность!
Безымянный.png31 Кб, 1134x740
115 1338673
Програмач помоги бля ! Почему ругается как исправить ? Нихуя не пойму !
116 1338683
>>38673
Убери равно, поставь вокруг строки круглые скобки.
117 1338691
>>38683
Чёт не помогло, но проблему решило то после того как я поставил квалификатор const в конструкторе. НО всё равно не пойму почему, в GDB всё работало с первоначальным кодом.
118 1338692
>>38691
Литералы это конст чар.
119 1338726
Начал разбираться с OpenGL и хочу задать вопрос: какого хуя всё так сложно то. Один ебучий треугольник нарисовать 120 строк кода. Кто уже освоил, скажите, вам по началу сложно было или я один такой тупой?
120 1338734
>>38726

>Один ебучий треугольник нарисовать 120 строк кода.


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

>вам по началу сложно было


Первый раз все сложно. Самое сложное там не программный интерфейс, а понимание компьютерной графики.
121 1338753
Нужно шарить в Машине Тьюринга/Макарова/Поста, чтобы быть нормис программистом?
122 1338755
>>38753

>Макарова


Маркова
фикс
123 1338769
>>38753
Нет, зачем?
124 1338780
>>38435
Работает, анончик, вот тебе котятки.
Теперь осталось разобраться, почему айпишник нулевой присваивается.
125 1338787
>>38753
Нет, это для глубокой теоретической информатики. Даже в теории алгоритмов сейчас вместо тьюринга в качестве абстрактной машины используют рам-модель.
126 1338840
>>38734

>копипастишь или оборачиваешь в либу


А почему это сразу не завернули в опен жл?
Больжедор 127 1338842
Когда мне нужен массив всегда юзаю вектор, разве это плохо?
128 1338844
>>38304

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


Плохая аналогия. Программировать в принципе могут не все, а нормально программировать - вообще очень маленький процент населения. Даже с нынешним наплывом вкатывальщиков, рыночек все равно всех проглотит и добавки попросит. Прогресс постоянно подкидывает новую работенку. Например, кто пятнадцать лет назад думал об ML и Data Science за пределами академий?
Больжедор 129 1338847
>>38304

>водитель


>программист


На мой взгляд ты жопу с пальцем сравниваешь.
130 1338848
>>38840
Потому что есть десятки чуть других способов вывода треугольника, и большинство из них нужны.
131 1338851
>>38847
Ну какой-то здравый смысл есть. Я тоже раньше думал, что вот начнут массово детишек в школе питону учить, и тети сраки в бухгалтерии пдф-ки будут скриптом склеивать, а с базой будут на SQL работать. Кодинг-то не такой сложный вроде бы. Хуй. У большинства людей мозги не так повернуты, чтобы даже в визуальном редакторе ноды соединить правильно. Какой-то гайки в голове не хватает.
Больжедор 132 1338852
>>38851

>Какой-то гайки в голове не хватает.


Даже без этого жопа с пальцем, как сравнить официанта и инженера-геолога. А с этим так вообще.
Screenshot1.png31 Кб, 801x336
133 1338859
Что значит, если NULL == 0? Когда NULL == 0, а когда не равен 0?
134 1338861
>>38842
ем супы только с эклерами вприкуску
разве это плохо?
135 1338862
>>38859
В крестах вроде всегда равен по стандарту. В сишке - нет. Были какие-то компиляторы для древних архитектур, где ненулевое значение.
136 1338863
>>38859
Думаю он имел ввиду что использование NULL не всегда является однозначным, и если тебе нужен именно нулевой указатель, то в С++11 появилось специальное ключевое слово, которое гарантированно означает то, что тебе нужно.
137 1338864
>>38852
У него сравнение в том смысле, что все водить умеют, но не каждый водитель. Как все писать умеют, но не каждый писатель. Вот так же и с программистами, все будут уметь кодить, но за деньги кодить будут или макаки или профессора.
image.png722 Кб, 960x720
Больжедор 138 1338865
>>38861
У Страуструпа было написано используйте вектор везде где только можно в книге. Погуглил, даже в презентации он это сказао. Последняя строчка. Ну чем он плох? Это ж удобный безопасный массив, с ним не надо ебаться, как можно быть против?
Больжедор 139 1338866
>>38864
Тогда я его понял неправильно вообще, лол.
140 1338867
>>38859
>>38862
Даже если NULL не задефайнен в 0, должна вызываться f(int). Он же превращается после препроцесса в целочисленный литерал. Откуда неоднозначность?
141 1338868
>>38753
можешь их накодить на плюсах, будет весело
легко проверять их, скармливая упражнения из академических учебников..
142 1338869
>>38865
Зачем нужен ненадежный вектор, инвалидирующий все поинтеры в случае аллокации, когда есть божественная дека, лишенная этого недостатка и в качестве бонуса дающая спереди?
143 1338872
>>38869
Что за дека?
144 1338874
>>38872
std::deque
Больжедор 145 1338875
>>38869
У деки другой смысл, рандом акссес за О(н), речь о том, что чем плохо вместо массива вектор юзать всегда. Деку вместо массива не поюзаешь.
146 1338876
>>38867

>Откуда неоднозначность?


Неоднозначности нет. Есть вариант, что ты хочешь вызывать f(void), но у тебя где-то заинклудится и вызовется f(int) и выстрелит тебе в ногу. С nullptr такой проблемы нет.
147 1338877
>>38875
Извиняюсь за подпись, хотел посмотреть что за поле имя и забыл.
148 1338879
>>38875
А как работает вектор, напомните? Он же дает произвольный доступ к элементам, но при этом может менять размер?
149 1338880
>>38869

>рандом акссес за О(н),


Разве? Там же вроде массив указателей на субмассивы одинакового размера. То есть сначала ищется указатель на субмассив (за O(1)), а потом в нем элемент по индексу.
150 1338881
>>38859
>>38867
Сейчас проверил. Если написать f(NULL), компилятор ругается на двусмысленность. Видимо в современных компайлерах NULL в какой-то имплементейшон-дефайнед тип задефайнен, что кастуется как в int, так и в поинтер.
151 1338882
>>38881
В gcc это некий __null
152 1338883
>>38879
Обёрнутый в удобную упаковку с ручками динамический массив. А недавно один умный чувак сказал мне, что я ебанат и зачем использовать вектор, когда достаточно обычного массива, но как же ручки, потом безопасность и тд. Непонятно.
153 1338884
>>38867
NULL где-то может быть за- или пере- дефайнен вообще не в int

>>38876
Тогда может появиться неоднозначность в подборе функции.
154 1338886
>>38879

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


Да. Но ты не можешь хранить указатели на элементы вектора. При увеличении размера он может аллоцировать память, и перемещать элементы туда. С декой - можешь (если не удаляешь элементы из середины).
155 1338888
>>38880
Ну там от реализации зависит, либо вставка за О(н), либо доступ, мне когда двусторонняя очередь представляется как-то не понимается, откуда там должен быть рандом аксес, положь в конец, положь в начало, возьми с конца, возьми с начала и тд.
156 1338889
>>38881
У меня нормально работает, студия 17
158 1338892
>>38888
По стандарту и вставка, и доступ за конст.
159 1338893
>>38883

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


От ситуации зависит. Если тебе надо выделить на стеке пяток интов, то вектор действительно глупо использовать.
160 1338894
>>38886
С динамическим массивом та же херня будет по идее, не?
161 1338895
>>38886
А зачем тебе указатели на его элементы?
162 1338896
>>38892
В деке как структуре зависит от реализации. И по мне так то, что в деке как структуре возможен рандом аксес бред немного.
163 1338897
>>38894

>С динамическим массивом


Что такое "динамический массив"?
164 1338898
>>38893
Почему? Разве он настолько много жрёт?
165 1338899
>>38895

>А зачем тебе указатели на его элементы?


Чтобы обращаться к ним через указатель, а не по индексу.
166 1338902
>>38897
Массив с переменным размером?
167 1338904
void* - указатель на тип воид или указатель типа воид?
168 1338905
>>38899
А по индексу тебе не нравится?
169 1338906
>>38898

>Почему? Разве он настолько много жрёт?


Он аллоцирует память в хипе, а это может быть дорого даже на современных машинах.
170 1338908
>>38906
Что значит дорого? А надо все в стеке делать? С хипом лучше не связываться?
171 1338909
>>38906

>это может быть дорого даже на современных машинах.


Ясно, ну похоже это ответ, я думал это давно уже не проблема.
172 1338910
>>38904
Вообще особая штука. Указатель на что угодно, но в арифметике ведёт себя как char*.
173 1338912
>>38905

>А по индексу тебе не нравится?


Тем, что указатель самодостаточен, ты можешь передать его куда-нибудь, сохранить, а с индексом для обращения к элементу нужен еще и сам вектор.
174 1338914
>>38912
Ну по мне так странно требовать этого после реаллокации, с декой-то там блоками хуярится.
175 1338917
>>38908

>Что значит дорого?


Что лучше очень часто не вызывать.

>А надо все в стеке делать? С хипом лучше не связываться?


Если функция часто вызывается, то лучше маллок в ней не делать.
176 1338920
>>38917
А если аллоцировать, а потом подчищать сразу?
177 1338923
>>38920
В два раза хуже сделаешь.
178 1338924
Почему компилятор при дебаге иногда выдает переменным значения, отличные от тех, которые выведет cout? Всё дело в процессах, которые выполняются в рантайме?
179 1338927
>>38924

>компилятор при дебаге


Почти квантовая поебень, наблюдение начинает влиять на ход эксперимента.
180 1338930
>>38923
Чому???
181 1338932
>>38930
Ну так ты время тратил на каждое выделение, а теперь ещё и на каждое освобождение будешь тратить.
g.png426 Кб, 600x630
182 1338934
>>38920
Представляешь примерно, как аллокатор общего вида работает? Он менеджит дохрена памяти, должен обращаться периодически к ОС, не допускать фрагментации, ходить по куче всяких списков и тд. И так каждый раз при вызове malloc или free. Маллок тут, маллок здесь на каждой операции программы - вот и просраны миллисекунды, медленно переходящие в секунды при длительной работе.
Если тебе нужна память именно на куче - выдели её один раз для твоей операции, и освободи в конце программы.
183 1338935
>>38927
То есть дебаг говно без задач и остается чекать все через сиауты?
184 1338937
>>38932
А, так дело во времени? А я думал, вся проблема в трате памяти.
185 1338938
>>38935
Конечно нет, просто относись спокойно к спецэффектам, вот без дебага было как: в двух тредах мютекс лок мьютекс анлок, тыц тыц, в cout выводит mutex1 mutex2 mutex1 mutex2, нормально, а с дебагом то же самое mutex1 mutex1 mutex1 mutex2 mutex1 mutex2 полный рандом.
186 1338939
>>38883
Если под обычным массивом он подразумевал int yoba[], то он тоже ебанат, потому что обычный массив в С++ называется std::array.
А так вектор хорош в 99% случаев, еще 1% он плох, но в 99% из этого процента это будет преждевременной оптимизацией. Так что не парься.
187 1338941
>>38912

>Тем, что указатель самодостаточен


Пока твой вектор жив.

>а с индексом для обращения к элементу нужен еще и сам вектор.


И это хорошо, потому что если вектор мертв, то он не жив
188 1338942
>>38938
Что за мьютекс?
189 1338945
>>38939

>под обычным массивом он подразумевал int yoba[]


Его, тк я переспрашивал мб стд аррай? , да и вот с std::array хуета, пушо один хуй аллокация будет хотел сказать я, но да погуглил, std array на стеке целиком, прикольно, век живи век учись. Спасибо двач.
190 1338946
int i{} = int i() и.т.п ?
191 1338948
>>38942
Да такая специальная залупа для передачи управления между тредами как я понял, вот у тебя прога в одном треде работает, потом хоп мьютекс лочит тред и всё, а в другом треде ожидание пока он разлочится и хоп, захватился этим и тд, погугли, он сам за себя говорит.
192 1338949
>>38948
Мьютекс один на несколько тредов или у каждого треда свой?
193 1338950
>>38946
Нет. Попробуй
int i();
std::cout << i;
А потом гугли the most vexing parse.
194 1338952
>>38942
Mutual Exclusion. Штука, которую может "захватить" только один тред. Используется для того, чтобы в любой момент времени только один тред владел какими-то данными или исполнял какой-то код. Остальные, обычно, ждут, пока мьютекс разлочится, чтобы захватить его самим.
195 1338954
>>38946
int i(); это функция с именем i возвращающая тип int. Если хочешь вызвать дефолтный конструктор, пиши int i;
196 1338956
>>38949
Не помню, это был разовый эксперимент в винапи, я гуглил и походу разбирался как сделать, наверное общий, но наверное может быть и больше, там какой-то ололо интерфейс был, как связать тред и мьютекс или типа того. Погугли.
197 1338958
>>38950
У меня и там и там 0 получился.
198 1338961
>>38954
Я хочу инициализировать "i" нулём.
199 1338962
>>38952
Это что то типа Fence в Directx 12?
200 1338974
>>38937

>А, так дело во времени? А я думал, вся проблема в трате памяти.


Маллок - это системный вызов, а они медленные. Медленные - это верхний порядок в районе несколько сотен тысяч вызовов в секунду, когда все процессорное время чисто на маллоки будет уходить. Если функция нечасто вызывается, то можешь не париться вообще.
201 1338978
>>38962
Никогда не работал с directx. Судя по диагональному прочтению, fence - штука, позволяющая ждать и объявлять определённые события. Эти скорее больше похоже на conditional variable или Events.
ЕМНИП в "Соверменных Операционных Системах" Таненбаума (или в любой книге про многопоточное программирование) описаны все основные примитивы синхронизации потоков.
202 1338980
>>38974

>Маллок - это системный вызов


Не обязательно. Он может вызвать какой-нибудь VirtualAlloc/sbrk, а может и не вызвать.
203 1338984
>>38980

>Он может вызвать какой-нибудь VirtualAlloc/sbrk, а может и не вызвать.


Там кроме этого еще мьютекс как минимум.
204 1338986
>>38984
Кстати да, не подумал об этом. Но я думаю аллокаторы держат маленькие арены отдельно для каждого треда, чтобы избежать слишком частого дёрганья этого глобального мьютекса.
205 1338990
>>38986

>Но я думаю аллокаторы держат маленькие арены отдельно для каждого треда, чтобы избежать слишком частого дёрганья этого глобального мьютекса.


Не получится. Ты можешь вызывать маллок в одном треде, а фри в другом. Как минимум фри синхронизировать придется.
206 1338999
>>38726
Я так на DirectX11 пока рисовал треугольник чуть не пизданулся. Посмотрел, какой охуенный треугольник получился, и дропнул это дело.
207 1339047
>>38954

>Если хочешь вызвать дефолтный конструктор


У int нет никаких конструкторов.
208 1339048
>>38935

>То есть дебаг говно без задач


Нiт, это твой код говно
209 1339049
>>38910

>Указатель на что угодно, но в арифметике ведёт себя как char.


Арифметика с void
невозможна.
210 1339050
>>38867

>Даже если NULL не задефайнен в 0, должна вызываться f(int). Он же превращается после препроцесса в целочисленный литерал.


С разморозкой, начиная с C++11 NULL может быть определён как nullptr, который к целым числам не преобразуется.
211 1339051
>>38896

>В деке как структуре зависит от реализации.


А может всё-таки от требований стандарта?

>И по мне так то, что в деке как структуре возможен рандом аксес бред немного.


Максимум может быть амортизированное константное время доступа.
image.png23 Кб, 1065x227
212 1339102
Это снова экволибрист-аутист, хелло плюсики, выхожу на связь. В это раз мне уперлось заставить тренарный оператор выполнять cout. Я знаю что ему от меня нужно ebala() желаетльно с возращаемым значением, ну хули я сделаю - то. Может я его как - то неправильно употребляю ?
213 1339103
>>39102
Скобки расставь
214 1339104
>>39102
Вместо false потому будет тот же cout но в fstream.
215 1339106
>>39103
Какие ?
216 1339107
>>39102
Хотя стоп. Тут не в скобках дело.
Типы с любыми скобками будут несовместимыю
image.png16 Кб, 757x187
217 1339112
>>39107
>>39106
>>39103
>>39102
Отбой, вроде удалось наебать.
218 1339123
>>38726

> Один ебучий треугольник нарисовать 120 строк кода.


Пиздабол. Именно просто нарисовать с уже готовым всем остальным в однус троку можно. Матрцы проекции/хуекции в случае с трекгольником 2D, хуйня то бишь. А вообще OpenGL проебал дайрект иксу от мелкомягких где - то в 90 - ых, ну ты понял.
219 1339124
>>38734

> а понимание компьютерной графики.


Двачую этого люто.
220 1339128
>>39112
b ? std::cout : std::cout << "hui pizda";
221 1339130
>>39128
Не, пространство имен у меня жестко прописано. Суть в том что cout не возвращает значения вот и все, приходится, в данном случе, принудительно спрашивать.
222 1339135
>>38780
Раз уж я взялся тебе помогать, в функцию listen(const QHostAddress &address = QHostAddress::Any, quint16 port = 0) по умолчанию передаются переменные QHostAddress::Any значит, что прослушиваться будут интерфейсы IPv4 и IPv6. Для IPv4 будет прослушиваться адрес 0.0.0.0
Если передать нулевой порт, будет автоматом выбран любой свободный порт, что у тебя и происходит.
1577219safeartist-colon-yakovlev-dash-vadprincess+celestiaa[...].png4,2 Мб, 1668x2220
223 1339142
До этого упарывал питон и немного js.
База - циклы, ветвления etc js списана с си, как пони.
Но что за хуйня идёт дальше? Указатели, ссылки?! Куда не посмотришь, теперь эти звёзды в кошмарах снятся.
Может кто посоветовать литературу, которая бы играла роль вазелина при переходе на си с более высокоуровневых?
цппдрисня.png7 Кб, 1246x59
224 1339158
>>39142
Си в другом треде. Вкатится в дцппшную ебанину до последнего стандарта нужно иметь железное очко и крепкие нервы. Если тебя уже звезды напрягают то лучше беги не оглядываясь, глупец.
225 1339166
>>39142

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


http://wg21.link/std17
226 1339264
>>39166
мозг
227 1339266
>>38999
А мог бы сохранить его в отдельном классе и рисовать потом несколько треугольников.
228 1339267
>>39135
Спс.
image.png140 Кб, 1423x841
229 1339287
Аноны, может кто подсказать в чём проблема с Соилом? В инете о нём нихуя нету, его будто вообще никто не использует. При попытке вкинуть в проект файл SOIL.c выдает 100 ошибок, что где-то в библиотеке gl.h нехватает скобок
230 1339293
>>39287
Либу подключи, либо скомпилируй.

А вообще - stb_image
image.png40 Кб, 1425x236
231 1339300
>>39293
Либа подключена, пересобрал ее по гайду для своей студии. Вроде всё на месте. Мне подобные ошибки давало когда я только glad и glfw3 подключал, но там решалось всё вкидыванием файла glad.c в проект. А тут при вкидывании SOIL.h выдает пик.
Я так понимаю файлы где-то конфликтуют, но уже час ебусь и не пойму где.
232 1339301
>>39293
поддвачну stbi
234 1339323
>>39112
А почему нельзя cout << (expr ? "something" : "") << endl; ?
Нихуя у тебя и не получается, потому что обе ветви тернарного оператора должны иметь один и тот же тип. Или хотя бы быть приводимы друг к другу, если не ошибаюсь.
235 1339327
>>39142
Скроллил треды /pr, случайно упоролся по С. Захожу и сюда иногда, планирую в последствии вкатываться в плюсики.
Никакого дальноидущего плана, просто для души и по приколу.

>Указатели, ссылки?!


Детские какульки по сравнению с сопроматом, играючи просто.
bhrt.jpg5 Кб, 200x200
236 1339333
>>39158

>дцппшную ебанину

237 1339363
>>39266
Слабо трифорс на direct x
238 1339364
>>39327
А что не так с сопроматом в с++?
239 1339365
Пользовался ли кто данной ECS приблудой?
https://github.com/skypjack/entt
Если да, то как вам по сравнению с аналогами, не завалялся ли пример какой-нибудь "змейки" с использованием.
240 1339371
>>38865
Не слушай шизиков.
241 1339372
>>39300
Там есть какая-то ебанутость, что хедеры опенгла и винды надо подключать в строго определенной последовательности. Погугли эту тему
242 1339373
>>39371
Охуел Страуструпа шизиком обзывать?
243 1339375
>>39373
я про шизиков, которые деку советуют. Страуструп прав.
244 1339395
>>39051
std::deque реализация двусторонней очереди, двусторонняя очередь может быть на списке двойном сделана, там за о(н) доступ и я это считаю правильным, потому что это блядб двусторонняя очередь, какой нахуй рандом аксес, ты очередь видел вот люди в очереди стоят, чтобы добраться до 5 человека нужно пролистнуть пять и добраться, а так получается мы тупо берём пятого в ней и делаем с ним чтото, пока другие стоят и ждут. Беспредел.Сделелали бы отдельную хуету типа std::block_list и там соглы, никаких вопросов, а так бредово.
245 1339398
>>39372
Да я уже stb_image скачал. А так эту хуйню я и сам заметил, там из-за ебанутых #ifndef порядок важен очень, иначе часть либы не подключиться и будет миллион ошибок. Я ебал в рот эти ресурсы по опенглу, на сайте висит книга которая должна быть копией сайта, но при этом там разный материал
246 1339413
>>39135
Слушай, а сервер ведь только один порт слушать может одновременно? То есть экземпляр QTcpServer? А если я хочу несколько клиентов обслуживать, то мне надо будет несколько QTcpServer-ов инициализировать?
247 1339433
>>39413
На одном порту может висеть много соединений с разными клиентами
248 1339437
>>39433
А как сервер будет отличать разные соединения? Ну вот например у клиента два сокета, на одном командные сигналы, через другой данные отправляются. А на стороне сервера все на один порт приходит. Еще и от других клиентов то же самое. И как серверу различать эти разные данные?
249 1339440
>>39398
А тебе именно OpenGL нужен? Есть SFML - плюсовая обёртка на SDL, что, в свою очередь, сишная обёртка над OpenGL.
Я сейчас тренируюсь прогать именно на этой штуке, куда проще, чем опенгл + на оффсайте хорошие примеры.
r00220010702mul0102.gif3 Кб, 403x306
250 1339443
>>39437

>А как сервер будет отличать разные соединения?


Посмотри структуру пакета TCP. По source port'у клиента он будет отличать.
Вообще почитай Танненбаума Компьютерные сети как художественную литературу, книга толстая, но за неделю такого чтения все вопросы отпадут.
251 1339447
>>39443
То есть сервер должен заранее знать, на каком порту что идет?
Таненбаума не люблю, у него слишком хуевая структура книг. Как будто ее студенты писали копипастом за зачет в семестре.
252 1339461
>>39447

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


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

Но на дворе 2019 год, люди сидят с ноутбуков через вайфай самолета, летящего по разным странам, а все это происходит через TOR. Делать при таких условиях stateful протокол, в котором у тебя что-то зависит от IP клиента - хуевая идея. IP клиента может меняться хоть каждую секунду.
Тебе нужно делать stateless протокол, в котором клиент посылает сообщение, где каждый раз идентифицирует себя каким-то идентификатором сессии и затем описывает что именно он посылает.
А еще лучше не выпендриваться и взять готовое решение типа http или вебсокетов.
253 1339464
>>39461

> Тебе нужно делать stateless протокол, в котором клиент посылает сообщение, где каждый раз идентифицирует себя каким-то идентификатором сессии и затем описывает что именно он посылает.


То есть слать по одному соединению все? И команды, и данные?
254 1339480
>>39464
Конечно. Клиент должен посылать сообщения, каждое сообщение должно содержать в себе
1. Версию
2. Идентификатор сессии
3. Размер данных
4. Сами данные
Данные в свою очередь могут состоять из команды+параметры или же кусок файла, в самимости от заголовка этих данных.
Первое сообщение должно запрашивать у сервера идентификатор сессии. Далее если даже соединение разорвется или у клиента сменится IP, клиент его восстановит и продолжит

В зависимости от типа данных протокол желательно сделать текстовым - то есть версия это просто набор буквоцифр, затем пробел, затем сессия в виде набора буквоцифр и так далее. С самими данными сложнее, если они могут быть текстовыми (то есть в них отсутствует символ \0), лучше слать текстом, который завершится символом \0 и это будет концом сообщения, иначе придется выкручиваться за счет поля с размером. Само поле лучше оставить в любом случае, потому что парсеры бывает ломаются, и так у тебя будет больше шансов понять, что там случилось.
255 1339495
>>39480
А вообще есть смысл использовать TCP, если использоваться будет только локалка, или проще все через файловую систему запилить?
256 1339498
>>39495
В 2019 году нужно использовать HTTP(S) и пилить REST API.
В это даже роутеры могут.
257 1339504
>>39498

> HTTP(S)


Это же интернет-сайты, нет?
258 1339506
>>39504
HTTP отличный протокол практически для всего, кроме тяжелого реалтайма.
259 1339512
>>39506
Тяжелый реалтайм - это как? Несколько тысяч клиентов?
260 1339523
>>39512
Тяжелый - который серверу и клиенту тяжело поднять, поэтому приходится ебать байты.
261 1339524
>>39523
Почему тяжело поднять? Не совсем понял.
262 1339526
>>39440
SFML - это никаким боком не обертка над SDL, а отдельная реализация схожих вещей на плюсах в академичном ООП. SDL - это не обертка над OpenGL, а лишь одна из частей этого, причем не обязательная. Что ты вообще пишешь.
263 1339540
>>39524
Ну епт, для роутера и сервера на 666 ядер тяжелый реалтайм это разные вещи, не догадываешься?
Правило простое, если HTTP тебе хватает, используй HTTP. Если же это для тебя выливается в большие траты на железо (например, ты ютуб), выдумывай что-то еще.
264 1339541
>>39540
Еще для игр везде предложи http использовать.
265 1339543
>>39541
А чем игры отличаются, школоигротрон? В точности такое же правило.
266 1339547
>>39543
Тем, что для только небольшого количества типов игр подойдет http (вебсокеты).
изображение.png7 Кб, 377x374
267 1339551
>>39547

Мужики, объясните, почему при таком объявлении длинны массива и самого массива int будут утечки памяти.
1549043582376.webm3 Мб, webm,
540x960, 0:11
268 1339553
>>39540
Ну ладно, спасибо тебе за советы, анончик. Держи няшу.
269 1339554
>>39551
мужиком ты становишься когда приносишь вываренный череп врага в родную деревню, вечером все закатывают вечеринку, жарят свинью на костре, и под бой барабанов ты идешь ебать свою ровесницу в вигвам или че там они строили
270 1339556
>>39547
ничего что вебсокеты не работают поверх http?
271 1339557
>>39551
Зачем тебе длина в виде указателя на инт?
272 1339558
>>39554
Мужик это крестьянин
273 1339560
>>39556
Ничего, это просто как альтернатива приведено.
274 1339561
>>39547
Только там где требуется низкая задержка не подойдет, там проще UDP срать. И я про это писал
275 1339562
>>39560
В играх же UDP юзают?
276 1339563
>>39558
Мужик - это без наколки крестов или петухов.
277 1339564
>>39554
Вже...
278 1339565
>>39553
Фу таким быть
279 1339567
>>39557
Для проверки выхода за пределы массива.
280 1339570
>>39563
В тюрьме то же значение практически, простой рабочий человек, не блатной и не петух.
Мужик это НЕ воин, как ты написал тут >>39554
281 1339571
>>39563
Ты сильно промахнулся. Из какой ты пещеры вылез?
282 1339572
>>39562
Зависит от игр, на серваках часто udp и его реализации eNet там.
283 1339574
>>39567
То есть это указатель на конец массива? Тогда нахуя ты его называешь длиной.

length пишется так, а не lenght
Судя по коду утечек может и не быть, хо
284 1339575
>>39567
Так и к чему тебе там указатель на инт, а не просто инт?
285 1339576
тя хуй знает что ты там наворотил в реалзации
286 1339578
>>39562
UPD юзают где гарантии доставки не нужны. Как правило они не нужны там, где малость задержки важнее корректности. Поэтому я написал про реалтайм
изображение.png17 Кб, 460x631
287 1339579
>>39575
Привычка, понятное дело, что нету смысла.

>>39574
Мне сегодня препод объяснял, что нужно как я понял через прибавление, то есть сначала создаём int, затем ему значение ноль присваиваем, не адрес, а именно значение.
288 1339583
>>39579
Ну так создаешь длину массива как int, потом при добавлении элемента в массив этот int++, наверное это он тебе говорил. Не указателя на int.
289 1339584
>>39579
Как у тебя Length->GetValue компилируется, если это указатель на int? Ты согласованные скрины кидай хотя бы.
Я утечек не вижу, в конструкторе 2 new, в деструкторе 2 delete.

Наверное, если в конструкторе Length->GetValue кинет исключение, то утечет память Lenght, но учитывая общую говняность кода этим можно пренебречь.
290 1339585
Бля, какая залупа эти стандарты С++11, вроде не тупой, но нихуя не понятно
изображение.png76 Кб, 1342x768
291 1339588
>>39583

>потом при добавлении элемента в массив



ШО? Это же не лист или вектор, тут сначала надо вычислить длину, а потом уже создать количество инт, равное длине.

>>39584
Да, вот.

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



Почему? Подробности плес.
292 1339591
>>39585
Используй старые.

/thread
293 1339592
>>39565
В смысле?
294 1339596
Если у меня функция нихуя не проверяет и не выбрасывает ошибок, то её нужно помечать как noexcept?
295 1339597
>>39585
Попробуй modern effective c++ что-ли почитать. На сам деле новые стандарты делают многие вещи гораздо проще.
296 1339598
>>39588

>Почему? Подробности плес.


-1. Самописный массив место стандартного. Но ты, допустим, учишься (чему?)
1. _Int и _Char вместо темплейтов
2. Указатель на int вместо int
3. Общая бессмысленность - Cls_Value_Int - это нахуя? Хранить интегер в куче просто так?
4. lenght вместо length

Стиль тоже так себе, мне не импонирует. Почитай там саттера и александреску "101 хуйня про С++"
297 1339600
>>39597
Я и старый то не совсем понимаю. Вот auto где применять и в каких случаях он полезен?
298 1339601
>>39600
vector<int>* yoba = new vector<int>(5, 3)
vs
auto yoba = new vector<int>(5,3)
299 1339603
>>39596
Wrong hole.
Нужно смотреть не саму твою функцию, а где она будет вызываться.
300 1339604
>>39600
Везде где только можно, он гарантирует что переменная определена.
301 1339606
>>39601
А, понел, типа чтобы два раза не писать vector или любой другой класс?
302 1339609
>>39598

>Самописный массив место стандартного.



Что ты под этим подразумеваешь? Да, учусь. Я это пишу ещё и потому, чтобы не копировать многократно обработку этого цикла, просто создать и использовать готовые методы с нужными проверками, которые я также прописал в функциях.

>темплейтов



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

>Общая бессмысленность - Cls_Value_Int - это нахуя? Хранить интегер в куче просто так?



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

Последнее опечатка же.

Стиль такой, чтобы не запутаться, не люблю стены текста с огромным количеством вложений.
303 1339610
>>39606
Да. Особенно в шаблонах приятно так делать
//T - некий контейнер типа вектор
template<typename T> yoba(T x) {
auto a = t.begin();
}
вместо
T::forward_iterator a = t.begin(); // ну или как-то так
304 1339613
>>39610
Круто. А такая запись ничем не чревата?
305 1339618
>>39609

>Что ты под этим подразумеваешь? Да, учусь.


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

>опять же для удобства, иногда бывает надо напрямую получить доступ к переменной в классе, а делать 100500 set и get явно плохой вариант.


Не вижу связи, как тебе класс-обретка для инта поможет в этом
306 1339619
>>39613
Ну, это называется вывод типов и иногда он может быть чреват - худшей читаемостью кода либо тем, что ты думаешь, что тип один, а компилятор вывел другой. Drink responsively
307 1339621
>>39619
То есть лучше писать по старинке?
308 1339622
>>39619

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


Навел мыщку на имя и сверился со своими думами.
309 1339623
>>39621
Пиши как удобно
310 1339626
>>39622
Особенно в коде типа
template<typename T> yoba(T t) {
auto a = t.begin();
}
311 1339630
>>39618

> ну нахуя



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

>Не вижу связи, как тебе класс-обретка для инта поможет в этом



Как минимум не будет мозолить глаза, как класс она приятнее, не шучу.
312 1339632
>>39630

>Чтобы понять зачем это было придумано.


Ну поэтому я поставил это под -1.
Хотя крестовый вектор ты все равно не переизобретешь.

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


Так себе мотивация.
313 1339638
>>39632

В любом случае ты сильно помог мне подсказав про шаблоны, теперь меня ждёт очередной прорыв и сильное сокращение трудозатрат.
314 1339643
>>39638
Почитай дизайн и эволюцию с++, там написано, откуда шаблоны взялись
315 1339647
>>39643
Хорошо, но после Шилдта.
316 1339651
>>39647
Шилдт основной источник говна в твоей голове
317 1339653
>>39651
И кого же рекомендуют просвящённые?
318 1339657
>>39653
Вся проблема С++ в том, что хорошей книги для начинающих просто нет. У Страуструпа тоже говно.
Лично я рекомендую читать Кернигана и Ричи, Дизайн и эволюцию, Мейерса, Саттера, компилировать это все с своей голове и таким образом становиться хорошим программистом. Но это я рекомндую, больше так никто не делал.
319 1339658
>>39657
А может лучше не читать, а больше практики?
320 1339659
>>39657
Дизаен и Эволюция заинтересовала, правда её чот в интернете нету, видать придётся ползти на Удельную или где там книжная ярмарка бывает.
321 1339662
>>39659
Надо чередовать. Если будешь читать то, что сам не переживал, пропустишь мимо ушей. А если дохуя практики, то будешь изобретать хуевые велосипеды уровня 70-х годов.
322 1339664
>>39659
В интернете есть, посмотри где-нибудь на торрентах, раз правообладатель везде анально огораживает все
323 1339667
>>39657
По моему скромному мнению, надо изучать от С к С++ дабы хотя бы понять, зачем что-то было внедрено в него.

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

>>39664
На рутракере глядел, не нашёл, может плохо смотрел, ведь мне нужна Русская версия, а там есть ещё и на оригинале, видимо программист, не знающий англ языка это нонсенс, а ведь он меня так раздражает.
325 1339694
>>39688
Благодарю
2222222.png19 Кб, 551x165
326 1339719
Ебаная магия
327 1339722
>>39719
Напомните, чем (в данном случае) отличаются auto и decltype(auto) ?
328 1339724
>>39722
авто по правилам деклтайпа выводит
Screenshot5.png20 Кб, 640x214
329 1339726
>>39722
вот оттуда же
330 1339731
>>39323
Потому что в зависимости от условия мне нужно чтобы выполнялся cout или что - то другое (в данном случае вывод в стрим), не ужели это не понятно из скрина, вот жеж пишу >>39104 ? Вот как тут можно увидеть что я пытаюсь вывести то или иное в зависимости от условия ?

>Нихуя у тебя и не получается


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


Во - первых получилось уже, во вторых, то о чем ты пишешь это следствие из того что перед оператором обычно становится return/переменная и тд куда он отсылает либо первое значение либо второе, то есть в первую очередь значения должны быть, ну а по типам там уже в завимиости от того куда отправляю, типы можно и свои какие угодно нарисовать.
331 1339737
>>39731
Я канешно извеняюсь...
Но еб твою мать, если в зависимости от условия нужно что-то выполнять или не выполнять, то у меня для тебя хорошая новость:
В язык добавлена конструкция специально для таких случаев, она называется оператор if.
332 1339743
int yoba = 1;
yoba ? (cout << "peka", 0) : 0;

Господи, помилуй мя грешнаго
333 1339745
Сиплаплас не нужно нах
1271003239.png112 Кб, 736x736
334 1339749
>>39743
Запятую хоть перегрузил?
335 1339753
>>39743
Ох уж эти копролюбители тернарных операторов.
336 1339755
>>39731

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



Потому что твой ебаный код - это в точности вот это:
if (flag>0) false;
else cout << "хуйня" << endl;
И значит это, что ты в зависимости от условия хочешь либо что-то вывести, либо ничего не выводить.
А cout << "", ВНЕЗАПНО, ничего не выведет. Охуеть, да?

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


Блядь, ты прикалываешься?
Может, ты сначала почитаешь про тернарный оператор и больше не будешь писать в своем коде такую хуйню?
Оператору ?: вообще насрать, что перед ним ставится, хоть ничего ему не ставь. Ты в курсе вообще, что ты можешь написать true ? void : void ? Это оператор, блядь, у него аргументы должны быть приводимы, а не левая сторона выражения. Если тернарный оператор вернёт строку, а ты попытаешься присвоить ее переменной типа int, ты получишь совсем другую ошибку.

Почему ты, блядь, не постишь со словами "никампилица" код типа 1 + vector<int>(10)? Или это почему-то для тебя очевидно?
337 1339756
>>39688
>>39643
>>39657

> Страуструп


Как же бесит его стиль изложения, я охуенный, я крутой, я изобрел то, придумал се, а еще я философ, проводил всем вялым по губам в Кембридже и т.д.
Мерзкий уебок с комплексом неполноценности. Уебал бы мразь.
338 1339757
>>39731
>>39755
>>39104
А если уж говорить касательно того, что ты хочешь в зависимости от значения флага выводить либо в консоль, либо в файл, то почему ты ставишь заглушку в виде false?
И если бы ты, опять же, задумался, то почитал бы доки и сделал бы так:
(flag > 0 ? fout : cout) << "текст";
Но ведь это же не говнокод, правда?нет, это тоже говнокод
339 1339762
>>39753
>>39755
>>39757

https://ideone.com/iJvxIr

я все правильно сделал??!
код же компилируется! и запускается!!))
341 1339769
>>39737
Частным случаем описаниея которой является тренарный оператор.
>>39753
Ох уж эти любители писать if ()
{}
else if ()
{}
else {} вместо ??::
>>39755
Я прочитал несколько предложений и мне очень не понравилось, извини, но мне не интересна беседа с тобой о чем - либо.
342 1339771
>>39588

> if(...)


> {


> выражение


> }


> ...


> for(...)


> {


> выражение


> }



Ору.
343 1339779
>>39771
Че, к кодстайлу хочешь приебаться? А я может еще и табами выравниваю, и хуле ты мне сделаешь?
344 1339781
Ребята а может кто-то начинающему на простых словах объяснить что такое указатели * которые работают с оперативной памятью и чето то оттуда берут? не вкурил до конца в чем их бенефит
345 1339783
>>39781

>не вкурил до конца в чем их бенефит


уебвывай тогда с доски
346 1339784
>>39783
пошел нахyй
347 1339785
>>39784
не обязательно писать сюда куда именно ты пошел, главное что с доски съебал.
348 1339786
>>39785
Достойный ответ(стрелки)
Предлагаю закрыть еблище, червяк который почему-то возомнил себя человеком
349 1339787
>>39785
Тянку заведи, вахтер
>>39781
А ты иди нахуй
350 1339790
>>39783
>>39784
>>39785
>>39786
>>39787
Вот тебе ( >>39781 ) пример работы с указателями, не блпгодари.
Автор | >>39783 | >>39785 |

>>39787
Не знаю о чем ты, я аообще мимо на эту доску зашел так как писал про тринарный оператор и сейчас с нее съебу, ИМХО просто писать что ты нихуя не понял при этом не написать что именно и как пытался (что читал, примеры кода), объясните простыми словами про такую очевидно простуи и важную вешь как указатели все равно что заявить о своем умственном недуге, а посему самое эффективное разъяснение это послать нахуй.
351 1339793
Ну если для тебя "бенефит" сложно перевести как "профит", то уточняй. А по сабжу, я не понял в чем их преимущество над обычными переменными т.к больно сложная концепция
типа чем int *a лучше int a
поэтому попросил довольно просто визуализировать ситуацию, где будет применяться указатель, а не обычная хуйня и все, а ты начал вести себя как ебаное животное, и ждать в ответ на свой выпад что-то иное
352 1339796
>>39793
Без указателей ты даже массив a не сделаешь. Указатели первичны, массивы вторичны. a это на самом деле *(a + i). Более того, ты можешь написать i[a], потому что это то же самое. Улавливаешь?
353 1339797
>>39395

>std::deque реализация двусторонней очереди, двусторонняя очередь может быть на списке двойном сделана, там за о(н) доступ


От deque::operator[] требуется не более чем амортизированная константа. Хватит бредить.
354 1339799
>>39793

>Ну если для тебя "бенефит" сложно перевести как "профит",


Борется с соломенным чучелом, молодца.

> Пытался разобраться


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


> т.к больно сложная концепция


> ты ебаное животное


Ясно. Ну иди любой мало мальский полезный АТД организуй без них, ах да, helloworld.cpp же этого не требует, уточняй в следущий раз.
355 1339801
>>39796
Да, щас более менее начинаю , но надо почитать больше про это все
но пока не представляю где я *a напишу вместо обычной
>>39799

> АТД


я уточнял, я писал что начинающий, мне нахуй пока не уперлось их применение там, чего я не знаю
а проходил я только функции и массивы
356 1339802
>>39801
Ладно, я съебываю уже отседа. Если бы ты сразу написал так >>39793 я бы вообще ничего не написал, как - то так.
357 1339804
>>39801
Да везде на самом деле. Есть у тебя контейнер, инвертарь в игре, например, это будет массив указателей на предметы. Ты, не зная, указатели сделаешь массив индексов в некотором глобальном массиве предметов и оно будет работать, но это хуже. То есть

struct Predmet{
void do();
};

далее

struct Chuvak {
vector<Predmet звездочка> karman;
};

либо

vector<Predmet> premdety;

struct Chuvak {
vector<int> karman;
};

В первом случае у тебя будет

Chuvak chuvak;
//... заполняем карманы
(*chuvak.karman[0]).do();

вто втором

predmety[chuvak.karman[0]].do()

Естественно первый способ лучше, потому что ты не привязываешься к какому-то массиву, а указываешь непосредственно на предмет. Но обойтись без указателей можно, поэтому новички и не понимаю, о боже, оперативная память, АДРЕСА какие-то, как страшно жить, лучше по-старинке буду индексы массивов везде передавать, и долго отказываются понять, что это такое.
357 1339804
>>39801
Да везде на самом деле. Есть у тебя контейнер, инвертарь в игре, например, это будет массив указателей на предметы. Ты, не зная, указатели сделаешь массив индексов в некотором глобальном массиве предметов и оно будет работать, но это хуже. То есть

struct Predmet{
void do();
};

далее

struct Chuvak {
vector<Predmet звездочка> karman;
};

либо

vector<Predmet> premdety;

struct Chuvak {
vector<int> karman;
};

В первом случае у тебя будет

Chuvak chuvak;
//... заполняем карманы
(*chuvak.karman[0]).do();

вто втором

predmety[chuvak.karman[0]].do()

Естественно первый способ лучше, потому что ты не привязываешься к какому-то массиву, а указываешь непосредственно на предмет. Но обойтись без указателей можно, поэтому новички и не понимаю, о боже, оперативная память, АДРЕСА какие-то, как страшно жить, лучше по-старинке буду индексы массивов везде передавать, и долго отказываются понять, что это такое.
358 1339805
>>39804

>(*chuvak.karman[0]).do();


Без понтов уже жить не можешь?
chuvak.karman[0]->do();
359 1339806
>>39805
Не мешай педагогическому процессу, пидор.
360 1339817
>>39797
Охуенно ты на double-ended list амортизированную константу сделаешь, да.
361 1339818
>>39817
double-linked
быстрофикс
362 1339819
>>39817
Всем насрать, как ты это сделаешь.
363 1339820
>>39819
Большая разница, если как в stl то амортизированная константа, а если на листе, то О(Н), и пиздец нелогично то, что в очереди(!) сука рандом аксес за О(1). Можно было сделать другую структуру типа список массивов, чем по сути и является std::deque и никаких вопросов не было бы. А так бредово, мы от самой структуры спускаемся к реализации, это как в мапе можно было бы цвет ноды возвращать, эта хуеты не должно быть снаружи, а она как фича выставляется.
364 1339823
>>39820

>как в мапе можно было бы цвет ноды возвращать


Тип мапа это красно-чёрное дерево, что сложного добавить метод , которая бы возвращала цвет ноды, но нахуя? Снаружи это словарь, как и std::deque снаружи двусторонняя очередь, нахуя оставлять рандом аксес операторы, их вообще там быть не должно.
365 1339824
>>39823
Таблетки прими.
366 1339826
>>39823
Ну сука, давайте к стеку operator[] тоже приделаем тогда, а хули. Короче бред пиздец.
367 1339827
>>39824
Хуетки. И приму, нехуй мне тут напоминать, ясно тебе? Если я шизик это не значит, что я неправ и у меня нет чувства вкуса, чувства прекрасного. А приделать operator[] к очереди полнейший пиздец.
368 1339828
>>39827
Довен, двусторонняя очередь уже есть — это std::list
Там никакого operator[]
369 1339829
>>39828

>двусторонняя очередь уже есть — это std::list


Это двусторонний список, блядь. По твоему мне зря в вузе структурами данных мозг ебли?
370 1339830
>>39828
И блядь как по твоему deque расшифровывается? Сука тупой.
double-ended queue
371 1339831
>>39829
Двусвязный.
фикс
372 1339832
>>39830
Ну и где там запрет иметь random access?
373 1339833
>>39832
Нигде, на листе тоже никакого запрета нет, ебашь пожалуйста за О(Н) перебирай, если ебанат такой. Это сука очередь, её смысл в том, что ты не можешь в середину залезть и вытащить что-то оттуда или положить что-то туда, она не предназначена для этого, блядь.
374 1339834
>>39832
В стеке и queue тоже нет запрета, хуле бы не влепить туда operator[], ну а чё, нормальная же тема.
375 1339835
>>39829

>Это двусторонний список, блядь. По твоему мне зря в вузе структурами данных мозг ебли?


Структурами может не зря ебли, но зря не ебли логикой, поэтому ты вышел дебилом.

Двусторонняя очередь это абстрактное понятие в виде требования к набору операций (заталкивание и доставание элементов спереди и сзади), и это в std::list есть.

std::deque создавали в том числе ради рандом эксеса.
376 1339836
>>39834
Это не контейнеры, а врапперы - ты можешь захотеть врапнуть лист, например, поэтому у них интерфейс ограничен.
Дек же это контейнер, то, что он расшифровывается как-то похуй
377 1339837
>>39835
Блядь, лист это лист, дека это дека, это разные вещи, в лист ты можешь вставлять в середину, например, дека не для этого.
378 1339838
>>39836
И что? По умолчанию там дека как контейнер используется, если лист поставил в темплейт параметре сам еблан и тд Оп
379 1339839
>>39837
Я тебя удивлю, но в стеке процессора есть рандом акцесс, например
380 1339840
>>39838
Ох уж эти аргументы ad eblanum.
381 1339842
>>39836
Опять же это только с точки зрения цпп они врапперы, а так та же дека враппер для листа или массива.
>>39839
Ну так а нахуй он там, это ничего мне не доказывает, стек это стек, в нём не должно быть рандом аксес или это уже не стек, а мутант ебучий какой-то.
382 1339843
>>39829

>По твоему мне зря в вузе структурами данных мозг ебли?


Кароче, единственная твоя претензия что в C++ под названием deque обозначается не то, что было в методичке Урюпинского Заборостроительного. Утёнок as is.
383 1339844
>>39842
С каких это пор интерфейс сущности определяется по тому, что она делать НЕ должна, а не потому, что она делать должна? Есть push и pop - это стек. То, что у стека есть дополнительные функции, не стеком его не делает.
384 1339845
>>39840
Ну так а нахуй тебе явно указывать лист, а потом рассчитывать, что рандом аксес не за О(н) отрабатывать будет. Суть-то в том, что в queue нет никакого рандом аксеса, а в двусторонней с какого-то хуя есть. Пиздец некрасиво, я говорю, ну нужна вам структура с таким функционалом, ну запилите вы какой-нибудь std::list_array или типа того и хуй с вами. Но нет, запилить очередь-не очередь, ибо нам поебать.
385 1339846
>>39842
так та же дека враппер для листа или массива.
deque это полноценный контейнер
386 1339847
>>39843
Моя претензия в том, что это бред, если вы называете что-то очередью, то пусть, пожалуйста, это что-то будет вести себя как очередь, пусть, пожалуйста, у неё не будет методов, которые превращают это во что-то не то, пользуясь особенностью внутренней реализации, не даёт функционала внутренней реализации вовне. Вполне адекватное ожидание, блядь.
387 1339849
>>39847

>это что-то будет вести себя как очередь,


Он ведет себя как очередь, оба метода очереди (запихнуть в конец и вытащить с начала) предоставлены.
У тебя претензии не то что он ведет себя как очередь, а то, что он может вести себя как-то еще. А это хуйня, а не претензия, если бы это было бы проблемой, такой вещи, как наследование интерфейсов не существовало бы. А оно существует в любом языке.
388 1339850
>>39844
Зачем из стека делать что-то большее, чем стек? Блядь, я вижу стек, я читаю стек, я ожидаю, что эта хуета поведёт себя так и только так, как может вести себя стек, мне поебать, что он внутри, а он снаружи мне с какого-то хуя предлагает в косынку сыграть и пиццу заказать мне от него только пуш и поп блядь надо и размер. Понимаешь меня? МЕня
389 1339851
>>39849
Меня напрягает, когда вещи не то(а НЕ ТОЛЬКО ТО это тоже не то) чем кажутся. Такой хуйни не должно быть, сука.
390 1339852
>>39851
То есть ты хочешь нахуй отказаться от полиморфизма. Ну заебись, че.
391 1339853
>>39852
Нет, если ты хочешь сделать деку-со-спецэффектами, то так и скажи класс дека-со-спецэффектами : дека или что там, а это просто хуета, когда детали реализации выносятся наверх и подаётся что это типафича, а на деле хуйня.
392 1339856
>>39853
И именно реализации, только в такой реализации от operator[] на деке есть какой-то смысл.
393 1339859
>>39853
С такой логикой надо из всех контейнеров половину методов выкинуть
394 1339862
>>39853
То есть я понимаю, что такой проёб не просто так, наверняка это какой-то дикий костыль, без которого было бы геморно и похуй, надо так надо, но всё началось с того, что челу норм использовать деку как альтернативу массиву, хотя рандом аксес там торчащий из реализации костыль и ну хуй знает, короче. Так дела не делаются.
>>39859
Неправда, первый раз столкнулся, как правило в стл всё пиздец как чётенько и по делу.
395 1339863
>>39853
Отсутствие оператора [] у списка это тоже детали реализации, вынесенные наверх.
396 1339864
>>39863
Какой-то хуёвый реверс, что значит отсутствие, вынесенное наверх, когда блядь вынести можно только присутствие? Ну да, отсутствие в массиве интов операционной системы это детали реализации, вынесенные наверх. Не неси хуйни.
397 1339865
>>39862
Да никто не воспринимает дек как дабл эндед кью. Точно так же, как никто не воспринимает вектор как вектор из линейной алгебры. Или например std::set это всегда дерево, а никакой не хэш.
Это философия С++ тащемта, абстракции не должны стоить производительности.
398 1339867
>>39865
Я воспринимаю, как бы смысл от них, если они не то, чем они являются, нахуй нужен такой стл где стринг это не строка, например.

>это всегда дерево, а никакой не хэш.


Разница между упорядоченный и неупорядоченный существенна, да и сет/мап это множество/словарь, а не дерево, вот как раз то, что оно дерево это уже реализация, которую нахуй не нужно нам знать и мы её, в отличие от хуйни с декой, и не знаем.

> абстракции не должны стоить производительности


Ну вот может быть, что operator[] там костыль, на котором половина стл держится, уверен, что этому есть причина, иначе бы там не было его.
399 1339868
>>39867

>Я воспринимаю


Ну типа что вектор в линейной алгебре, элемент пространства, по сути упорядоченный гомогенный набор элементов, чем он и является в крестах.
400 1339869
>>39867

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


Тем, не менее, у std::string есть такие методы, как reserve и capacity. Низкоуровневые детали.
>>39868
Вектор в линейной алгебре имеет кучу свойств типа существования vector operator+(vector, vector).
А вектор в С++ это динамический массив
401 1339870
>>39869
Суть передана, всё же понятие вектор есть и в программировании, где оно означает именно крестовый вектор. Вики не даст соврать

>Вектор — (последовательность, кортеж) однородных элементов. Это наиболее общее определение в том смысле, что может быть не задано обычных векторных операций вообще, их может быть меньше, или они могут не удовлетворять обычным аксиомам линейного пространства. Именно в таком виде вектор понимается в программировании, где, как правило, обозначается именем-идентификатором с квадратными скобками (например, object[]).


>>39869
Для стринг это нормально, стринг по сути vector<char> с оговорками.
image.png22 Кб, 353x434
402 1339871
Наверное все спят, но, все же, может мне кто - нибудь объяснить.
Какого хуя First example выводит все слова чторазделены пробелом, то есть проходится по всему файлу а Second example всегда хуячит одно и тоже слово, то есть функция fscanf все время с одной и той же позиции ищет вхождение, но ведь в First example тоже также тогда должно быть, какого хуя там ей понятно что предидущее вхождение нужно скипать и искать следующее пока eof не настанет. Ну что за ебатория - то...
403 1339872
>>39870

>Для стринг это нормально, стринг по сути vector<char> с оговорками.


И для дека нормально
404 1339873
>>39872
В случае с декой, которая чисто программистское понятие, такая хуйня не прокатит. Да пофиг, то, что это костыль это ладно, я не против, а вот то, что этот костыль используется как фича, вот это тупо. Будешь такой код читать, где чел юзает деки вместо массивов и хуеть. И вроде как бы похуй, но вроде как бы и топор-отвертка получается, дрова норм рубит, но сука постоянно этот ебучий кусок отвёртки на обухе в глаза бросается, нахуя он, а потом видишь, как кто-то этим куском шурупы крутит за топор и вообще охуеваешь.
405 1339875
>>39871
Возвращаемое значение fscanf проверяй, довун.
406 1339877
>>39873
Впрочем тот чел с таблетками прав, меня опять на ровном месте понесло с нихуя скорее всего, какая-то мелочь кажется пиздец какой важной, завтра прочитаю и стыдно будет, опять загнался по хуйне.
407 1339878
>>39875
При чем тут возращаемое значение (количество преобразований) ? В первом случае fscan помещает в pBuf слово за слово постепенно с каждой итерацией новое и так до конца файла. Во - втором случае она помещает в pBuf каждый раз первое вхождение (считай первое слово) и все, ни идет дальше. Разъесни почему ?
408 1339879
>>39878

>Во - втором случае она помещает в pBuf каждый раз первое вхождение


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

> Разъесни почему ?


Не может идти дальше. Тупик.
image.png1 Кб, 119x97
409 1339881
>>39879
Ну да, нормально значение только в первый раз заносит, в остальные вообще пусто. Так какого хуя тупик - то ? Я же просто комбинирую и в отличие от первого случая указываю какие символы должны быть в слове, то есть что не выбрасывать, до какого символа читать грубо говоря.
410 1339883
>>39881

>Так какого хуя тупик - то ?


Ты сам создал тупик в виде [A-z].
411 1339884
>>39883
почему тогда в первом случае "%s" не тупик ? в " " указывает то что ищем/получаем так ? "%s" значит до пробела/skip whitespace и чем это принципиально отличается от "A-z" что трактуется как все пока не встретится что - то что не !"A-z" а в комбинации с %s это что - то только до пробела.
412 1339885
>>39884
http://port70.net/~nsz/c/c11/n1570.html#7.21.6.2p8

> Input white-space characters (as specified by the isspace function) are skipped, unless the specification includes a [, c, or n specifier.

413 1339889
>>39885
Ну и хули теперь делать ?
414 1339891
>>39889
Скипай символ, если fscanf фейлится.
415 1339892
>>39891
Как, я уже нихуя логику это срани не понимаю...
416 1339894
>>39891
Пэкспереминтировал, в первый раз эта хуита возвращает 1 (типа че - то нашла) дальше естественно только 0, как тут заставить ее начать искать дальше ...
417 1339895
>>39894
Кароче, бери std::string, читай туда всю строку через std::getline и разбивай по регулярке (std::sregex_iterator)
418 1339896
>>39895
Блядь я использования <regex> и пытаюсь избежать, хуя ты кэп.
419 1339897
>>39896
Хуя ты пытаешься его избежать?
420 1339900
>>39897
Потому что я более - менее знаком с RegExp и для меня какой - то бред использовать его всего то для выделения ебаных слов из файла.
421 1339901
>>39900

>знаком, но использовать не желаю


Пиздец ты дурак, ну так ебись тогда со сканфом, лол.
422 1339903
>>39900
Алсо ты можешь как мудила посимвольно считывать и проверять, что твои ебучие символы попадают в интервал нужный.
423 1339907
>>39903
>>39901
Бля, анон, я сам сейчас проиграл на всю комнату, мне самому буквально 20 сек назад пришло прогонять буфер через sscanf(pBuf, "%[a-zA-Z]",pBuf); ,ебать надо спать идти уже точно. Спасибо тебе все равно, без тебя бы таки забил хуй и пошел бы доставать <regex>
424 1339908
>>39907
Да не за что. Зря ты регексов так чураешься, не понимаю такого. Но пофиг, добра.
425 1339910
>>39908
Согласен, взаимно <3
image.png39 Кб, 512x512
426 1339930
Таки на этом мучения не закончились, чтоб оно неладно...
sscanf(from, "%[a-zA-z]", to) Выводит любое eng слово в любом регистре, в т.ч смешанном, заебок, но, нужно добавить ссаную кирилицу. Пробовал и %[а-яА-я] и %[a-zA-Z\u0401\u0451\u0410-\u042f\u0430-\u044f] в последнем случае выдает все eng-слова, но ебаный русский только в all-capitalize виде "ПРИВЕТ" выведет полностью, а "Привет" только "П", "привет" вообще не выведет, сцука, причем так будет если даже прописать только %[а-я] или %[А-я].

А потом они спрашивают почему я не люблю работать с каким - либо текстом, блядь да потому что это всегда анальная эквилибристика еще и ситуативная, блядь, а не программирование.
427 1339932
>>39930
По факту блядь ну все готово 3k+ строк кода, хуева туча всего, все отлажено и причесано и я сижу и ебусь с ебаным текстом дольше чем не самые простые задачи решать времени. Нинавижу это говно.
428 1339948
Поясните за CMake. Чё эта?
429 1339993
>>39932
>>39930
Покапавшись стало ясно что мозги ебет, кто бы мог подумать, кодровка. Энглишь поэтому норм проходит, а вот русланд хоть и нормально выделяется до пробела, дальше - то я описываю условие через коды в unicode, а текст насколько я понимаю не внем хранится, хотя я пробовал кормить все кодировки. Из больших символов например не распознаются Щ и Ы еще. Ну или я хз....
430 1340001
>>39993
lconv
431 1340040
432 1340214
>>39779

>я может еще и табами выравниваю, и хуле ты мне сделаешь?


Но ведь по-хорошему так и надо.
433 1340230
>>39779
Школьник использует дефолтные настройки IDE - вот это да
434 1340232
>>40214

>Но ведь по-хорошему так и надо.



Сейчас набегут питоношкольники, которым ANSI не указ.
Впрочем, даже у K&R открывающая скобка на одной строке с декларацией.
435 1340233
как сделать свою супер игру на c++ ну скажите как пожалуйста)) где почитать
436 1340235
>>40233
в треде жабопидоров
437 1340237
>>39771
С чего?
438 1340238
>>40233
Два пути — всё с нуля или взять UE4 и сразу начать делать.
439 1340240
>>40238
хочу с нуля..
440 1340247
>>40240
И через десять лет покажешь альфу своей игры.
Учи геометрию, кинематическую физику, OpenGL и GLSL.
И моделирование, без него никак.
И вообще иди в /gd
441 1340259
>>40233
Качаешь опенсорсный движок, компилируешь...
442 1340293
Что можно прикольного поделать с windows api ?
443 1340301
[code]var c++ = Universe.getShit();[/code]
444 1340304
>>40247

>И моделирование, без него никак.


А вот например в пубг все модельки позаимствовали из опен сорса.
445 1340306
>>40293
Не знаю, с помощью хука внедрись в калькулятор, или сообщения элементам окон попосылай
изображение.png152 Кб, 982x541
447 1340486
Чому здесь к плюсам ассоциативность применяется, а к вызовам функций нет?
448 1340495
>>40486
Ассоциативность это a+b=b+a, при чем тут вызовы функций вообще
изображение.png40 Кб, 716x790
449 1340498
>>40495
Нет, это в математике a+b=b+a.
В c++ это другое, см. последнюю колонку в таблице.
450 1340521
>>40498
Ээ, в твоей табличке 4 строка сверху - function call
451 1340523
>>40521
Ну так я и не могу понять.
И плюса и у function call установлена left-to-right ассоциативность.
Почему она игнорится у function call?
452 1340525
>>40495
Это коммутативность
(a + b) + c = a + b + c Левая ассоциативность
a + (b + c) = a + b + c Права ассоциативность
453 1340527
>>40523
Да вроде нет
https://ideone.com/sG0bIi
Существует вообще способ сделать правоассоциативный operator()
>>40525
Точно, я соснул
изображение.png152 Кб, 982x541
454 1340530
Ну давай тогда так.
Почему в твоем примере применяется ассоциативность к (), а на пикрил не применяется, а уже отсылают к порядку вычислений, который не определен?
455 1340531
>>40530
А где тут ассоциативность, если у тебя нет двух operator() подряд?
Тут важен только приоритет операций, а у вызова функции он выше, чем у умноежния и сложения
456 1340534
>>40531

>нет двух operator() подряд?


Нигде не видел такого определения ассоциативности, чтобы требовались подряд идущие операторы.
Везде говорится о том, что ассоциативность разруливает ситуацию, когда встречаются операторы с одинаковым приоритетом.
457 1340536
>>40534
Окей, но в твоем примере и этого нет. Там из списка a++ a-- type() type{} a() a[] . -> только a() и есть.
458 1340537
>>40237
С того, что челик пишет четыре строчки вместо одной.
459 1340539
>>40537
Одну профессионалы не пишут. Надо три:
if (yoba) {
...
}

Две - сраный лисп, одна - студент с laba.cpp
Четыре - чел пришел с паскаля какого-нибудь
изображение.png12 Кб, 776x121
460 1340540
>>40536
Есть четыре оператора вызова.
На одинаковых операторах ассоциативность тоже вроде как должна работать https://en.cppreference.com/w/cpp/language/operator_precedence
461 1340542
>>40539
Не знаю, мне лень скобки ставить и лишний раз нажимать Enter, так что я всегда пишу просто

if(yoba) printf("Eto ty? \n");
462 1340544
>>40540
Короче. Тебе делать больше нехуй? Есть простое правило - сомневаешься, поставь скобки. Вот и все. Страдаешь херней какой-то. Лучше программировать это тебе не поможет.
463 1340546
>>40542
Как и положено студенту с laba.cpp.
Еще и печатаешь небось подглядывая символов 100 в минуту.
464 1340547
>>40544
Чем меньше скобок, тем лучше. Иначе получится что-то вроде ((((((((()))))))))).
465 1340549
>>40301

>var


>c++


PASCAL POWER ARE U DOWN ?
466 1340550
>>40546
Гораздо меньше. Лучше подумать, а потом сделать. Особенно, если речь о C++. А ещё я не пользуюсь IDE и компилирую через консоль.
467 1340551
>>40544
Лол, у меня такое ощущение, что в том примере никак невозможно расставить скобки так, чтобы произвольно задать порядок вызова функций. Как скобки не ставь, будет либо тож самое, либо нарушится порядок сложения и умножения.
Только расчленять на отдельные выражения.
468 1340560
>>40551
Непроизвольный порядок вызова функций выглядит так: f(g(x)). yoba()() частный случай этого. Если результат одной функции не зависит от результата другой, они могут вызываться как угодно. Даже в случае
a(t)+b(t)c(t) если ты думаешь, что b(t) вызовется первым из-за приоритета, это не так. Приоритет касается только парсинга в AST, a(t)+b(t)c(t) будет распарсено как
a(t)+(b(t)@c(t)), то есть будет нода +, у нее две ноды, call с поднодами a и t, и умножить с поднодами b(t) и c(t). А порядок вызова это уже на этапе компиляции, и тут компилятор может запихнуть как ему удобно
469 1340645
>>39771
У меня для тебя.

ЧИТАЕМОСТЬ, ЯСНОСТЬ КОДА

Не удивляйся, если тебе ебало набьют за твою дикую любовь к микрокоду, который только тебе понятен.
470 1340714
>>40645

>который только тебе понятен.


Во - первых в данном случае лишняя операция, а не только читаемость. Исходя из того что код в первую очередь должен работать и желательно быстро его как раз таки нужно делать наиболее читаемым не для дауна человека, а для машины. В этом и состоит смысл программирования, как можно точнее и короче объяснить ЭВМ чем ей вообще нахуй заняться. Если человек не может прочитать это, значит мы находимся в доме-приюте для слабоумных, погромисты-дауны не агрессивны сами по себе, значит перед нами просто не погромист, а значит он вообще нихуя не понимает и порду набъет в люьом случае, или не набъет в любом случае. Банально, читаемость как раз - таки становится в разы лучше так как из 500 строк кода становится +-150, где быстрее можно ориентироваться ? Наблюдая всю картину уже куда легче сконцентрировать внимание где нужно и там не уже не составит труда разобраться.

mimo shel
471 1340716
>>40537
Хз, меня тимлид за такое ебал, приучил если есть if/for/while, значит должно быть
{
...
}
без вариантов, даже если там одна строчка внутри.
472 1340718
>>40539

>Одну профессионалы не пишут.


Три это С стайл, 4 цпп стайл.
473 1340720
>>40542
Бля анон ты не одтинок, я вообще выделяю части задачи - микрозадачи и хуярю обычно все в одну строку к ней относящееся, у всех кто читает горит они КАЖДЫЙ ОПЕРАТОР ХУЯРЯТ ЧЕРЕЗ #13#10, но, я вот не понимаю, есть код, хочется тебе его видеть в том каком - то виде, ну возьми да отформатируй его есть же инструменты, можешь под свой конфиг в два клика это сделать.

Я вообще фанат такого подхода, те же сайты,раньше для них писал CSS стили так как всегда не нравилось как они выглядят а еще больше UX, велосипеды там рисовал, переделывал UI/UX насколько это возможно попутно вхуячивая свои JS скрипыты, а эти суки один хуй через месяц все меняли, начали генерировать рандомный неймы/id и тд для жлементов, в общем пиздец. Ну я их понял, теперь я просто граблю всю инфу что мне нужно и уже на своей платформе наслаждаюсь ее представлнием как мне нужно и взаимодействие через API. Только то что мне нужно и как. ХЗ, может это болезнь.
 .png837 Кб, 1024x718
474 1340770
В общем, пришло время поставить ньюфагов на место и расставить все точки над «i». Во первых, код должен быть как можно короче. Поэтому, если один оператор if пишется в 4 строки, а всего в исходном коде таких операторов, ну, скажем 1000, то это создаёт реальную проблемму. Сами посудите, 1000 строк лучше чем 4000. Во вторых, это в разы повышает читаемость и понятность кода, так как выражения такого типа наиболее близки к естественным языкам.

Вы же не пишете:
Если я заболею {
я не пойду в гости
}


Скорее всего вы напишете просто:
Если я заболею, то я не пойду в гости.

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

В общем, надеюсь, что достаточно авторитетно и ясно поясни, как именно следует писать код, чтобы не быть макакой. Дальше выбор за вами.
475 1340772
>>40770
Слишком толсто.
476 1340782
>>40770

> Во первых, код должен быть как можно короче.


Нет, код должен быть понятным. Ты троллишь тупостью в самом неподходящем для этого треде.
477 1340805
>>40782
Если ты поставишь лишние скобки там, где это не нужно, то код от этого понятнее не станет, скорее наоборот даже.
478 1340840
>>40549
Скорее javascript retard
479 1340890
Анончик, а как лучше установить qt creator на мак?
И есть ли смысл опен сурс версию ставить? Или только триал 30 дн?
480 1340922
>>40549
>>40840
Я джава-господин, чмохи. ЖС-бляди юзают let
481 1340927
Посмотрела в шапке книги для ньюфагов, почему все они с 1200+ страниц?

Есть какой-то экспресс вариант до 300 страниц kind of The C Programming Language?
482 1340979
>>40293
Я как-то кейлоггер писал на winapi, который при запуске прописывается в регистре. Так и работает уже почти год, ни разу о себе знать не давал, все исправно пишет. Только хотел вставить фичу отправки лога на емейл, но руки не дошли.
483 1341038
>>40890
бамп
484 1341053
>>40927
тебе зачем?
485 1341055
>>41053
Для геймдева
486 1341186
>>40927
Скорость чтения книги зависит не от ее объема, а от ее сложности.
Экспресс вариант будет тупо сложнее за счет более лаконичных и неоднозначных формулировок.
blob89 Кб, 750x531
487 1341234
>>40840
scary horor
>>40922
А нах твоя джава нужна когда нативное пишется на cpp не нативное в том числе JS в электроне ? Я вот все что писал на JS без проблем пользую в браузере. При этом у меня не стоит Java. Так что, вам, господин, пожаловать надобно прямиком в 2000 - x jar/jad поделки лепить.
488 1341238
>>40979

>Я как-то кейлоггер писал на winapi,


Что там писать - то, хук подрубить в виде dll ?

>который при запуске прописывается в регистре.


А должен перманентно инжектится в сис процессы, winapi же.
orig.gif496 Кб, 500x283
489 1341296
Сложно, эти книги по новым стандартам будто пишут для демонов Лапласа. Мне как ньфагу сложно и больно не понимать что-то.
490 1341299
>>41296
Учи постепенно с сишки и 98 стандарта
491 1341302
>>41299
Старые стандарты я уже выучил
492 1341304
>>41302
Тогда не знаю в чем проблема. У меня в основном одна мысль - "бля, наконец-то".
493 1341312
>>41304
Я ими не особо пользовался, знаю, что это делает то то, но сам юзал наследие/шаблоны и прочее только чтобы проверить написанное в книге.
494 1341358
>>40927
A Tour of C++
495 1341374
>>41312

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


наследие и шаблоны такие своеобразные конепции что чтобы было выгодно и безопасно их использовать задачи чуть ли не выдумывать и приходится, в остальном диномичское функциональное программирование делает сове дело. Насчет стандартов, я не знаю нахуй это вообще нужно все, у мну ни один заказчик/работодатель кода не смотрел. Задачу выполнил, молодец, работает быстро и без отказно -- вообще красавчик, ну а каким хуйем не важно.
496 1341376
>>41374

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


Туда ли ты зашел, петушок?
497 1341381
>>41376

>Туда ли ты зашел, петушок?


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

То что я написал ранее я читал в нескольких книжках разными словами. Про те же наследование классов написано что нужно хорошо подумать прежде чем их использовать, не говоря про класс интерфейс там и прочее виртуальное.
498 1341386
>>41381

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


std::vector, реши без шаблонизации. Вперед.
499 1341387
>>41386

>Опиши задачу


>ну это вектор бля во вектор сделой мне вектор без шаблонизации, понял бля !


Ясно. Вперед, нахуй.
500 1341388
>>41381
У тебя есть разное железо - например, opencl и cuda и нужно написать полиморфную прослойку, которая позволяет делать код либо
Prosloyka<ProsloykaCuda> instance; либо через наследование.
Дальше все упирается в то, нужно тебе разруливать это в динамике или статики достаточно, во втором случае можно взять шаблоны, в первом - наследование.

А если ты захочешь eDSL в кресты встроить, то там совсем весело будет.
501 1341391
>>41388

>У тебя есть разное железо - например, opencl и cuda


Это не задача, здесь нет проблемы.

>нужно написать полиморфную прослойку


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


Где здесь проблема и задача ? Дословно, ты пишешь : А как ты не будешь использовать шаблонизацию если в задаче написано сделать шаблонизацию и полиморфизм. Вот только никогда проблема не являет собой саму необходимость использования того или иного АТД/Алгоритма/Инструмента/Etc

>то там совсем весело будет.


Весело мне когда я вижу ебанутые запросы с не менее ебанутыми вариантами их реализации.
502 1341394
>>41391

>Вот только никогда проблема не являет собой саму необходимость использования того или иного АТД/Алгоритма/Инструмента/Etc


Иными словами, когда ты пишешь "Опищи конкретную часто решаемую и востребованную задачу где необойтись XXX" ты заранее задаешь провокационный вопрос, на который невозможно ответить, не зависимо от того, что подставить XXX.
Зачем задаешь тогда, аутист ты ебаный. Пиши все в машинных кодах и съеби из крестотреда.
503 1341396
>>41387
чтд, мамкин аутист
504 1341415
>>41394

> съеби из крестотреда.


да не очень - то и хотелось с вами даунами общаться
>>41396
аутист -- человек с проблемами социализации, дауненок ты комнатный.
shutterstock338992685.jpg77 Кб, 1000x667
505 1341421
>>41415
Имплаинг у тебя нет проблем с социализацей
506 1341422
>>41421
Есть, но написать - то ты не это хотел. iq < 0 ?
507 1341471
>>41386
Кстати задача с собеса, а ещё есть вариация сделать вектор на чистом си.
508 1341474
>>41471

>Кстати задача с собеса


Городского или районного?
image.png245 Кб, 610x385
509 1341475
510 1341555
>>41386
Хранить указатели на void и указатель на функцию преобразующую назад к указателю на нужный тип.
511 1341573
>>41555

>указатель на функцию преобразующую назад к указателю на нужный тип.


Откуда функция будет знать какой тип нужный?
512 1341670
>>41555
А как ты собрался деструкторы дергать, когда у тебя одни указатели на воид?
513 1341701
>>41234
Если ты не используешь что-то в своей повседневной деградации, то это еще не значит, что оное никому не нужно.
image.png150 Кб, 281x500
514 1342051
Ебаный ебоманый ты веб, блять. Твои скрипты ебут где-нибудь, нихуй, а процессы гибнут на... на серверах нахуй.

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

Есть у меня сервер на апаче. И есть у меня желание, чтобы при определенном событии на странице сын собаки javascript отправлял данные на сервер, что-нибудь принимало эти данные, пинало бы крестовую программку и передавало ей данные, а она бы ими редактировала html-документ. Внимание, вопрос: каким образом такое можно реализовать и что использовать в качестве пинательно-приемопередаточно посредника?

Вся надежда на вас, анончики
image.png450 Кб, 1920x1080
515 1342054
>>42051
Аноны, выручайте


смеюсь блять
516 1342063
>>41386
Шаблоны это синтаксический сахар. Видел параметризованный по используемому типу список на чистых сях сделанный через дефайны. Выглядело как говно, но работало.
517 1342065
>>42063

>синтаксический сахар


Ты не знаешь определения этого термина.
518 1342081
>>42065
Ты дебил? Я говорю что на сишном препроцессоре можно соорудить некое подобие простейших шаблонов, но это будет практически нечитаемо.
519 1342083
>>42081
Ты дебил? Возможность соорудить некое подобие не значит, что шаблоны это синтаксический сахар.
520 1342150
Где перекат блят?
521 1342230
>>42150
Вот >>1339902 (OP)

ПЕРИКОТ >>1339902 (OP)
ПЕРИКОТ >>1339902 (OP)
ПЕРИКОТ >>1339902 (OP)
ПЕРИКОТ >>1339902 (OP)
522 1342260
>>42051
Гугли CGI из простого
523 1342291
>>42230
Не пизди.
524 1342384
>>40716
И правильно ебал, чтобы после вашего говнокода в поддержке проблем меньше было.
525 1342385
>>40718
Все правильно он написал - три, в плюсах тоже. Т.к. при 4 при сворачивании блока у тебя будет висеть лишняя пустая строка, которая нахуй не нужна.
526 1342426
(*object).add(3) полностью аналогичен object->add(3) или это как у соседей непонятно?
527 1342437
>>42426
Полнасцью
Перекат 528 1342445
изображение.png80 Кб, 1920x1031
529 1342576
Анон, помоги со студией. Как изменить первоначальный код при создании проекта пикрилейтед?
Меня заебало каждый раз удалять все говно и прописывать библиотеки. Пробовал создавать шаблон по гайду майков, но все хуйня.
530 1342667
>>42576
Тред утонул, пиши сюда >>1339902 (OP)
531 1342752
>>42576
Создавай пустой проект всегда
15485160188982.png1,2 Мб, 720x1096
532 1342871
>>42576
Кнопочка "файл" левый верхний угол ->
Создать ->
Проект ->
Выбираешь Visual c++ ->
Выбираешь "Пустой проект" ->
Нажимаешь Ctrl+Alt+L ->
В обозревателе решений во вкладке "исходные файлы " жмешь ПКМ и "Добавить" ->
нажимаешь "создать элемент" ->
вкладка Visual C++ нажмешь "файл С++" ->
"Добавить" -> Пишешь говнятину.
Я уже блять не знаю как проще объяснить
Бля тред без шапки выпилили
изображение.png140 Кб, 1920x1080
533 1342924
>>42871
Немного не то, но я чуть подшаманил с шаблонами и сделал что хотел. Чтоб при создании проекта сразу было написано то, что мне надо
Спасибо!
534 1342951
>>42924
Ну это не то, бездуховно. Как по мне, пока новичок, лучше самому прописывать библиотеки и класы всякие. Просто тут иногда бугуртят из за того что начинающие создают не пустой проект.
535 1342953
>>42951
*классы
быстро-фикс
536 1342984
анончики вот этот код рабочий что меня удивило! поясните нубу

char c = 0;
std::cin.get(c);

std::cout << c << std::endl;

как этот код вообще работает? как функция находит адрес локальной с?
537 1343012
538 1343034
>>42984
Линкуется с libastral.so
539 1343218
Какую сетевую библиотеку посоветуете для кооперативного шутера? Чтобы с модными молодежными компенсациями лагов и прочего. Кто что допиливает под свои нужды.
540 1343740
>>42951
Я просто спортивный
541 1350169
>>42984
Этот феномен вроде ссылка называется.
542 1352676
>>43218
Если проект не масштабный, а домашний/игрушечный, то в качестве отличной практики можно попробовать всё самому написать. Сетевая часть не далеко от quake убежала. Есть отличная статья на хабре, описывающая основные моменты. Куча статей про детальный реверс.
https://habr.com/ru/post/324804/
https://cs-mapping.com.ua/forum/showthread.php?t=37309
543 1357478
Господа крестоносцы, такая вещь. Пишу dll либу для рабочей задачи. Раньше использовал чистый C. Сейчас всю внутреннюю работу перевожу на C++. C использую для фронтенда либы. Функции в либе при создании каких либо объектов (не экзепляров класса, а просто дескрипторы) возвращали статус об отсутствии свободной памяти путем проверки указателя на NULL после аллокации памяти. В С++ прочитал про два пути. Аллокация с new которая кидает bad_alloc и аллокация с new(std::nothrow), после которой идет проверка на nullptr. А как лучше делать проверки с вещами вроде std::string name = new std::string(ptr_str) или vector<int> data = new vector<int>(random_size), в случае когда память внутри объектов не аллоцировалась? С меня за благодарность new coulpe<tea>[2];
Тред утонул или удален.
Это копия, сохраненная 10 марта 2019 года.

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

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