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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
C++ тред #106 /cpp/ 1626937 В конец треда | Веб
Вместо шапки:
https://github.com/sosachbot/cppthreadhat/wiki

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

Прошлый тред: >>1617857 (OP)
Good night, sweet prince 1950-2020
sage 3 1626968
>>26937 (OP)

> Good night, sweet prince 1950-2020


Пруфы то будут?
4 1626990
Что значит "Знание стека протоколов ...", часто встречаемое в плюсовых вакансиях? Что почитать по теме, как практиковаться?
5 1626991
>>26990
Значит нужно хорошо изучить спецификации указанных протоколов и написать их достаточно эффективные реализации.
6 1627026
Только решил написать хеллоу ворлд на крестах и тут такое
RIP
7 1627027
>>26962
>>27026
Вы ебланы? Это форс такой? Жив он.
8 1627029
>>27027
С чего ты взял?
9 1627032
>>27027
Лол, я без твоего поста даже не понял, что эти высеры про смерть плюсов. Мне кажется, это один шиз пишет.
mVuJOsnR6lc.jpg97 Кб, 720x720
10 1627068
11 1627070
>>27068
они понимают какая ерунда плюсы и начинают кодить на джаваскрипте?
12 1627073
Зачем так рано перекат?
13 1627074
>>27032

>будут?


будут.
14 1627095
Анон, а какие GUI библиотеки ты используешь? Какие самые топ, а какие самые днищенские, что ты встречал за все время использования?
15 1627110
>>27095

>GUI


а что это?
16 1627129
>>26968
Комитет планирует поломать ABI в следующих версиях языка
17 1627130
>>27129
Может хоть просруться наконец со своим легаси.
18 1627133
>>27130

>просруться


А просрался по итогу я. (
19 1627137
>>27129
Как будто у крестов когда-то был совместимый ABI.
20 1627145
>>27110
Это графические библиотеки, хочу выучить какую-нибудь, но их довольно много и хз с чего начать
21 1627177
>>27129
1950 - это рождение Страуструпа, а не языка.
22 1627178
>>27145

>графические библиотеки


OpenGL тогда.
Screenshot2020-03-08 Google Trends.png63 Кб, 1177x635
23 1627181
На крестах нет работы. Вот пруф. Если все остальные языки примерно одинаково набирают популярность в рабочие дни и теряют в выходные, то у крестов эта кривая гораздо более сглаженная. В рабочие дни его вон гуглят намного реже, чем C#, но при этом в выходные дни даже немного чаще. Потому что язык для фана/обучения, а не продакшна.
24 1627182
>>27181

>C Sharp


Почему его так любят студенты? Это же говно с большой буквы
25 1627183
>>27181
Потому что та же Джава, только лучше во всём.
26 1627185
27 1627201
Аноны, сейчас читаю правила чистого кода, и тут мне попалась такая конструкция как "else if".

Вопрос - она сейчас как-то применяется? Я вместо нее всегда пишу просто if. Или тут дело в чистом стиле, и писать "else if " больше надо не для компилятора, а для других людей, которые в будущем будут читать твой код? Нахуй нужен этот else if короче?
28 1627210
>>27201
Это совершенно разная логика
Без else все твои if будут проверяться всегда.

Сравни
If(a==0)...
if(b==0)...

И
if(a==0)...
else if(b==0)...
29 1627212
>>27201
if (true) {
....выполняется
}
else if (true) {
....игнорируется
}

без else второй блок тоже выполнялся бы
30 1627216
>>27178
Спасибо
31 1627227
>>27095
Qt вроде популярен для программ с GUI.
32 1627231
>>27210
>>27212

спасибо
33 1627242
Есть ли у Qt будущее?
34 1627244
>>27181
Этот график показывает только то, что %языкнейм% гуглят чаще, чем цпп. Что как бы наводит на мысли о том, что цпп-кодер загуглил и нашел работу, а питоноблядь будет каждый день гуглить, пока его не возьмут на стажировку
35 1627245
>>27181
Когда занимаешься плюсами, то не нужно гуглить, ведь есть всеобъемлющий cppreference.
36 1627436
>>27095
Пока никакие, поглядываю на nuklear
37 1627511
>>27129
Каким образом? В любом случае это проблема решается старым добрым враппером.
38 1627515
>>27095
UWP очевидно, все остальное не нужно.
39 1627523
>>27515
Пидора ответ
40 1627528
>>26991
Ну реализации это может и перебор (это чаще для ПЛИСоводов), но все подводные места надо знать
41 1627539
>>27095
WPF через C++/CLI
42 1627556
>>27539

>WPF через C++/CLI


Это лучше windows forms?
43 1627595
>>27523

> Аряяяя пук!

44 1627647
Вчера смотрел видос с какой-то конфы, там была статистика по плюсам. Так вот в мире всего 4млн людей пишет на плюсах, 4млн КАРЛ! Это же пиздец как мало! И что самое главное ~1млн это прогеры из СНГ. И главное, докладчик отметил, что в СНГ самое высокое качество кода в мире. С++ можно смело называть РУССКИМ языком программирования!
45 1627665
>>27647
4 миллиона, это 0.05% человечества? Такое количество программистов вообще существует?
46 1627722
>>27647

>С++ можно смело называть РУССКИМ языком программирования


#define бля ;
return (x+y+u) бля
47 1627959
Как писать правильный код без ошибок с первого раза? Код работает так как надо, только после пошаговой отладки. В реальных крупных проектах, как я понимаю, дебажить не выйдет.
48 1627995
>>27959

>Как писать правильный код без ошибок с первого раза?


Никак.
49 1628051
>>27959
В крупных проектах есть тесты
50 1628055
>>27959
Опыт.
Сначала хэллоуворлд без ошибок, потом научишься и крупные вещи нормально писать.
51 1628117
>>27959
Думай наперёд
52 1628162
>>27959
Попробуй писать на скорость. Выбираешь мелкую задачу минут на 5..40, которую знаешь как делать (без такого, что тебе нужно листать документацию, смотреть схемы или ещё чего), и буквально по секундомеру засекаешь время стараясь успеть за минимальное. Запускать код можно только один раз (или несколько, если в задаче есть хорошо выделенных этапов - по разу на этап), точнее, после запуска его нельзя изменять, только проводить тесты и проверки. Если не получилось - удаляешь всё. После неудачной ошибки к этой же задаче можно возвращаться только через некоторое количество других задач.
Из-за того что цена ошибки выше (нужно полностью переписывать всё) через некоторое время у тебя будет рефлекторная реакция, выработается так сказать аллергия на ошибки.
Но это помогает только от глупых ошибок, вроде < вместо <=. А ещё я с дивана говорю и у меня только мой опыт есть, ничего лучше чем попробовать предложить не могу.
53 1628167
>>27556
WPF таки лучше чем формочки
А как это через CLI - хз. Пиздец это изврат

Мимодругойанон
54 1628746
Не знаю, где еще спросить, спрошу у вас.
Нуб, программирую ардуино. Как бы вы сделали счетчик в интервале 0-n с изменяемой скоростью?
Я видел, как человек делал его через остаток от деления millis/скорость на n. Но мне этот вариант не подходит.
Сам бы я сделал через n++ и delay(скорость).
Еще есть вариант сделать таймер через millis - millis, и если он будет больше скорости, тогда n++
Какие еще есть варианты?
55 1628816
>>28746
Таймер
56 1628925
>>27095
Раньше писал на MFC. Вот уж дно дна (но по-любому есть хуже, как всегда)
57 1628929
>>27242
я с 2009 года на нем, развивается он постоянно, очень удобно, но работу проще найти в связке с++ + STL, рынок ку тэ это на 70% госниипараши.
58 1628930
>>28746
Инкрементировать счётчик в прерываний аппаратного таймера и менять скорость счёта таймера в регистрах.
59 1628932
>>28925

>но по-любому есть хуже, как всегда)


Чистый винапи же.
60 1628942
>>28932

>>но по-любому есть хуже, как всегда)


>Чистый винапи же.


Ну мы всё же про фреймворки. А так он как раз и плох (но при этом внезапно иногда и хорош) в том числе тем, что отовсюду торчит винапи (модель сообщений в основном, и модель окна (HWND))
61 1629127
Антох, сижу полгодика без работы, посоветуй чего бы такого поковырять.
Qt - как-то разлюбил, благо стандартная библиотека встает с кален. Каждый раз нужно все больше поводов включать Qt в проект.
boost:: - не ковырял ни разу, но, как я вижу, в прям серьезных местах серьезные дядьки хотят именно boost. Как думаешь, стоит? А хули там полезного осталось - ASIO, BEAST?
Еще с базами никогда серьезно не работал, так уж жизнь сложилась. Что бы ты посоветовал? Postgres для кровавого интерпрайза и SQLite для себя любимого?
gRPC - твое мнение об этой поеботе? Как по мне, так шок, качественно сделано. Аж уважением к Гуглу проникся. Хочется приехать к офису в Сан Франциско и кинуть им зигу. Не, наверняка там камни подводные есть помимо того что бинарь из мегабайта разрастается до десяти, я промышленно не применял, вот и спрашиваю тебя.
62 1629138
>>29127
Напиши что-нибудь, что никогда не писал. Начиная от ублюдочной сетевой игры, заканчивая искалеченным 1C, например.

И старайся использовать как раз те либы, которые не знаешь
63 1629147
>>29127
Поковыряй OpenCV
15700155417070.png181 Кб, 535x466
64 1629166
Аноны, а та гитхабе есть какая-то система ботов, которые автоматически скачивают твои проекты, чтобы проверить на копирайт? Или кто эти люди, что качают мои проекты?
Недавно кстате увидел, что на меня фоловнулась хр местной компании, каковы могут быть ей мотивы?
65 1629230
>>29166
Забей, это MS очередной проект убивает геймифиуирует
66 1629598
Дальше, если хочешь быть соверешенным тогда делай так. И конечго дело не в бгаотсвте а в отношении в нему. и человек который почутвствлат это пирзанние, он рди этого призвания оставляет все, потму что надо. Многи наши прихожане могут подумать, уменя нет богатсва, я еле еле концы с концами свожу. Нет
67 1629606
У меня есть два разных класса, каждый из которых может иметь некоторое одинаковое количество объектов. По задания надо сделать "массив пар этих объектов" в другом классе. Что такое "массив пар объектов"? Как его сделать, если он только один, а класса надо записать в него два?
68 1629609
>>29127

> А хули там полезного осталось - ASIO, BEAST?


Spirit ничего так (по крайней мере в ипостаси Qi), давно пользовался
Всякие MPL. Fusion и Hana. Лично видел, как на них творятся чудеса точнее, нечитаемый ёбаный пиздец
36319original.jpg76 Кб, 400x265
69 1629620
>>29606
std::pair
70 1629622
>>29606
struct pair
{
A a;
B b;
};

pair arrayOfPairs[100];
71 1629624
>>29622
А препод мне почему-то на это сказал, что структура не нужна.
72 1629625
Так, ананасы
Есть какая-нибудь либа для форматирования? Желательно состоящая из одного заголовочного файла
fmt не предлагать, проект маленький
Её такую тащить ни к чему
73 1629626
>>29625
Форматирования чего? Текста? Диска? Твоего мозга?
74 1629627
>>29626
Пизды твоей мамки
75 1629628
>>29627
Сам такую и напиши.
76 1629629
Сап. Разбираюсь с чужой программой, и у нее странное поведение. релизный билд работает так, что никаких вопросов нет. Дебажный же выдает эксепшен при работе с одним из векторов: выход за границы. Проверяю все и действительно так, код работать не может. Но в релизе работает. Это как так? Никаких обработчиков исключений нигде нет.
77 1629631
>>29624
Юнион? std::pair? Хз что он имел в виду.
78 1629632
>>29631
Я думаю, он просто ебанутый.
79 1629635
>>29629
Ты просто ходишь по чужой памяти. В дебаг рантайме есть проверка, в релиз нет, только и всего. То, что оно работает - случайность. Аллокатор так выделил блоки, рядом лежит что-то, что тебе не нужно, на стеке как-то всё сложилось так - всё что угодно. В другой момент тебе будет выдан вектор на конце страницы, а следующая будет без прав на чтение/запись - там и в релизе упадёшь.
80 1629637
>>29629
Он портит память, которая по случайному стечению обстоятельств не используется. А может используется, например ты перезапишешь какие то чужие переменные, а потом порченые данные запишутся в файл.
81 1629638
>>29635
>>29637

Спасибо, аноны. Добра вам.
image.png88 Кб, 1366x768
82 1629696
Почему не заходит в PageRecieved?
https://pastebin.com/YpKSLnk0
83 1629719
boost::mp11::find_if
Почему для пустого списка возвращается 0? Теперь каждый раз проверять, что список не пустой что-ли?

Хочу что-то вроде
std::tuple<TYPELIST> myTuple;
for_each (TYPE : TYPELIST)
{
if constexpr (TYPE::can_use<T>)
return std::get<indexof<TYPE, TYPELIST>>(myTuple).Use(T{});
}
return false;
84 1629754
>>29625
https://en.cppreference.com/w/cpp/utility/format/format
Проще только sprintf юзать.
85 1629989
Анон, спаси от дурки.
Какого блять хуя это происходит, где мой перехват ошибки, блять почему он не дает мне ошибку, а дает ебать несуществующие ячейки вектора выводить, у меня кукуха нахуй сейчас слетит блять.
Был опыт программирование лишь на си, там такого ни разу не встречал, я не знаю с чем это связано и вообще пиздец.
86 1629999
>>29989
Ну даёт и даёт, а хули нет, платить лишними проверками за безопасность что ли, да нахуй оно надо, шарпистам вон оставь.
87 1630005
>>29999
Так это....там устойчивость программы...всякое такое...разве не через тысячи проверок безопасности устроены нормальные программы? (захотел блять работать на с++, ага щас мне, обоссали уже на try cath ебать).
88 1630007
>>29989
>>30005
В ржавой версии исправили
89 1630009
>>30007
а че такое "ржавая" версия?
Я просто лишь начинаю изучать, я не понимаю часть сленга с++'ного.
1.jpg21 Кб, 680x480
90 1630012
1513808026518.png31 Кб, 1054x336
91 1630018
>>29989
RTFM. С чего ты решил что доступ по [] тровает?
92 1630020
>>30018
P.s. vector.at(i) тровает.
93 1630033
>>30018
>>30020

>тровает


бляяяя
94 1630038

>тровает


ого, да у вас тут кузница ориджинал контента
95 1630048
Потровал бы анончика под пледиком :3
sage 96 1630049
>>30038
Делаем pr великим снова.
97 1630050
>>30018
>>30020
Спасибо.
Я лишь начал изучать и думал тут как в си, т.е. доступ к элементу лишь по [].
Пора читать документацию, а не книжку страуструпа.
98 1630056
>>30020
>>30018
У меня Некст платиновый вопрос.
А в чем существенная разница использовать at() и [] для векторов? Т.е. я хочу узнать могу ли я полностью отказаться от [] и перейти полностью на at? или это потребляет больше ресурсов и времени?
1544381739030.png33 Кб, 707x451
99 1630071
>>30056
Конечно медленнее, вон раза в два больше инструкций
100 1630076
>>30056
я перешел, безопасность важнее миллипиздических оптимизаций
[] использую только в ассоциативных контейнерах, где он создает элемент
101 1630096
>>30071
А где ты такой дизассемблер нашел? Что за программа?
102 1630101
103 1630136
>>30076

>безопасность важнее миллипиздических оптимизаций


Ты тредом ошибся.
104 1630142
>>30076
Безопасность от чего, от метеорита? Пиши нормально, нормально будет. Если у тебя цикл от 0 до N и ты не меняешь вектор во время цикла, то проверку N надо провести всего один раз, а не на каждом доступе.
105 1630148
>>30136
это ты тредом ошибся, дружок-пирожок, си-тред два блока вниз

>>30142
придет петрович и поменяет, а потом удивляемся, почему спутники падают
106 1630149
>>30148
Ну упадет твой спутник с эксепшном, а не с рантайм еррор, так легче сразу стало.
107 1630150
>>30149
ты на тестах увидишь исключение, а иначе будет как у него >>29989
108 1630154
>>30150
Тесты не помогут, если ими не покрыли какой-то диапазон величин.
109 1630168
Вкатываюсь в С++ в Си уже вкатился базово(всё это было ради С++).

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

Скажите что лучше книжка или этот курс? Я подсознательно думаю, что не стоит слушать никого и читать книгу, а не платить 5к за поверхностные знания с этой coursera.
110 1630272
>>30150
Блядь, а написать тест, который проверяет, чтобы какой-нибудь Петрович случайно не поменял N нельзя было?
111 1630285
>>30272
unknown location(0): fatal error: in "test_range": KOMU SKAZAL SUKA NE TROGAT N PETROVICH TEBE PIZDA
112 1630291
>>30285
- михалыч, там чето тровает, ты посмотри
113 1630371
>>30168
си++ и программирование на си++ совершенно разные вещи. Может быть в страуструпе и написано, что такое си++, но вот зачем все это нужно, там нихуя не написано.
114 1630410
>>30371
как ты будешь знать зачем нужно си если ты не знаешь что такое си?
115 1630520
>>30371
Где почитать, зачем нужно?
116 1630555
Что можно запилить интересного на крестах? Я вот думал о компиляторе крестовом, который бы работал как просто си с крестами, но чето может другое есть. Операционку свою может, хотя их и так дохуя, по сути.
Мысли, господа?
117 1630571
>>30555
Протектор PE-файлов с виртуализацией кода
118 1630598
>>30571
Ну и мразь же ты, такое предлагать.
119 1630904
>>30555
Сделай морской бой
120 1631091
Привет, анон. Почему к методам объекта класса в массиве можно обращаться без индекса через указатель ->? То есть
massiv->metod();
это то же самое, что и
massiv[0].metod();
Нахуй это нужно? Почему так вообще можно делать?
121 1631106
>>31091
Потому что легаси массив декеится в указатель на первый элемент - наследие си. Не используй легаси массивы.
122 1631108
>>31106
Чё? Какой ещё легаси?
123 1631130
>>31108
Тот, который ты используешь.
124 1631365
>>31106

>Не используй легаси массивы



Кроме утечек есть причины не использовать?
125 1631369
>>31365
Приятная семантика
126 1631371
>>31130
Что такое легаси?
127 1631377
>>31369

>Приятная



Это ты про то, что тот же вектор может сожрать любой тип?

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

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

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

> Это ты про то, что тот же вектор может сожрать любой тип?


Я так и не понял о чём ты, но я имел ввиду то, что работа с std::array гораздо удобнее чем с сишным массивом.

std::array values = { 10.5, 15.7, -3.0 };
for (auto val : values)
print(val);

против сишного
double values[] = { 10.5, 15.7, -3.0 };
for (size_t i = 0; i < 3; ++i) // 3? А хули три а не десять?
print(values);
129 1631387
>>31371
Обычный, например созданный через new

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

>>31384
Теперь понял
130 1631391
>>31384

>против сишного


>double values[] = { 10.5, 15.7, -3.0 };


>for (size_t i = 0; i < 3; ++i) // 3? А хули три а не десять?


>print(values);



И да, я так никогда их не создаю, это странно как минимум

int Length = 10;

int *Array;
Array = new int [ Length ]
for( int i = 0; i < Length; i++ )
{
Array[ i ] = 0;
}

Ну и далее там описать доступ к элементам с проверкой, но без блядского сообщения, что оп, а вы лезете не туда с обрушением всего и вся.
131 1631407
>>31391

>Array = new int [ Length ]


Бэд практис
132 1631409
>>31391
Ты так напишешь 99 раз, а на 100ый забудешь вызвать delete.
Если хочется проверок, пиши через .at(i) и лови исключение...
133 1631424
>>31409
Хуже, вызовет delete вместо delete [].
134 1631430
>>30168
C и C++ это не питон\джава\шарп\любая другая хуйня модная чтобы туда вкатиться по какому-то курсу. Здесь порог входа минимальный это смог ли ты осилить книжки Ритчи и Страуструпа. Вот сперва осиливаешь эти 2 книжки, потом ты уже можешь кидать какие-то понты что ты на с сями знаком.

Читай книжку Страуструпа, а деньги сееб оставь, эти курсы для домохозяек нахуй не нужны.
135 1631441
почему у меня С++ так сильно ассоциируется с windows?
136 1631446
>>31441
Почему?
137 1631449
>>31446
вот мне интеерсно. почему то пердоля у меня ассоциируется с питоном, а окна с с++
138 1631452
>>31449
На винде слишком сложно интерпретатор установить?
139 1631454
>>31449
у меня пердоля с джавой и пхп ассоциируется лол
140 1631455
>>31452
а нахуй на винде интерпретатор если есть visual studio?
141 1631457
>>31455
Ну вот и ответ. Для питона на винде нужна visual studio, которая, очевидно, будет совершенно не у всех; а для с++ все постоянно устанавливают по 3 версии Microsoft Visual C++ Runtime Library, поэтому она тебе в глаза и бросилась.
142 1631459
>>31457
да нет, питон на винду вообще легко устанавливается, модули на него тяжело ставить потому что там консольное управление и там этот пип постоянно выёбывается, модулей каких-то не достаёт часто, пердолиться надо много видимо отсюда и ассоциации с пердолей.

а на вот чтобы на с или с++ писать нужно визуалку ставить ну такое официальное средство бесплатное от микрософта.
143 1631467
>>31459

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


>а нахуй на винде интерпретатор если есть visual studio?


Я с двумя разными людьми разговариваю, или ты между сообщениями переобулся?
144 1631477
>>31467
а я не так то твоё сообщение прочитал, забей.
145 1631490
>>31391
Length = 10
Length++ //happy debugging motherfuckr
146 1631493
>>31490
напомни чем length++ от ++length отличается.
147 1631507
>>31384

>for (size_t i = 0; i < 3; ++i)



#define count(X) sizeof(X)/sizeof(X[0])

for (size_t i = 0; i < countof(values); ++i)
148 1631520
>>31493
Постфикс и префикс инкремент, же. В первом случае, сначала выполняется инструкция, а затем идет инкремент переменной, во втором случае - все с точностью да наоборот.
149 1631553
>>31507
Не, для легаси уже давно сделали костыль, недавно включили в стандарт.
double values[] = { 10.5, 15.7, -3.0 };
auto pr = [](std::span<double> container){
for (auto val : container)
print(val);
};
pr(values);
150 1631557
>>31520
cgfcb,j gjyzk/ спасибо, понял.
151 1631565
>>31553
Не нужно эта хрень еще будет ошибки компиляции на весь экран, если что-то не так пойдет.

Если можно обойтись сишным кодом, то им и нужно обходиться.
152 1631571
>>26937 (OP)
Кстати страуструп выглядит как настоящий и классический программист, а сейчас программистами называют всякое татуированное гавно с разноцветными фолосами хипстерское. АЙТИ строили такие как Страуструп, а не нормалфажные маньки. Тяночки блядь ещё в этом айти сидят, их прямо дохуя там стало.
153 1631575
>>31565

>Если можно обойтись сишным кодом, то им и нужно обходиться.


Мы вам перезвоним.
154 1631576
>>31565

>Если можно обойтись сишным кодом, то им и нужно обходиться.


Тогда может просто на с и писать?
155 1631581
>>31571
Тогда просто все так выглядели. Сейчас все по-другому выглядят. В будущем ещё какой-то вариант будет, и все будут выглядеть так, а отцы программирования будут

>татуированное гавно с разноцветными фолосами хипстерское

156 1631589
>>31581
лучше бы и сейчас все выглядили как страуструп. хоть на людей похожи будут.
157 1631601
>>31571

>АЙТИ строили такие как Страуструп, а не нормалфажные маньки


Тешь себя, на момент создания крестов у него уже два ребенка было.
158 1631605
>>31601
А у современных розоволосых дегенератов шаблонных детей нет они все как под копирку чайлдфри, так что всё логично.
159 1631613
>>31605
Тогда нормалфаги были дитясные, сейчас нормалфаги чайлдфри. В 18 веке они бы парики курчавые носили. Так работает мир.
160 1631618
>>31576
Иногда от С++ фич есть профит. Шаблоны, например, при всех их недостатков для контейнеров они нужны. ООП хорошо подходит для ГУИ.

Лучше всего писать на С++ в стиле С, используя плюсовые фичи в случае крайней необходимости.
161 1631627
>>31618
Ты бы еще на raw указателях в 2к20 пописал, долбоеб.
162 1631634
>>31571
Есличо, в 60-70х тян программистов было приблизительно столько же, сколько кунов. Тогда это не была отдельная профессия: ты занимался каким-то STEM-направлением, плюс приходилось программировать. Потом в 80х, когда это оформилось в отдельную специальность, её узурпировали всякие sci-fi бои и прочие нерды, и стало принято, что это чисто мужская задротская профессия. С одной стороны задроты создавали недружелюбную для тянок атмосферу изнутри индустрии, с другой стороны - хуёвый имидж, отчего родители не отпускали своих дочерей учиться на программистов, чтоб те не стали чуханками, поэтому количество тянов в программировании супер уменьшилось буквально за 10 лет.

В 90х, с запросом на массовую автоматизацию бизнеса и появлением языков типа жабы в индустрию ввалило куча обычных нормисов, а с середины нулевых с хайпом веба и мобилок вкатываться стали вообще все подряд. Так что вполне закономерный результат, что сайфай бои с задротами остались в прошлом.
163 1631649
>>31627
Там, где важна производительно ессно пишу на сырых указателях
164 1631655
>>31634
Массовый вкат нормисов начался после 2005-го года когда в массах интернет появился
165 1631656
>>31634
Немножк не так: раньше программист был чем-то типа секретарши при ученых, и его задачей было переводить математические модели в код. Поэтому куны занимались наукой, а рутину сваливали на тян.

Когда же программирование стало серьезным бизнесом, куны им заинтересовались, и быстро вытеснили тней за счет своего превосходства.
166 1631662
>>31656
но тянок дохуя в айти щас. в основном они веб макаки на вротенде и нечета си боярам но все же.
167 1631676
>>31655
Все наоборот. Как только стало (с интернетом) возможным получить навыки, сидя дома на мамкиных борщах, произошел массовый вкат аутистов. Сейчас доля аутистов вообще максимальна.
168 1631681
>>31676
Ну и что наоборот? Я разве не так написал, ты мудила ёбаная.
169 1631682
Да, раньше среди аутистов был больший процент мега-гениев, которым
1. Повезло попасть к нужным нормисам, разглядевшим потенциал
2. Их за ручку водили везде от универа до какой-нибудь корпорации
Поэтому пошел миф о каком-то небывалом превосходстве аутистов. Сейчас же, когда каждый аутист идет в айти вебмакакой, и аутистов дохуя, и средний уровень аутистов очень низкий
170 1631685
>>31681

>Ну и что наоборот?


Массовый вкат АУТИСТОВ начался после 2005, мудила ты ебаная. Совсем, блядь, аутисты охуели, в русский язык не могут
171 1631687
>>31676
Наоборот. Благодаря интернету нормисы могут копипастить со стаковерфлоу и кое-как работать программистами, и они просто вытеснили аутистов.
172 1631688
>>31685
НОРМИСОВ НАЧАЛСЯ. АУТИСТЫ ЕЩЁ ПО КНИГАМ ДРОЧИЛИСЬ. АУТИСТЫ ВСЕГДА В АЙТИ ЛЕЗЛИ И С ТЫРНЕТОМ И БЕЗ.
173 1631690
>>31687
Вся суть в том что нормалфажное быдло в СИ никак пролезть не может. Потому что тут надо долго учиться, здесь сложно и здесь не так много платютъ. Они видят что в вебе 300кк выучи пару хуёвин и перди себе в стул и бегут все на джавы хуявы и прочее гавно и пусть сидят там и не высовываются.
174 1631694
>>31688
Аутисты до интернета в основном лезли в коллекционирование марок и прочую безденежную поебень.
175 1631696
>>31687
Со стековерфлоу копипастят тупые, а не "нормисы". Аутисты - это социальные инвалиды прежде всего, и перед талантливым нормисом у аутиста шансов минимум, за исключением редких областей типа реверсинга
176 1631700
>>31696
>>31694
Аутисты слово некорректно - задроты. Правильнее назвать задротами таких ребят, на дваче большинство это задроты, которые насмотрились всякого кинца и называют себя аутистами и прочим гавном, на самом деле обыкновенные задроты.
177 1631706
>>31656
Нет, рутиной занимался отдельный человек -администратор, которому единственному можно было трогать комп. Код же набивали как раз те же люди, что и занимались самой предметной областью.
maxresdefault.jpg42 Кб, 1280x720
178 1631707
Ебать вы аутисты.
179 1631709
>>31706
Полную хуйню несешь, ты не в теме
180 1631711
>>31707
Простите, Учитель. Мы последователи великих учений Страуструпа и Ритчи!
181 1631717
>>31700
На дваче дохуя аутистов (больше, чем в среднем по популяции), но некоторые принимают их за нормальных людей и пытаются спорить.
Что касается задротов, то любой сделавший себя сам человек - задрот. Не обязательно просто при этом выглядеть как вонючий чухан. И так появляются те самые хипстеры, которых вонючие чуханы не любят. То есть буквально - выглядишь опрятно, значит ты тупой. Хотя тупым может быть только тот, кто так думает.
182 1631719
>>31717
Хипстеры это не задроты, хипстеры это наивное гавно, они псевдоинтеллектулаы, у них знания поверхностные.
183 1631722
>>31719
Сказало одноклеточное, которое судит о человеке по внешности
184 1631725
>>31722
Да.
Волосы в розовый-зеленый любой другой цвет - ты дегенерат.
Пирсинги, проколы и прочее гавно - ты дегенерат.
Татуировки - ты дегенерат.
Моднявая разноцветная одежда как у павлина - ты дегенерат.
Список продолжать могу сколь угодно долго.
185 1631728
>>31725
А на самом деле дегенерат - ты, лол
186 1631734
>>31706
Всё так, Дядя Боб подтверждает это.
https://www.youtube.com/watch?v=ecIWPzGEbFc

>>31709
Нет ты, подгоревший мамкин сексист.
Хоть бы загуглил матчасть.
187 1631750
>>31734
Если в твоей матчасти написана подобная хуйня, то это хуевая матчасть. Или ты ее прочитал жопой. Или и то и другое.
"рутиной занимался отдельный человек -администратор, которому единственному можно было трогать комп" - мог написать только человек, который либо
1. Понятия не имеет, как была устроена разработка в те годы.
2. Считает увлекательный процесс набивки перфокарт и переписывания математических формул на асм - не рутиной

Откуда ты взял здесь сексизм - не понятно, точнее - понятно, ты ебанутый и туповатый
188 1631758
>>31750

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


Долбоёб, тебе даже ссылку скинули, послушай взрослого дядю, не позорься.

>Считает увлекательный процесс набивки перфокарт и переписывания математических формул на асм - не рутиной


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

>Долбоёб, тебе даже ссылку скинули, послушай взрослого дядю, не позорься.


Зумеры совсем охуели, кидают часовое видео как пруфлинк.

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


Именно так. Сидят в отделе два человека, получают одну зарплату, должность одна и та же.
Только один занимается творческой деятельностью, а другой делает всю рутину. Обоих все устраивает, потому что первый не занимается рутиной, а второму платят деньги при отсутствии особых талантов.
Только вот
1. Кто постарадет от автоматизации рутины даже в спокойное время. Например, при массовом переходе от асма к си
2. Кого сократят в кризис
Как думаешь?
190 1631904
>>31409
Я это всё в классе делаю. Пример на картинках.

Да, я в курсе, что занимаюсь хернёй, но это для себя и общего развития, на деле будет использоваться STL.

>>31407
А вот про это я хочу узнать больше, потому что память утекает и мне бы причину узнать.

Из того, что я знаю, выше писал, что не всегда выделяется блок памяти указанный, а так же догадываюсь, что при пересоздании такого массива старый блок памяти так и остаётся висеть занятым, пусть и удалённым или очищенным.
191 1631911
>>31904

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


Схожу в ресторан на неделе, а пока поем говна.
192 1631914
>>31904

>Array = 0


На пиках деградация, а не развитие.
193 1631954
Программач, можно как-нибудь сраную студию научить подсвечивать изменённые строки, беря их из гита, как это делает vs code?
195 1631973
>>31961
О, крутота, то что надо
196 1632097
>>31553
std::span<T const> -- просто охуенная тема! Давно своим велосипедом пользуюсь, примерно так же устроен. Охуенно удобно его передавать/возвращать вместо всратой конст ссылки на std::vector<T> (или, ещё хуже, пары итераторов), да ещё и по значению! Странно, что раньше не было его.
197 1632355
Ананасы, могу ошибиться тредом, но похуй
Кто-нибудь может подсказать, как собрать Qt приложение в Azure pipelines?
Где вообще об этом можно почитатать? Гуглится какая-то хуйня
198 1632544
>>30056
не видел .at ни в одной кодбазе, где работал.
199 1632547
>>32544
Я видел, но очень редко. Обычно в нем нет смысла - если индекс может выходить за пределы, то код надо переделывать, а если не может, то и .at() не нужен.
200 1632566
>>32547
Видел везде перегрузки [], а внутри под ними .at().
201 1632580
>>30520
это все по 10 книгам размазано тонким слоем. Я раньше не понимал, зачем дрочиться со всеми этими const, namespace и т.д.
202 1632582
>>30410
Мой юный друг, тут есть небольшой парадокс, язык создается для решения задач, т.е. сперва есть ЗАДАЧА, а затем ее решение посредством языка. Когда ты сначала учишь язык, тебе сложно все понять кому это блять на хуй может потребоваться, где? Из-за этого так полезно высшее образование, ты понимаешь какие ты задачи можешь решить и для чего все эти алгоритмы и конструкции. Так значительно проще. Это же работает и когда есть увлеченность, человек хочет написать игру ему горит, он начинает изучать как это можно сделать и приходит к программированию.
203 1632595
>>32582

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


Я хз как у вас там в Гарварде, но даже в столичном вузе этого всего нет
204 1632616
>>32595
Чего нет? Алгоритмов?
205 1632628
>>30168
Насчет курса не знаю, книжка говно
206 1632633
>>32628
А какая не говно?
207 1632639
>>27959
Делать упражнения из K&R. Даст первоначальный опыт.
208 1632656
>>32639
Просто набивать руку, напишешь тысячу строк разумного кода, дело легче пойдет
1584178423292.jpeg202 Кб, 1262x751
209 1632718
Что то я не понял вот этого. То есть при обычном создании экземпляра шаблона класса, например
std::vector<std::string> temp;
Создаются не все члены класса? И почему отдельно выделены встраиваемые функции-члены?
1494896055328.png156 Кб, 1441x998
210 1632756
>>32718
Я так понимаю, речь идет вот о чем:
При непосредственном использовании функции-члены заинлайнились, а неиспользуемые функции отброшены.
При инстанциировании же для инлайновых функций все равно создались не-инлайн варианты, например чтобы их можно было использовать из другого файла cpp.
211 1632757
>>31961
Бля, а есть что-нибудь похожее для QtCreator'а? Если даже для парашной студии такое есть
212 1632761
>>32582
что ты блядь несёшь, ну смотри допустим я хочу написать игру, но я ньюфаня. и что ты думаешь что я буду гуглить всё как опытный программист, всеякие функции и прочую хуйню? да нет же у меня вообще нет представления что на этом языке можно а чео нельзя, используя твой подход работать когда горит можно такого говна налепить. нужно прочесть книгу о языке в первую очередь увидеть все его функции что на нём можно делать и уже потом можно высирать игру и всё что хочешь. блядь.
213 1632765
>>32582
Этот прав, я игру сделал, а потом уже решил теорию конкретно изучить, иначе скучно.

Тот же Си просто нахуй забёшь за день с этими ёбанными строками пердолится.
214 1632767
>>32628

>книжка гавно


уйди
215 1632777
>>32767
Хорошо разбирается != хорошо объясняет
216 1632780
>>32777
Компактный код != читаемый код
217 1632787
>>32757
Ну отмечать измененные части он из коробки умеет, в связке с гит хз, какие то настройки контроля версий там точно есть, как и подключаемые модули.
218 1632791
>>32761

>увидеть все его функции что на нём можно делать и


Такое может разве что с питоном прокатить. Ну почитаешь ты про шаблоны, что, сразу догадаешься, как можно собственные бинарные операторы делать как в бусте?
Лучше освоить некоторую базу, а дальше паралельно что то делать и изучать нужные тебе фичи, все ты все равно знать не будешь.
219 1632812
>>32791

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


маня это основы основ никто не говорит что после книжки ты станешь профи 300кк в наносек, это озы и хорошая твёрдая база, фундманент. алсо в нормальных книжках к материалу ещё даются упраженения.
220 1632815
>>32812
азы или озы не знаю как правильно
221 1632822
>>32812
Многое же просто неприменимо в реалиях новичка, он просто потеряется от большого объёма информации.

Развитие идёт итерационно, сначала очень простое, затем накопление знаний небольшое, потом по сложнее.

Тот анон прав, без ясной цели все эти упражнения полная хуета.

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

В чём космический ефект такого задания? Где эти знания применимы? Нахуя?
222 1632838
>>32761

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


Ты когда русский язык учил, ты тоже сначала прочитал книжку со всеми правилами и функциями языка, и только потом начал с людьми разговаривать?
223 1632857
>>32838
нет, но когда я учил английский я сперва сделал упор на грамматику и очень не зря, потому что если бы я стал просто учить "как получится" то у меня был бы большой словарный запас, но из-за пробелов в грамматике я бы очень многого всё равно бы не понимал.
224 1632868
>>32838
Когда ты разговариваешь, у тебя во рту нет компилятора, который не дает сказать фразу с ошибкой.
225 1632877
>>32868
Ошибка ловится в рантайме всякими умниками и граммар-наци.
226 1632937
>>32812
Это троллинг тупостью? Ты повторил тоже самое другими словами.
227 1632948
>>32791

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


В нормальных книжках есть реализация собственных бинарных операторов.
228 1632956
Суть в том что в книжке впринципе показывается что есть в языке и как это используется. Нельзя не зная языка и ни разу не открывав на нём книжку сесть и начать что-то писать, ты даже тупо не будешь знать что гуглить. У тебя элементарно не будет представления ни о чём.
229 1632960
>>32948
Например?
230 1632971
>>32948
Хотя ты наверное не про шаблоны.
.png11 Кб, 1107x125
231 1633560
Если вывести пустой указатель на строку, то среди кучи мусора будет целый список каких то директорий. Откуда они?
232 1633566
>>33560
Ты точно программист? Это переменные окружения.
.png5 Кб, 986x182
233 1633596
Как это работает? Не могу понять что за стрелка после обьявления функции
234 1633597
>>33596
auto return type гугли
235 1633598
>>33596
Тип возвращаемого функцией значения, после 14 стандарта тут не нужно.
236 1633653
Какая в C++ существует альтернатива наследованию?
237 1633661
>>33653
Инкапсуляция
238 1633668
>>33661
Н, п, я... Подходит!
239 1633689
>>33560
Привет OU610GH
240 1633690
>>33653
Композиция
241 1633698
>>33690
Так инкапсуляция или композиция?
242 1633700
Почему ООП так популярно и плохо ли оно само по себе?
243 1633705
>>33700
Само по себе не плохо вообще ничего, кроме анального спида. Вопрос в том, как ты это применяешь.
изображение.png122 Кб, 1954x1783
244 1633725
>>33705
В чистом C. С костылями.
245 1633727
>>33700
Смотря что такое ООП
246 1633893
Анон, сейчас будет платина.
В одной книжке (видимо очень хуевой или нет?) увидел, что типа return 0 в main больше не нужен, типа устарело нахуй, лишь динозавры пользуются.
Так ли это?
P.s. анон динозавр и ставит return в main
247 1633894
Аноны, а какие есть хорошие книги по алгоритмам (только не Кнутт пожалуйста, я не хочу ебать древний язык под названием псевдокод)
248 1633901
>>33893
Да.
249 1633903
>>33894

> не хочу


Хватит пары туториалов на хабре.
250 1633908
>>33894
Здарова, братишка
1) Adam Drozdek - Data Structures and Algorithms in C++ - твердые 10/10, все есть
2) leetcode
252 1633911
>>33908
Ты предлагаешь читать техническую литературу на иностранном языке через переводчики? Ты ебанутый?
253 1633915
>>33893
Это сишная фича вроде, просто был возврат нуля по умолчанию
254 1633925
>>33893
Пиши всегда, что в сишке, что в крестах, не ошибёшься. Это лучше, чем UB UB ГРОБ ГРОБ КЛАДБИЩЕ.
255 1633927
>>33908
>>33909
Спасибо, раньше сидел на codeforce, но недавно перешел на leetcode, что там что тут ощущается просто огромная нехватка знаний в алгоритмах, отчего и спросил.
256 1633930
>>33893
В С++ он вроде никогда не нужен был, в C с C99. компилятор сам дописывает в конец main.
257 1633932
>>33911

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


>назывет кого то ебанутым

258 1633933
>>33894
Посмотри Cracking the coding interview (Карьера Программиста на русском), там вроде бы Java но переносится тривиально.
259 1633939
>>33930
Не нужен? А как ты код выхода возвращаешь?
260 1633944
>>33939
По дефолту return 0 дописывается, то есть подразумевается что программа завершилась успехом. Если тебе нужен код возврата, пиши сам.
261 1633949
>>33932
У меня не было английского в школе. Где твой бог теперь?
262 1633952
>>33949
Пчел, если ты его сам не выучил до окончания школы, то у тебя нет будущего в IT.
263 1633957
Чо там нужно теперь по мнению аналитиков знать кодеру? Английский? Матан? Computer science? Физику? Биологию?
264 1633958
>>33949
В школах он хреновый, технический так или иначе приходится самому развивать читая хелпы и мануалы.
265 1633960
>>33949
У меня английский был на 3, и на устном экзамене я рассказывал какую то дичь вроде "In my future I will write a book and grow a tree" под закатывание глаз преподши. А еще у меня в школе не было немецкого, а к первому компьютеру прилагалась пара хандбух на дойче по 1300 страниц, по которым пришлось учить бейсик и ассемблер. Хуй знает, крутись как можешь, it термины плохо переводятся на русский, поэтому все книги что я видел довольно всратые, а писать код все равно на инглише, всякие for, map и stack, никуда от этого не уйти. Можно конечно конкретные алгоритмы по видосам на ютубе учить, но это такое.
266 1633961
>>33957
Не позорься, тебя ждёт 1с тред.
267 1633985
>>33957
Времена 00х и 10х, когда можно было крякнуть, что ты знаешь комплюхтер ушли, теперь требования стали намного выше.
268 1634002
Хай гайз.

Пишу на ардуинке прогу и столкнулся с таким затруднением:

String messenge;
for (int i=1; i <= 10; i++){
messenge += String(dht_i.readHumidity());
delay(50);
}

Смысл в том, что у меня есть 10 переменных с названиями:
dht_1
dht_2
dht_3
....
dht_10

И цикл должен менять i на 1,2,3....
Но программа ругается, мол нет переменой dht_i.
Это логично да, программа права.
Вот собственно хочу спросить совета более опытных юзеров, ибо в интернете особо ничего не нагулил.
Кто нибудь может посоветовать как это лучше реализовать?
Спасибо
1439871940145053119.jpg39 Кб, 551x549
269 1634021
>>34002
Ты до массивов что-ли ещё не дошел?...
270 1634027
>>34002
Вот он, контингент ардуины.

*(&dth_1 + i)
271 1634032
Двач, есть проект на Qt. Хочу сделать так, чтобы у меня два класса назывались одинаково, но лежали в разных namespace. Ну и соответственно .h и .cpp будут лежать в разных папках. То есть как-то так это должно быть:

root:
....man:
........brain.h, brain.cpp
....women:
........brain.h, brain.cpp

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

Отсюда вопрос, как заставить компилятор учитывать возможность коллизий в именах и либо так же по папочкам раскладывать объектники, либо ещё как то это проблему решать? Я не хочу в дублировать префиксы, чтобы в папке women лежали файлы с префиксом women.
272 1634035
>>33952
Думаешь, я в школе знал о том, что мне английский пригодится в жизни? Нихуя. И вообще я прогать начал только в 20.
273 1634037
>>34032
CONFIG += object_parallel_to_source
274 1634041
>>34035
Ну страдай теперь, раз не знал.
Стикер512x512
275 1634069
>>34027

>int dth_1;


>int dth_2;


>char blink_led;


>int dth_10;


>int dth_9;

276 1634073
>>34069
Тогда тебе не повезло. Вообще, best practice - располагать все переменные в начале функции и сортировтаь их в алфавитном порядке.
277 1634076
Аноны, подскажите, есть простой класс Person, хочу его добавить в
map<int, Person> persons;
пишу вот так
Person p(1, "LOH");
persons[1]=p;
А мне компилятор говорит, что нужен конструктор по умолчанию. Т.е. я блять не могу через квадратные скобки добавить объект без конструктора по умолчанию?
278 1634077
>>34073
По типу читабельнее имхо.
279 1634078
>>33925
это не UB, в стандарте четко написано, если из мейна нет ретерна, то возвращается 0

>>34076
Когда ты сделаешь persons[1488] и такого ключа не будет - он создастся и вызовется конструктор по умолчанию.

Так что - либо делай дефолтный конструктор, либо используй .find и .insert вместо []
280 1634079
>>34078
Ок. Спасибо.
281 1634086
Является ли корень бинарного дерева частью каждой ветви? То есть, считается ли он при учёте количества узлов в каждой ветви?
282 1634114
>>29989
вот что, что тебе надо, https://en.cppreference.com/w/cpp/container/vector/at
283 1634115
>>29989
Ты не понимаешь сути С++
284 1634128
>>34073
Жирно.
285 1634227
>>34073
>>34128

Бля, челы, это не шутка. Это гайдлайны 80ых годов. Переменные все объявлять в начале функции, по алфавиту.
Не иметь более одного ретурна в коде, и ретурн иметь в конце функции.

Ну и тд. Кодеры под микропомойку до сих пор так пишут.
286 1634265
>>34227
Это MISRA C
287 1634277
>>34227

>Не иметь более одного ретурна в коде, и ретурн иметь в конце функции.


Ну это ещё имеет смысл - для гарантии NRVO.
288 1634292
>>34277
Да это один из базовых принципов, о которых ещё Дейкстра писал.
289 1634328
>>34292

>базовых принципов структурного программирования



медленнофикс
290 1634338
>>34277
невозможно гарантировать NRVO. Да и как бы Copy Elision в С++17 и так ок
291 1634350
>>34338
Ну на практике он именно в такой конфигурации обычно происходит, хотя от компилятора канеш зависит.
292 1634354
>>34292
Да понятно, но он устаревший шопиздец. Сейчас так никто не пишет блет.
293 1634358
>>34277
>>34338

Я вообще про эту хуйню с ретурнами от си кодера услышал
294 1634359
>>34358
не слушай сишников, у них совсем другой язык.
295 1634483
>>34027
Эти переменные необязательно будут расположены друг за другом в памяти
296 1634490
>>34027
Похоже на UB
297 1634491
>>34002
Ну, кстати, да: а почему не массив?
298 1634511
Карабасы, кто-нибудь знает, почему в visual studio комментирование двумя слэшами // и комментирование тремя /// имеет разные оттенки зеленого?

Этому есть какое-то общепринятое применение, типо яркозеленым комментим "такое-то", а темно-зеленым коментим "другое-то"? Или эту разницу цветов каждый использует по своему?

Первое что мне приходит в голову, это визуальное разделение двух разных близкостоящих комментов. Чтобы два близких коммента не сливались в один, ты их разделяешь разными цветами.
299 1634515
>>34511
Это для утилит документирования
300 1634542
>>34515
благодарю, открыл статью по doxygen
301 1634547
Сап, пишу библиотечку для работы со звуком. Пользователь сначала создает экземпляр класса Lib и работает дальше через него. Еще есть класс SoundChain, и эти чейны создаются и удаляются во время работы, а Lib всегда содержит их актуальный список.
Проблема такая: все экземпляры SoundChain не связаны друг с другом, и для каждой в отдельном потоке вызывается какой-нибудь функционал, типа "получить звук на выходе". Когда пользователь удаляет один из чейнов (и я у себя вызываю delete soundChain, условно), его функционал все еще может выполняться. И пока этот функционал выполняется, я могу проверить, что раз больше саундчейнов нет, а пользователь вроде как хочет выйти, то я удаляю и экземпляр Lib. И все крашится, потому что функционал пытается обратиться к Lib, а его уже нет.
У Lib есть mutex, и я ставлю lock при любом обращении к библиотеке. Но это не помогает в моем случае. Чаще всего эксепшен падает в деструкторе Lib, и в стеке лежит вызов деструктора base mutex.

Можно ли как-то проверять для каждого SoundChain, что он сейчас не выполняет какой-то функционал? Или можно ли как-то встать в деструкторе Lib, дождаться выполнения всего функционала в чейных и только потом продолжить удаление?
302 1634578
>>34547
Мож делать шаред птр на твои чейны? Чтобы удалялись когда больше никем не используется
303 1634590
>>34547

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


И как же ты это проверяешь?

> я удаляю и экземпляр Lib


А надо ли это делать тебе, если создавал пользователь?
Ну вообще все можно конечно сделать.
304 1634654
>>34578
Да, была такая мысль, но не уверен, что могу так сделать. Библиотека для использования с игровыми движками, в т.ч. с Unity/C#, и по-моему я могу передавать между Unity/C++ либо простые типы, либо указатель на void.

>>34590
Когда в Unity закрывается сцена/приложение, я вызываю Finalize() у своей библиотеки, которая проходит по вектору из чейнов. Как раз перед этим все чейны удаляются, поэтому вектор уже пуст. Но один из текущих потоков уже успел перейти на адрес метода "получить звук" и выполняет инструкции.
Собственно, пользователь не создает Lib напрямую: я предоставляю интерфейс, который создает Lib и возвращает указатель на него.
В любом случае проблема останется: потенциально можно вызвать деструктор Lib в тот момент, когда чейнов нет, но какой-то из их методов вызван и выполняется. И я не могу придумать, как этого избежать. Как сделать защиту от дурака, чтобы у пользователя либы любого уровня не возникло таких проблем.
1444326059524.png71 Кб, 1058x510
305 1634657
>>34654
Хз как ты запускаешь потоки
В любом случае гугли, вариантов десятки
Начиная с подпиcки в ОС на сигнал/сообщение/семафор об этом
Заканчивая новомодными async/future
306 1634794
>>34657
В том-то и дело, что потоки не я запускаю, это происходит где-то внутри Unity, и я не могу этим управлять.
307 1634824
>>34794
Ну все равно ты как-то это делаешь. В юнити C# есть Thread.IsAlive, к нему никак не достучаться?
308 1634826
>>34824
Поизучаю эту тему.
В идеале бы, правда, хотелось бы все сложные штуки спрятать внутрь библиотеки и предоставлять максимально простой API, чтобы пользователю не пришлось по мануалу реализовывать костыли.
309 1634835
Какой же ебнутый синтаксис у шаблонов с переменным количеством аргументов
310 1634851
>>34835
Предложи свой.
311 1634930
Можно создавать файлы с расширением не .txt, а .TXT
312 1634931
>>34930
Это вопрос
313 1634934
>>34930
можно!
314 1634965
>>34930
А можно .jpeg вместо .JPG?
315 1635001
>>34930
А c++ тут причем? Это особенности операционной системы.
В винде ты можешь называть и так и так, это будет один файл. А в линуксе разные. Так что проблемы гарантированы.
316 1635014
>>34965
Нет! Только TXT
317 1635170
>>35001
Та в линуксе ж как бы пофиг на экстеншон
318 1635244
Что значит failbit равный двум при открытии файла?
319 1635248
>>35244

>bit


>равный двум

320 1635255
>>35248
Как понять почему файл не открывается? Пишу fstream f("FILENAME.TXT")
cout << f.failbit
Выводит 2
321 1635260
>>35255
failbit это константа.
Может ты уже откроешь доки? Как минимум вызывать надо fail()
322 1635271
>>35248
>>35255

Бля, челы, не смешите. Мне нельзя
323 1635275
>>35260
А как понять в чем ошибка?
324 1635280
>>35275
Как я понимаю, либо errno, либо ловить исключение.
https://stackoverflow.com/questions/17337602/how-to-get-error-message-when-ifstream-open-fails
325 1635282
>>35280

Не либо, а и.

Либо fail() как чел выше сказал, либо тайкеч.
Но он тебе не даст в эксепшене ошибку, а напишет "iostream stream error". Это системная ошибка.

За ошибкой зырь errno.
326 1635284
>>35282
Посмотри последний ответ
e.what
Там есть и Permission denied, и No such file or directory, и File name too long
327 1635285
>>35284
e.what()
быстрофикс
328 1635287
>>35284
А как может быть ошибка No such file in directory, если он должен создаться при отсутствии
329 1635289
>>35287
Для этого надо открывать с флагом
file.open("test.txt",fstream::out)
Но я рили советую почитать главу учебника какого нибудь, там все подряд объясняется
330 1635315
>>34835
Нормальный синтаксис, не пизди. Не хватает только
using types = Types...;
331 1635475
>>35170
На экстеншон пофигу, но файл abc.txt и abc.TXT будут разными файлами. Оба текстовые, но разные. Unix-like системы Case Sensitive.
>>35001
Винда, кстати, внутри тоже, и файлы постоянно проходят через слой абстракции, чтобы от этого избавиться. Так что в зависимости от того, насколько ты своим с++ полезешь, для винды тоже вполне может разница между .txt и .TXT появиться.
332 1635489
Есть такая строка.
for (vector<int>::iterator i = Good.begin(); i < Good.end(); ++i) if (i != Good.end()) o << *i << ' ';
В этом месте if (i != Good.end()) происходит vector iterators incompatible. как фиксить?
333 1635490
>>35489
Только там --Good.end()
334 1635669
>>35489

>как фиксить?


for (auto i : Good) o << *i << ' ';
335 1635674
>>35669
i без звёзды, это я скопировал
336 1635690
>>35490
Ну так ты ещё спрашиваешь, почему инвалидируются итераторы?
337 1635691
>>35690
Или это я залупоглазый спросонья.
Good - что за тип?
338 1635733
>>35691
Вектор
339 1635735
>>35669
А почему не работает так, как я написал?
340 1635766
>>35475

>На экстеншон пофигу, но файл abc.txt и abc.TXT будут разными файлами. Оба текстовые, но разные. Unix-like системы Case Sensitive.



А, ну фуйлы-то разные, есть такое. Я думал типа abc.txt будет работать, а abc.TXT нет
341 1635773
>>35691
>>35733

Ща бы переменные большими буквами называть. Конвенцию блюдите, товарищи. Наш язык и без этого читать невозможно
code.png4 Кб, 573x103
342 1635775
>>35735
В том виде как у тебя написано - работает, я прост короче написал.
343 1635803
>>35773

> Конвенцию блюдите


Какую из?
344 1635808
>>35803
А в любой же переменные camel case с маленькой, не? Ну или с маленькой и с подчеркиваниями...
345 1635822
>>35808
Ты сейчас три абсолютно разных стиля назвал. Всё три видел в одном и том же проекте
346 1636174
>>35773
Так а я-то тут причем, я из его кода взял имя переменной.

>>35733
Круто, что вектор, а что в тебя внутри?
Ругается на несоответствие итераторов, будто ты хочешь итератору вектора интов присвоить итератор вектора даблов, например.
347 1636277
В тему конвенций и камел-блядь-кейсов.
Анон, посоветуй Code Style Guide чей-нибудь.
Давным-давно читал гугловый и lockheed martin'овский (для встраиваемых систем).
Но после работы в настоящих проектах стиль написания кода стал соотвествующим.
348 1636305
>>36277
CppCoreGuidelines.
349 1636342
>>36277
Пишу на Doom3 code style от Джона-Наше-Все-Кармака, с очень небольшими изменениями.

Пробелоблядям перо под ребро и хуй в жопу.
350 1636364
>>36277
Венгерская нотация.
351 1636439
>>36174
Вектор интов. Вроде. Я решил по старинке, задача зашла и код я стер
352 1636441
vector<bool> input(n);
for (int i = 0; i < n; i++) cin >> input;
Почему нельзя так? С интом можно, а булом нельзя?
353 1636449
>>36441
Потому что это ебланство. Вот "123" - это true? А "0123"? А "хуй"? Вот и в комитете не стали заморачиваться. Пиши через getline и смотри на строку, или на крайний случай через boolalpha, но не обосрись с локалями.
354 1636465
>>36441

> С интом можно,


Только делает не то что ты думаешь.

>а булом нельзя


Для вектор була своя хитровыебанная специализация пакующая по 8 элементов в байт, работа с элементами через прокси класс.
355 1636468
>>36465

> Только делает не то что ты думаешь.


???
356 1636486
>>36441

>vector<bool> input(n);


>for (int i = 0; i < n; i++) cin >> input;


>


Это не компилируется и с интом
357 1636620
>>36486
Опечатка. input
358 1636629
359 1636632
>>36629
Блять. Режет скобки квадратные. Там конечно же i ный элемент
1467031441727.png45 Кб, 535x523
360 1636673
361 1636737
Как вынести тело метода за тело класса? Зачем это может быть нужно и когда и почему этого нельзя избежать?
362 1636738
>>36673
Пердолю забыли спросить.
363 1636740
>>36737

>Как вынести тело метода за тело класса?


Вперёд ногами.
364 1636764
>>36737

>Как вынести тело метода за тело класса?


Перейти с шарпа на кресты.
365 1636779
>>36764
А как же фабричный метод?
366 1636790
>>26937 (OP)
Сап, есть один класс, шаблонный, внутри ещё один public-класс (нешаблонный),в этом классе шаблонный (только чтобы передачу по универсальной ссылке сделать) метод operator(). Т.е.
template <typename T1=float, typename T2=uint32_t, enable_if_t<...>=0>
class A {
public:
class B {
template < typename vec, enable_if_t< decay(vec) == vector<T1>, tipa togo...> >
vec operator()(vec && input) {...}
....
};
...
};
В общем, не могу написать специализацию метода operator(), если T1 и T2 принимают дефолтные (float, uint32_t) значения. Как эо вообще сделать?
Нельзя переписывать весь вложенный класс B, не хочу.
367 1636792
>>36790

> vec operator()(vec && input) {...}


> vector<T1> operator()(vec && input) {...}


Быстрофикс
368 1636793
нешаблонные классы должны опираться на шаблонные, иными словами нельзя впихнуть квадратное в круглое
369 1636794
>>36793
Ты это кому?
370 1636795
790му
371 1636797
>>36795
Всмысле нельзя? Что это для меня значит?
Очевидно, что класс B тоже шаблонный.
Когда я говорю, что он "нешаблонный", я просто имею в виду, что для него не написано отдельного template<>, но класс B зависит от типов T1 и T2 внешнего класса А.
372 1636803
пажжи, а зачем тебе два разных типа с которыми может работать этот класс?
373 1636804
Ты делаешь маршрутизатор чтоли?
374 1636805
>>36803
Один тип арифметический, другой тип аналог size_t.
Ну внутри классов очень много всяких таких данных для расчётов.
>>36804
Кек, нет, нейрон очка.
375 1636807
Что кек? Отвечай нормально. имхо если типы никак не связаны это уже лакмусовая бумажка что что то тут не так.
376 1636810
>>36807
Ничего не кек...
В чём проблемы, если T1 и Т2 никак не связаны?
Всё равно класс будет работать, если T1 арифметический, а T2 беззнаковый.
Какие проблемы?
377 1636813
Проблема в том что один из этих типов тоже должен быть темплейтный иначе внутри класса они не смогут собраться в какую либо конструкцию и у тебя класс будет делать по сути две разные вещи
378 1636814
>>36813
Я тебя не понимаю, T1 и T2 - простые типы.
Класс A содержит вектора T1, размерами всего оперирует с помощью T2.
Класс А содержит вектор<B>, поэтому класс B и объявлен внутри, он больше нигде не нужен.
Класс B тоже дробит арифметику T1, размерами оперирует в T2.
Вот и... всё. Господи, где я провинился?
379 1636818
Я примерно понимаю. Ты не сможешь обьявить переменную типа класса А, так как походу ты не сможешь впихнуть в это обьявление тип B
380 1636822
Товарищи.

Надо написать на сишке.(вообще на чём угодно, но я только си чуть-чуть понимаю) конечный автомат лексического анализатора. Для лабы. Преподаватель сказал что автоматом написать будет проще. Не особо верю, но требуется использование автомата.

Что можно посмотреть, почитать?
Непонимать предмет. Не понимать автомат.

Находил код. Там охуительный код длиной миллион символов из кучи кейсов.
https://github.com/nohajc/.KEK-on-Rails/blob/master/compiler/lexan.cpp
383 1636833
>>36828
>>36829
Пасиба.
:3
Бля

Зачем я поступал на программиста...
384 1636882
>>36790
Для методов нет частичной специализации, нужно писать ещё обёртки...
385 1636887
>>36814

> Вот и... всё. Господи, где я провинился?


Написал какую-то залупу, которую даже сам не до конца понял. Попробуй заново
386 1636891
>>36818
Я все могу объявить, код рабочий, блять.
Я не могу специализацию метода класса В написать, чтобы дернуть С-функцию, которая АВХ-оптимизированна.
387 1636892
>>36887
ты про последний пост или про классы?
Классы самое то, долго над ними думал.
Почему я не могу просто для конкретного инстанса шаблона написать метод, но не для класса А, а для класса В - непонятно.
388 1636893
>>36882
Как это нет?
Я что, весь класс должен переписывать?
Что оборачивать-то?
Вынести за класс некую обобщенную функцию, из оператора() ее дергать - и уже для нее написать специализацию?
389 1637086
>>36893
так сишная функция принимает конкретный тип float. У тебя может быть обобщённый инстанс как с флоатом так и с другим типом. В общем любая обобщённая функция должна в конечном итоге вызывать обобщенную функцию, если она вызывает функцию с конкретным типом то он нуждается в явном привидении что делает бессмысленным саму идею
390 1637094
>>37086
дополню что это обычные функции должны вызывать обобщенные, если происходит наоборот то это в корне не верно.
391 1637099
>>37086
Ещё дополню. Даже так

>любая обобщённая функция должна в конечном итоге вызывать обобщенную функцию


Любая обобщённая функция должна вызывать ещё более обобщённую.
Кому это я всё пишу?
image.png262 Кб, 729x486
392 1637171
Сап, гайзы. Короче, миниопрос. Интересно тип. Что вы пишете? Какие коммерчисие проекты пишут двачеры? Начну с себя:

Майкросервисное говнище, связанное с банковским делом
393 1637173
>>36364
На С++ очень сложно придерживаться ей, уродливый код выходит, лучше снейк-кейс. А вот для сишечки самое то.
394 1637174
Значи так, ранг такой:

Гут: Алгоритмы для гугла, хайлоад, веб-сервера, ну вы поняли.
Пайдот: микрокалл
Ну такое: игрушечки
Полный пиздец: Отечественный десктопный софт qt(бонус если на winapi)
Ватафак блять: микропенисы
395 1637177
>>37173
>>36277

Гугловскую используй.
396 1637178
>>37174

> Пайдот: микрокалл


> Ватафак блять: микропенисы



Микрокалл это микросервисы, а микропенисы это микроконтроллеры...
397 1637194
>>37174
Чего не так с qt?
398 1637225
>>37194

Ну, то есть, кроме того что её придумали евреи? чтобы сделать тебя геем?

Ну как бы тебе сказать... Гейский недо-DSL со своим Q_OBJECT, слоты и сигналы просто убогие, библиотека Network калл.

Да и вообще вся их ИКОСИСТЕМА меня просто выносит, ну что это за пиздец? Если я хочу просто библиотеку для юая, нахуй вы мне решили всю stl переписать своей парашей?

Ещё и на modern C++ они большую бибу кладут.
Бля, вот рили, сделайте норм либу для отрисовки кроссплатформенного гуя и ВСЁ. Не надо qmake изобретать, не надо всё это.
399 1637240
>>37171
Абу-Бот плез, каждый тред одно и тоже.
400 1637313
>>37225
UI на Qt можно и без moc писать
401 1637314
Почему во всяких контестах такой большой лимит по памяти? 256 мегабайт. Пиздец же, не? Почему не 10? Не 2?
402 1637379
>>37314
Помнится, в шкалке на олимпиадке по информатике было 2. Но это тоже сравнительно дохуя для задач, решающихся в 5 переменных.
403 1637387
>>37379
Я помню одну олимпиаду с лимитом вроде в 8Мб. Там была задача, где поле в память не влезало.
Пришлось паковать биты - единственный случай в моей жизни, где мог бы пригодиться вектор булов, но в то время я писал только на С и отлично себя чувствовал
404 1637389
>>37387
Вот он, нанохайлоад.
изображение.png5 Кб, 262x293
405 1637536
Можно ли как-то сделать в деструкторе класса удаление собственных объектое?
406 1637539
>>37536
Я там тильду забыл, ну да похуй.
407 1637550
>>37536
Деструктор для этого и существует как бы. Его задача - чистить память, связанную с объектами класса.
408 1637553
>>37550
Но можно ли реализовать удаление объекта в деструкторе самого объекта?
409 1637554
J
410 1637557
>>37553
Какого объекта?
411 1637563
Вы на QT пишете десктоп?
А GTK-шники есть еще или они вымирают?
Особенно линукс интересует.
412 1637564
тип метод();
Так можно делать в описании класса? Метод возвращает переменную(объект) указанного типа.
413 1637567
>>37553
Ты про delete this что ли? Никогда тпк не делай. И осиль смартпоинтеры.
414 1637572
>>37567
Как раз про них и вспомнил, но решил тут спросить, может про this что подскажут. Что за тпк? И почему не делай? Покажи на примере куска куда, как именно не надо, ты говоришь, делать. И почему.
415 1637573
>>37572

> тпк


так

> И почему не делай?


Про это уже много чего написано.
http://alenacpp.blogspot.com/2009/05/delete-this.html
416 1637591
>>37567

>осиль смартпоинтеры


Чтобы писать на JS прямо из под крестов?
417 1637597
Хранение произвольной лямбды, как член класса. Возможно? std::function не предлагать.
418 1637598
>>37536
Нет. Гугли смартпоинтеры, к ним можно кастом аллокатор и делитер прикрутить.
419 1637601
>>37591
Лучше уж разводить JS в крестах, чем из-за эксепшена насладиться утечкой памяти.
420 1637620
>>37591
причем тут JS?
421 1637636
>>37620
При том же, что и твоя будущая профессия.
422 1637666
>>37597
Делай класс шаблонным где тип - это тип лямбды
423 1637667
>>27129
Да и хуй на него. на самом деле нет
424 1637668
>>27181
Я работаю, мне норм.
425 1637677
>>37666
Вот только у каждой лябмды свой тип. Пусть использует std::function и не выебывается.
426 1637692
>>37677
This.
хотя можно кастануть указатель на лямбду к void*
427 1637693
>>37591
Луддит, ты?
428 1637844
>>37171
Инсталляторы.
Гуй на известном в узких кругах фреймворке и тонны логики по общению с системой, драйверами, сервисами.
1457215664550.png208 Кб, 1517x1007
429 1637855
>>37591

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


Da.
430 1637891
>>37636
Но я уже шестой год зарабатываю деньги сиплюсплюсом. Причем тут JS?
изображение.png931 Кб, 1020x649
431 1637985
>>37572

>Что за тпк?



Транспортно - пусковой контейнер

Для стратегической стрельбы в ногу стратегической байторакетой.
.png1 Кб, 201x27
432 1638020
Как это работает?
Screenshot2020-03-2015-08-14.png34 Кб, 416x443
433 1638065
Хочу тут пройтись по БД, используя итераторы. Никакими библиотеками, кроме сишного sqlite3, не пользуюсь. Итераторы - для того, чтобы не возвращать целый вектор, который может не влезть в оперативочку.

И вот, оформляя API, столкнулся с тем, что как-то уж очень сложно получаются итераторы. Я все правильно делаю? На каждый запрос получается нужно создать аж по два класса: класс, реализующий простые однострочные begin/end, и класс, реализующий операторы.
434 1638142
>>38020
Что тебя смущает?
435 1638154
>>38142
Не могу понять как указатель приводится к ссылке.
436 1638179
>>38154
По сути это создание ссылки на указатель. Такой синтаксис. Тоже самое в аргументах функций происходит, когда ты передаешь аргумент по ссылке - там объект кастится в ссылку на этот объект. Конретно в таком как у тебя виде его мало используют. Но оно со всем работает https://ideone.com/F99SH3
437 1638194
>>38065

> класс, реализующий простые однострочные begin/end


В общем случае это будет класс контейнер который хранит колекцию результатов. А так как у тебя контейнера нет то у него мало работы. Скорее всего можно легко сделать его шаблонным.
438 1638247
уважаемые крестоносцы
вопрос такой
я переехал к вам с шарпов, поэтому не все шарю. Как трушнее подключать либы: через симейк или просто ебашить в папку с проектом?
439 1638249
>>38247
через VCPKG или Conan
440 1638254
>>38249>>38249
на линуксе тоже?
441 1638256
>>38254
и то и то кроссплатформенно
442 1638257
>>38256
спасибо
443 1638286
>>38247
Однохуйственно.
444 1638310
Сап Аноны, недавно вкатился в изучение C++ и столкнулся с такой проблемой, getline() не работает в switch. Поискав решение проблемы в интернете, я нашёл решение проблемы, но внятного объяснения почему так, а не по другому и как это вообще работает - я не нашёл. Аноны, подскажите, что такое cin.ignore(), cin.clear() и cin.sync(). С меня чай.
445 1638314
>>38310

>getline() не работает в switch


Потому что switch работает только на целые числа, а не строки.
Потому что getline() не возвращает значением строку, а записывает ее в параметр.

>cin.ignore(), cin.clear() и cin.sync()


Этим все равно никто не пользуется.
446 1638316
>>38314
Я понимаю, что в switch целое число, речь о том, что я не могу считать строку в свитче без выше перечисленного. В моём случае cin.sync и cin.cleaar
447 1638349
>>38316
Я не знаю что такое getline в свиче.
448 1638365
>>38316
У тебя cin перед switch, да? Он передает из потока только символы без \n. Когда доходит до твоего гетлайна, он сразу берет из потока этот \n и ты не можешь ничего ввести поэтому.
Добавь сразу после строки с cin cin.ignore();
449 1638366
>>38310
Телепаты в отпуске, хз про что ты.
image.png7 Кб, 620x119
450 1638378
451 1638385
>>38365
Почему лучше использовать ignore(), а не sync()?
452 1638392
>>38385
cin.ignore отбрасывает символы, вплоть до указанного числа, или до тех пор, пока не будет достигнут разделитель (если он включен). Если вы вызываете его без аргументов, он отбрасывает один символ из входного буфера.

Например, cin.ignore (80, '\n') будет игнорировать либо 80 символов, либо столько, сколько они найдут, пока не нажмет на новую строку.

cin.sync отбрасывает все непрочитанные символы из входного буфера. Однако в каждой реализации это не гарантируется. Поэтому ignore - лучший выбор, если вы хотите согласованности.
213.PNG21 Кб, 1049x209
453 1638417
Приветствую, запускаю с++ код с помощью VS Code, вроде все было норм (хотя я овердофига времени потратил на установку компилятора(ов), а в итоге через расширение Code Runner запускаю код (хз, нашло ли это расширение у меня компилятор и его юзает или там встроенно что-то))
Когда запускаю через Code Runner , там видно, что это g++ (который я поставил и пытался подружить с вс кодом, но чет не вышло). А у g++ есть такая фишка как #include <bits/stdc++.h>, но встроенный IntelliSense жалуется на него (он от майков). В настройках плагина С++ пытаюсь изменить положение компилятора, чтоб интелисенс не жаловался, но вылезает такая проблема. Кавычки везде пробовал - не работает. В гугле что-то непонятное (сори если туплю).
Можете помочь? Или есть способы запуска с++ кода лучше, чем те, что у меня?
454 1638419
>>38417

> vs code


Удаляй этот блокнот, и ставь нормальное иде - CLion/Qt Creator
455 1638440
>>38417
Пчел, ну ты даёшь.
Ставить vscode на windows, да ещё и g++, это просто пиздец
456 1638446
>>38419
Хуйню не неси.
457 1638450
>>38446
Всдаун порвался.
458 1638461
VIM
459 1638467
>>38461
Emacs
460 1638527
461 1638711
Анон, расскажи про C++ и веб-сервисы. Как так получилось, что ничего не получилось? Вот можно же FastCGI использовать, в теории очень даже пиздато будет, почему же всем похуй?
462 1638808
>>37666
Я так и сделал, лютый кастыль, но работает. Хотелось бы рассмотреть другие варианты.

>>37677
Вообще эту проблему должен решать темплейт аргумент дидакшен, но чето нихуя. Пофиксил через decltype(lambda).
std::function оверхед + оверинжинеринг, вот когда std::function_ref запилят, тогда можно будет подмуать.
463 1638848
Ебал я эти хитровыебанные коллизии скобочной инициализации и списков инициализации. Хули нельзя было запилить нормальный синтаксис {{1, 2, 3}}, а не играть в угадайку, какой конструктор вызовется?
464 1638868
>>38417
Зачем этот пердолинг с компиляторами и расширениями? Просто ставишь вижуал студию комьюнити, и всё.
465 1638870
>>38419

>Qt Creator


>Qt


Говнари пытались косплеить Эппл с их

>"изобретем свой язык со своими шлюхами? njkmrj e нас"


и предсказуемо обосрались. Кому нужна анальная залупа на неанальной платформе.
466 1638884
>>38870
IDE то тут причем, дебилушка? Они уже взаимодействие с языковыми серверами прикрутили, что бы в идеале вообще на любом языке писать можно было.
467 1638885
>>38884

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


Какие еще, в жопу, сервера.

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


Вот когда воплотится в реальность, тогда и кукарекай, а пока свои шизоидные фантазии держи при себе.
468 1638887
>>38885

>кококо покпок кукареку

469 1638888
Бамп
sage 470 1638892
>>38711
Слишком сложно для жс-питухов.
471 1638906
>>38711
Нужны квалифицированные кадры, а это непрактично, удобнее когда тупые макаки справляются.
472 1638908
>>38711
Потому что веб-бляди должны страдать
sage 473 1638914
>>38892
>>38906
>>38908
Чёт в голосину с крестоблядей, дефающих своё говно мамонта одной и той же мантрой РРРРЯЯЯ НИАСИЛЯТОРЫ

Крестобляди, крестобляди never change.

мимошёл
474 1638921
>>38914
Настолько говно мамонта, что живее всех живых.
475 1638955
>>38711
все получилось? Бэк фейсбука на С++. бэк яндекса на С++, дохуя подобного ХУЙЛОАДА в больших конторах - на С++.
476 1638964
>>38955
и еще есть слушок, что Озон суровый хуйлоад хочет перевести на кресты с ГОвна, с приходом Александра Фокина
477 1638981
>>37171
ничего не пишу как вкатиться в эту залупу
478 1639036
>>38914
Не осилил?
479 1639067
Почему я могу сделать специализацию шаблона хеш класса для своего класса, но например для string не могу?
480 1639164
>>38955
>>38964
Ясно.
А в каком виде все это делается? Типа, крутится на веб-сервере какое-нибудь java-приложение, которое обрабатывает HTTP-запросы; а когда этому приложению надо что-то суровое посчитать, оно по RPC обращается (напрямую или через очередь сообщений) к уже висящему в памяти написанному на плюсах 32-поточному чудовищу?
image.png66 Кб, 1366x768
481 1639270
Почему не хочет?
482 1639275
>>39270
return 0;
не?
sage 483 1639279
>>39270
Там написано.
484 1639280
>>39279
Бля. я лошара. До этого он просто ругался на отсутствие этой функции
485 1639282
>>39270
Смотришь сообщение об ошибке
Смотришь в доки какие же там параметры
sage 486 1639294
>>39280
Ты зумер с сдвг.
487 1639301
>>39164
просто буст асио поллит серверный сокет и вся логика внутри.
488 1639333
Можно в плюсах использовать отступы вместо {}?
489 1639336
>>39333
Весна наступила
490 1639339
>>39067
Потому что std::string это уже специализация.
491 1639345
>>39333
Можешь простенький препроцессор написать сам
492 1639353
>>39333
Подожди C++30, там будет полноценный компайлтайм, и можно будет перед компиляцией получить весь исходник в виде массива байт, передать его своему коллбеку и изменять как хочешь. Как в Perl
493 1639366
>>28929
Теперь поддержка стабильных версий платная.
494 1639451
У меня есть шаблонная функция с такими параметрами (std::vector<T>&, T), и компилятор почему то не может подобрать шаблон при вызове ее с аргументами (vector<string>, "test"), почему?
495 1639462
>>39451
Потому что "test" это const char*, а не string. T != T
496 1639463
>>39333
http://trevorjim.com/python-is-not-context-free/

Как минимум, лямбды по пизде пойдут.
497 1639465
>>38808
А типа lambda это не оверхед + оверинжинеринг? Ок лол. Ты бенчмарки погоняй, говорят что если с параметрами не мудрить сильно то std::function работает так же быстро как и виртуальная функция.
498 1639470
>>38249
CMake умеет подкачивать из GIT репозиториев, например.
p5y02dzgcgl41.jpg124 Кб, 960x640
499 1639485
>>26937 (OP)
Давайте на следующем перекате уже заменим картинки на что-нибудь симпатичное.
500 1639492
Что плохого в отказе от совместимости abi? Это же не апи меняют, код останется прежним.
501 1639495
>>39492
Вот бы ещё все уже скомпилированные либы и все их копии магически перекомпилировались новым компилятором. А сейчас придётся очень внимательно следить за версиями всех либ, и не дай бог ещё придётся с новыми либами вынужденно юзать старые либы, когда новые версии не устраивают на уровне апи.
502 1639503
>>39492
Писателям laba1 ничего, а банкам стремно перекомпилировать весь код, а вдруг что то не соберется.
503 1639508
>>39495
Хуйня всё это. Какие есть варианты:
1) либа опенсорс - взял и пересобрал
2) либа не опенсорс, есть исходники - взял и пересобрал
3) либа не опенсорс, нет исходников - еби вендора, пусть пересобирает. Почему может не пересобрать? Потому что это древнее говно, тогда его нахуй нужно гнать, из проектов-то с c++23. Либо потому что вендор еблан, тогда бабло его покарает
504 1639527
>>39508

> еби вендора


И сдвигай сроки релиза. Либо забивай на новые плюсы и сиди на говне мамонта.
505 1639538
>>39508
Дело в том, что комитет и состоит из вендоров, лол.
506 1639566
>>39270

>using namespace std;



Как хорошо, что ты не вкатишься к серьезным людям работать.
507 1639576
>>39527
Пока не выбьешь, не обновляйся

Кстати, вот все говорят что у них там какая-то хуйня отвалится, если сломать ABI, но есть реальные примеры? Мне что-то сложно представить серьезную контору, которая покупает либы без исходников.
508 1639605
>>39576
Почитай то, что Титус Винтерс про гугл писал, какие там эффорты должны быть при смене АБИ. Это при том, что Винтерс дико топит за смену АБИ
509 1639614
>>39576
Наличие исходников ничего не гарантирует
510 1639673
>>39566
Поясни про это поподробнее пожалуйста.
мимотольконачинаюизучатьязык
511 1639689
>>39673
Неймспейсы специально придумали, чтобы снизить вероятность конфликта имён, а не чтобы их потом выключали. Вот будет в двух либах функция с одинаковым именем, и всё, пиздец, придётся искать, в каком из инклудов она проскочила. А с неймспейсами этого не будет.
Так что вместо using namespace лучше всегда явно писать std::string, std::cout и т д.

мимо
512 1639698
>>39689
using namespace тоже ведь не просто так придумали, в небольших программах, как у анона выше, нет ничего предосудительного использовать это.
513 1639709
>>39698
Да. И всё же лучше изначально готовить себя к большим проектам, где облегчить себе жизнь не удастся.
514 1639789
>>39465
Что за чушь ты пишешь? Лямбда инлайнится в обычный вызов функции с параметрами на стеке, а std::function кроме виртуального вызова имеет еще дохуя бойлерплейта. Я бы и с указателем на функцию остался доволен, но тогда придется еще и аргументы отдельно в tuple хранить, а лямбда удобно все в один callable объект пакует.
515 1640117
>>26937 (OP)
Как в Visual Studio 2019 Preview создать пустой проект WDM драйвера? Что для этого надо установить и как настроить среду?
516 1640144
расскажите почему Good night? какие подводные, как то повлияет на кроссплатформенность? на что вообще повиляет, что такое ABI, для чего нужно?

мимо нуфаг
517 1640150
>>40144

> что такое ABI


Грубо говоря, изменится формат dll-ек, и новые не будут совместимы со старыми.

> для чего нужно


Для совместимости одних бинарных модулей с другими.

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


Выше обсуждали.

> как то повлияет на кроссплатформенность


Нет. Раньше на всех платформах было всё было плохо, а теперь будет очень плохо.

> почему Good night


Нет.
518 1640204
>>40150
спасибо добр человек

еще хотел бы спросить у всех, я кирилл, хочу игры учебные делать, но на linux, соответственно какой компилятор юзать, и какую либу
519 1640212
>>40204
Компилятор - дефолтный g++
Либа - SFML.
520 1640271
>>40117
WDK скачай
521 1640274
>>40204
clang
SDL2
522 1640320
>>39605

>Титус


Тит же
523 1640436
Есть ли способ обмазываться полиморфизмом подтипов "извне"?
Скажем, есть функция, принимающая указатель на Base, хочу сделать спецификацию для Derived1, Derived2,..., DerivedN.
Или только AD-HOC и dynamic_cast-ом приводить к нужному типу перед вызовом?
524 1640440
>>40150

>Грубо говоря, изменится формат dll-ек, и новые не будут совместимы со старыми.


Хмм, ну я и раньше считал, что кресты через длл работают только если всё откомпилено одним и тем же компилятором с одними и теми же настройками. То есть, ничего не изменилось?
525 1640442
>>40440
Если сменить abi то количество комбинаций настроек удвоится, очевидно. Как сейчас есть mutithread/singlethrrad, debug/release, станет еще prec++23/postc++23
526 1640447
Вот у меня есть шаблонная функция, которая должна принимать класс и создавать его экземпляр внутри себя:
template<typename T> int Func() {
T t; t.func();
}
class T {public: void func();};
Func<T>();

Но пользователь может передать не имя класса, а экземпляр
T t;
Func<t>();

Как сделать чтобы он этого не мог? Понятно что оно всё равно работать не будет, но хочется сделать красивее

есть же всякие std::enable_if
527 1640449
>>39275

>return 0;


>не?


по стандарту функция int main() не обязана возвращать что-либо (и это единственное исключение)
528 1640504
Посаны. Знаю Джаву. Точнее думал как, вот выучу её, весь учебник и будет охуенно. Но получилось немного не круто. Не зашла она в итоге, но что-то простое накалякать могу. За какое время можно освоить плюсы более-менее, чтобы устроиться на работу джуниором/стажёром?
529 1640510
>>40504

> За какое время можно освоить плюсы


Года два
530 1640531
не конпеляется в vs 2017 community, шо надо установить в vs installer 2017 для win 7, скочял тонны говна так оно еще и не работает, на втором скрине отмечено шо я установил, третий скрин продолжение второго
531 1640689
библиотека для работы с json
532 1640699
>>40689
nlohmann json

>>40531
Очень похоже на захардкоженные пути в проекте на виндовс сдк определенной версии.
533 1640709
>>40531
>>40699
Да нет, тут пациент пытается скомпилить некрокод под древней студией под древней ОС
534 1640744
может ли в json весь файл быть массивом? т. е. начинается файл [, а заканчивается ]
536 1640799
>>40709
Предпоследняя версия винды и студии это теперь древняя? Ну это уже толстота, алсо у меня все работает на вин7+vs2017/vs2019
537 1640804
>>40744
Вроде бы по спекам может, но на практике не используется из за какой то уязвимости в браузерах.
538 1640840
>>40793
>>40709
>>40699
ну у мну всё работает теперь, нахуевертил там чот, нахера столько легаси пакетов просто в ахуе, в 7-й венде выбрал сдк для вин 10, фак логик, куча всякого говна накатил чтобы unreal project сконпелять. Вин 10 религия не позволяет ставить, надо будет на линухе затестить.
539 1641237
>>40744
C++ тут при том, что..?
540 1641265
Всем здрасте, решил я вкатится в программирование и выбрал собственно язык С++ и у меня такой вопрос... С чего начинать? Я скачал на рутрекере видосы с обучением для новичков, посмотрел их, усвоил, но что дальше? Во всех гайдах рассказывают только про циклы, массивы и т.д И вот уже пару дней сижу и думаю как дальше изучать то, может вы что подскажите.
541 1641361
>>40447

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


При желании может хоть хуй сломать об одеяло.
Тем более что передать-то и не может. Ты сам-то пробовал скомпилировать что написал?
542 1641419
Когда wstring уже будет нормально работать?
543 1641449
>>41419
он нормально работает
544 1641468
>>40447
Вроде еще не 1 апреля.
545 1641521
>>41419
Подождем c++20
546 1641647
>>41419
Что тебя не устраивает?
547 1641789
>>40436
Visitor?
548 1641865
for(int x : xs) - это что за итератор?
549 1641893
>>41865
Ты посмотри во что range-based for loop раскрывается, и поймёшь.
550 1641905
>>41893
Все, нашел, это C++11 фича. Кстати как vector инициализировали до 11й версии? Только через push_back?
551 1641906
>>41905
либо преаллокация и поэлементное присваивание
552 1641959
>>40436
Были разговоры завезти double/multiple dispatch но пока костылится паттерном визитор.
553 1641971
>>41789
>>41959
Добра
554 1642048
>>41265

>решил я вкатится в программирование и выбрал собственно язык С++


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

>С чего начинать?


Со вката во что-нибудь из java/js+react/golang/php. Там не нужны серьезные знания в камплюхтер саенс, вкатывание может занять год или даже меньше при должном усердии.
555 1642184
>>42048
Катись на хуй в java. Плюсы это хуевый первый язык для программирования (как и си). Сейчас везде объектная параша, так что я бы советовал такой путь
1. Python, сразу можно блять получить результат, пощупать программирование, твое не твое. Познакомиться с объектами, скриптами, структурами данных и админ и инженер и хуй пойми кто может попробовать.
2. Тут наверное Java - можно просто палкой потыкать пару месяцев, синтаксис классов, хуясов и т.д.
3. Си - для с++ это обязательно, только парадокс, си перед си++ мешает программированию на си++ т.к. объектная модель должна крепко уложиться в голове, а си этому не способствует, зато идет лучшее понимание архитектуры и вообще всего си++.
556 1642186
>>42184
Но С — отличный первый язык программирования. Там всё такое.. програмистское. А питон — плохонький. В С всё понятно, вот тебе скобочки, вот тебе индексы, а в питоне какие-то значимые пробелы, листовая механика циклов. Непонятно, что важно, а что нет.
557 1642197
>>41419
Ненужное говно ненужно
558 1642198
>>41905
Парой итераторов
559 1642225
Работотадель в одном из требований к тестовому указал "написать инструкцию по сборке". Что это может означать, при условии, что в проекте 3 файла и все заголовки из STL?
560 1642227
>>42225
makefile напиши.
image.png236 Кб, 1392x860
561 1642704
>>37597
В с++20 завезли. Пикрилейтед.
562 1642865
>>42704
АХуеть какая важная фича, как же я без нее жил то!
image.png156 Кб, 498x490
563 1643363
Та как учить этот ебаный многопоток то блять?!
Уже больше года изучаю плюсы, в шаблонах освоился, в ООП, паттернах и прочей хуйне освоился, даже к смейку и уб привык. А вот многопоток меня всегда стороной обходил, всегда хватало асинкнуть что-то или детачнуть тред, и в принципе на том и доволен. А вот сейчас решил изучить эту тему и вообще нихуя не понимаю что мне делать. Аноны, как вы мастерили многопоток? Я устал пилить threadsafe_контейнернейм и тредпулы, посоветуйте что-то реальное задачу то есть, где будет упор именно на многопоток, чтобы не сильно на другое отвлекаться.
564 1643365
>>42865
Алсо, фича действительно неплохая, теперь можно в 20 строк написать constexpr счётчик на лупхолах, который работает на всей троице.
image.png458 Кб, 1318x808
565 1643381
Вроде проблема решена, но ведь нет. Как мне этот err реюзать? Не буду же я каждый раз новую переменную с новым именем делать.
566 1643413
>>43381
Решена, у тебя хуевый гайд.
if (auto [err, val] = f(); !err) / use val /;
567 1643455
>>43413
Адище.
568 1643639
>>43413
Я скорее всего захочу использовать результат вызова функции вне локального скопа.
569 1643698
>>43639
Т.е. даже при ошибке? Удачи.
570 1643704
Что можно написать, чтобы охватить как можно больший спектр возможностей крестов?
571 1643734
Пытаюсь решить задачу: https://open.kattis.com/problems/addingwordsтакое решение не проходит: https://ideone.com/KVWt7L

Можете подсказать почему?
на всякий случай: std::map'ом пользоваться не умею
image.png6 Кб, 346x196
572 1643740
Аноны, простите за тупость вопроса, но как реализовать платформо- и кодировко- независимое сравнение символов?
И еще вопрос, path путь и в windows и в linux же использует ASCII?
573 1643741
>>31384
С сишным тоже range-based for работает.
574 1643766
>>43704
Операционную систему, наверное.
575 1643768
Как сделать самое быстрое чтение бинарное файла?
1532208702917.png6 Кб, 152x54
576 1643800
>>43740

>path путь и в windows и в linux же использует ASCII?


Нет, в общем использует Unicode... Посмотри в сторону std::filesystem, но я слышал он не на всех платформах поддерживается пока.
577 1643839
>>43768
Отобразить его в память.
578 1643864
>>43698
Причем тут ошибка? Т.е ты мне предлагаешь городить дохуя вложенных if конструкций? Это code smells, при ошибке я хочу завершить работу функции, в ином случае продолжить. if (err) return err, а не if (!err) ... .
579 1643905
>>43864
И как ты предлагаешь области видимости "забыть" про переменную? Давай предложи свой синтаксис, поугараю немного
580 1643908
>>43864

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


Блядь, тебе вирус уже мозг съел.
581 1643909
>>43908
Двачую
582 1643929
>>43905
Стандартный windows style C-code.

>>43908
Получится вот такая хуйня, а если там еще какие условия есть, то вообще лапша лапшой. https://godbolt.org/z/kAjWPV

Короче это неюзабельный вариант.
583 1643931
>>43929
Долбоёб...
auto ret = foo();
if (ret.second)
{
const auto &val = ret.first;
MoYaFuNkCiYa(val);
...
}
auto ret2 = bar()
...
Итогдалие
584 1643932
>>43931

> ret2


> const auto &val = ret.first;


Ну так это же говнокод, причем лютый. Лучше уж просто писать на сях в таком случае.
585 1643934
>>43932

>Лучше уж просто писать на сях


Да, ето так.
586 1643939
>>43864
Вообщет
err1=func1()
if(err1) return err
err2=func2()
if(err2) return err2
func3()
return d3
тоже смеллс
587 1643942
>>43939
Вообще то там:

my_error err;
err = func1();
if (err) return err;
err = func2();
if (err) return err;
...

Разница есть как бэ.
588 1643944
>>43942
return должен быть только один в конце, это полезно для оптимизаций и для поддержки безопасного кода.
589 1643957
>>1643956 (OP)
Я перекатил
590 1644144
Компилятор VS2019 сыпет ошибками LNK2019, я так понимаю это что-то с линковкой, но не пойму что не так. Указывал путь до папки с либами в SDK, но не момогает. Как фиксить?
591 1644178
>>43944
Первый раз слышу. А ну покажи такой гайдлайн. В интернетах пишут что это спагетти код. https://softwareengineering.stackexchange.com/questions/18454/should-i-return-from-a-function-early-or-use-an-if-statement
1585339975670.jpg101 Кб, 720x1280
592 1644213
593 1644216
>>44178
MISRA 2008
594 1644241
>>44144
нам ошибки угадывать?
595 1644290
Кто-нибудь пробовал юзать Anki для С++ ?
Тред утонул или удален.
Это копия, сохраненная 31 мая 2020 года.

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

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