Сохранен 1013
https://2ch.hk/pr/res/1871183.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

C++ тред #122 /cpp/

 Аноним 02/12/20 Срд 19:37:53 #1 №1871183 
shapka.png
cpp0.jpg
cpp2.jpg
cpp3.jpg
Вместо шапки:
https://github.com/sosachbot/cppthreadhat/wiki

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

Для указателей: ⚹
Прошлый: >>1860500 (OP)
Аноним 02/12/20 Срд 19:40:47 #2 №1871189 
раст лучше чем с++
Аноним 02/12/20 Срд 19:41:35 #3 №1871191 
>>1871189
https://www.reddit.com/r/transprogrammer/comments/9n5zml/rust_is_the_language_of_choice_for_trans/
Аноним 02/12/20 Срд 19:42:08 #4 №1871192 
>>1871189
javascript лучше чем c++
Аноним 02/12/20 Срд 19:44:18 #5 №1871193 
.png
>>1871191
>>1871192
Именно так
Аноним 02/12/20 Срд 19:53:01 #6 №1871203 
38225a.jpg
Вкотировался
010101011 02/12/20 Срд 20:46:57 #7 №1871231 
image.png
01010101011010010101001010101011010101000101001011101001001010111010100101010101010101001010101010101010100010101010101010101110010100101
Аноним 02/12/20 Срд 20:48:04 #8 №1871232 
>>1871203
Zig лучше чем С
Аноним 02/12/20 Срд 20:50:56 #9 №1871235 
С лучше чем ++С (инкремент не нужен).
Аноним 02/12/20 Срд 21:10:58 #10 №1871252 
UB одновременно лучше и хуже, чем UB.
Аноним 02/12/20 Срд 21:36:00 #11 №1871276 
Знаете, анончики, я вот тут подумал: насколько же ущербны не знающие плюсы люди... Мне их даже жаль. Это как родиться без ног не знаю...
Аноним 02/12/20 Срд 22:06:34 #12 №1871298 
>>1871276
А те кто знают себе ноши отстрелили
Аноним 02/12/20 Срд 22:25:36 #13 №1871324 
>>1871298
Не всем дано совладать с силой
Аноним 02/12/20 Срд 22:50:19 #14 №1871354 
>>1871276
Единственный нормальный язык.
Когда-то думал, что все начинают изучать кодинг с C/C++, а затем открыл для себя двач.хк/пр и увидел вопросы "а почему функция print() в питоне такая сложная, помогите(((".
Аноним 02/12/20 Срд 23:07:21 #15 №1871393 
Какую фишку c++20 больше всего ждёт, кроме модулей, ренжей, корутин и концептов? Я вот std::ssize_t
Аноним 02/12/20 Срд 23:07:55 #16 №1871394 
Крестовики, никак не могу решить стоит ли активно юзать исключения для эррор хэндлинга. В каких ситуациях, кроме ебейшего хуйлоуда и эмбедщины, эксепшены лучше не юзать, а дрочить ошибочки как в чистой Сишке?
Аноним 02/12/20 Срд 23:09:34 #17 №1871396 
>>1871393
родные форматные строки без надобности юзать сишный printf.
>std::ssize_t
Дык есть же, нет?
Аноним 02/12/20 Срд 23:15:27 #18 №1871399 
>>1871396
> Дык есть же, нет?
В posix. Я больше имел ввиду std::ssize(vec)
Аноним 02/12/20 Срд 23:21:18 #19 №1871404 
>>1871354
> что все начинают изучать кодинг с C/C++
У меня в школе паскаль была, но в унике сразу с плюсов начали.
Аноним 03/12/20 Чтв 00:55:07 #20 №1871463 
image.png
Куда подевался ребёнок, который тут весь прошлый тред рвался против goto?
Аноним 03/12/20 Чтв 02:14:12 #21 №1871493 
>>1871463
Почему бы просто не написать delete _p?
Аноним 03/12/20 Чтв 02:39:09 #22 №1871499 
>>1871393
std::span, заебался таскать велосипед
designated initializers наконец-то в стандарте
template parameter list для лямбд вместо ебли с using T = std::decay_t<decltype(zalupa)>
Аноним 03/12/20 Чтв 03:49:29 #23 №1871503 
>>1871463
Кнут писал с пруфами, что в некоторых задачах goto является оптимальным. Александреску не авторитет тащемта.
Аноним 03/12/20 Чтв 05:37:57 #24 №1871506 
>>1871499
>std::span, заебался таскать велосипед
Удваиваю. Тоже таскаю с собой шаблонный велосипед а-ля array_view.
Аноним 03/12/20 Чтв 08:52:00 #25 №1871544 
>>1871393
std::format офк. Как блять в здравом уме вообще могла придти идея использования стримов которые мало того, что писать не удобно так еще и по производительности проигрывают сишным printf.
Аноним 03/12/20 Чтв 09:44:50 #26 №1871550 
> ssize
> Историческое заикание
Аноним 03/12/20 Чтв 09:49:11 #27 №1871551 
>>1871550
Мое любимое это strstr()
Аноним 03/12/20 Чтв 12:40:23 #28 №1871638 
>>1871544
В плюсах почти все проигрывает Сишке по производительности. Без углубления в дебри, Сишный компиль банально генерит меньше машинного кода, ибо сам язык гораздо проще и примитивнее плюсов.
Аноним 03/12/20 Чтв 12:56:00 #29 №1871648 
>>1871638
https://github.com/fmtlib/format-benchmark

Че еще расскажешь?
Аноним 03/12/20 Чтв 13:04:49 #30 №1871651 
>>1871394
бамп вопросу
Аноним 03/12/20 Чтв 13:19:07 #31 №1871664 
>>1871394
>>1871651
Заебали уже. Эксепшены очень медленные и их можно использовать только в дебаге. В релизе никогда не должно быть этого говна.
Аноним 03/12/20 Чтв 13:19:08 #32 №1871665 
>>1871394
>>1871651
Пчеликс, это очень сложный вопрос.

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

Но если у тебя в проде уже есть положняк уровня "никаких эксепшенов", как, допустим, в том же гугле - то увы.
Аноним 03/12/20 Чтв 13:19:43 #33 №1871666 
>>1871664
так не надо пихать эксепшены в hot лупы. А во всем остальном их можно использовать.
Аноним 03/12/20 Чтв 13:22:12 #34 №1871669 
>>1871666
> А во всем остальном их можно использовать.
А потом код работает медленнее джавы. Пиши сразу на питоне, хули.
Аноним 03/12/20 Чтв 13:25:09 #35 №1871671 
>>1871669
да кто тебе это сказал? Щас во всех компиляторах почти Zero Cost эксепшены, когда они не кидаются. Причем этот оверхед отсуствует только если у тебя эксепшены полностью отключены, либо каждая функция помечена как на ноэксепт.

Сам процесс КИДАНИЯ\ЛОВЛИ конечно медленнее, но другое дело, что исключение - это именно исключение, и кидаться должны очень редко. Это серьезных холиварный вопрос про архитектуру приложения, а вот срач за перф тут - правда хуйня.
Аноним 03/12/20 Чтв 13:29:56 #36 №1871680 
>>1871671
Звучит как оправдание говнокода, который подпирают эксепшенами как костылями чтоб игнорить ошибки.
> кидаться должны очень редко
Никому они не должны ничего. И в любой либе ты можешь получить тонну этого говна за воротник.
Аноним 03/12/20 Чтв 13:31:13 #37 №1871682 
>>1871394
Примерно всегда. Во-первых, они пиздецки усложняют флоу кода, во-вторых, чаще всего просто весь кидающий эксепшены код заворачивают в трай-кетч, и ложат хуй пока работает (а потом кто-то, возможно и ты, будешь ебстись, разгребая стектрейсы и логи, чтобы узнать что кто-то просто хуй клал), в-третьих — они тормозят.

Короче, ошибки-значения лучше во всём, но в плюсы ADT не завезли, поэтому чтобы таким заниматься придётся писать кучу бройлерплейта, так что увы и ах.
Аноним 03/12/20 Чтв 13:37:11 #38 №1871687 
>>1871680
>Звучит как оправдание говнокода
Пчел, то есть, когда все вокруг
— сидят на всякой нагенеренной мышкой xml-like залупе для проектов/интерфейса/итд которую невозможно не замерджить ни поправить без ебли;
— юзают жирные форматы для передачи данных когда есть куча готовых бинарных форматов (которые зачастую даже удобнее если платформы больше 1-й);
— юзают говно мамонта когда уже есть сотня альтернатив, причём половина проверена в бою;
— согласны с политической ситуацией кекус;
— итд.
тебя такие костыли не смущают, а эксепшены — прям пиздец? Это типичная хуйня для сокрытия проблемы, поэтому и используется.
Аноним 03/12/20 Чтв 13:37:40 #39 №1871688 
>>1871687
>Это типичная хуйня для сокрытия проблемы
здесь и сейчас*
Аноним 03/12/20 Чтв 13:37:58 #40 №1871689 
>>1871682
>они тормозят
Экспешены по-моему тормозят только если сотая вложенная функция кидает исключение и стэк анвайндится на много кадров назад, чтобы попасть в подходящий кеч. Условно говоря (хоть и ситуация оторвана от реальности), если throw и catch находятся в одном и том же стэковом кадре, то рантайм замедления вообще почти не будет (ибо в таком случае не раскручивается стэк).

Гугл запрещает своим плюсокодерам юзать эксепшены, но в гугле плюсы только в адовом хуйлоуде (и в хроме), поэтому там это оправдано. Но везде ли надо высасывать максмум производительности, кладя хуй на читаемость и поддеживаемость кода?
Аноним 03/12/20 Чтв 13:39:05 #41 №1871691 
>>1871680
Гугл запрещает использовать эксепшены, потому-что у них говноеды, которые не умеют в RAII во всем адовом легаси.

Как я уже упоминал, в hot loop'ах само собой это все не используется.
Аноним 03/12/20 Чтв 13:41:08 #42 №1871694 
>>1871671
Вот этого поддвачну. Стоит просто отделить код, который должен работать быстро, и код, в котором могут возникать исключительные ситуации. Первый проектировать как работающий всегда корректно и полностью обмазать noexcept-ом и ассертами упало? давай корректные данные или иди нахуй, из второго аккуратно подливать/забирать данные для первого, всякую валидацию делать тут же.
Аноним 03/12/20 Чтв 13:53:06 #43 №1871707 
>>1871394
Если тебя потом попросят портировать твою либу на микроконтроллеры то будет неприятно переделывать.
Аноним 03/12/20 Чтв 13:53:45 #44 №1871708 
>>1871687
Все говнокодят и я тоже буду писать так? Заебись логика.
Аноним 03/12/20 Чтв 14:18:02 #45 №1871727 
>>1871707
а если софт чисто юзерспейсный и не предполагается портирование на слабые железки?
Аноним 03/12/20 Чтв 16:08:56 #46 №1871833 
>>1871689
>Но везде ли надо высасывать максмум производительности, кладя хуй на читаемость и поддеживаемость кода?
>>1871682
>Во-первых, они пиздецки усложняют флоу кода, во-вторых, чаще всего просто весь кидающий эксепшены код заворачивают в трай-кетч, и ложат хуй пока работает (а потом кто-то, возможно и ты, будешь ебстись, разгребая стектрейсы и логи, чтобы узнать что кто-то просто хуй клал)
ТРЕД НЕ ЧИТАЙ @ СРАЗУ ОТВЕЧАЙ
Аноним 03/12/20 Чтв 16:10:10 #47 №1871834 
>>1871708
Ну ты-то можешь не писать, я просто объяснил, что это такая же конъюнктура как и в других областях как программирования так и жизни в целом — такое говно существует и ты будешь его есть потому что диды ели.
Аноним 03/12/20 Чтв 16:13:04 #48 №1871835 
>>1871727
Ну тогда можешь начать писать бройлерплейт из обвязок ко всему остальному миру, не юзающему исключения (и в большинстве случае плюсы вообще, лол), а потом такие же только уже для связи твоего софта с внешним миром (и прокидывать коды из эксепшенов, кекс).
Аноним 03/12/20 Чтв 16:27:46 #49 №1871845 
>>1871394
>а дрочить ошибочки как в чистой Сишке?
Нигде.
expected / optional / result

exceptions are for exceptional situations
(or self contained situations)
(or intentional multilayer error propagation)
Аноним 03/12/20 Чтв 17:18:21 #50 №1871900 
Я бы побоялся использовать исключения в языке без GC.
Аноним 03/12/20 Чтв 17:20:18 #51 №1871905 
>>1871900
Ну бойся
Аноним 03/12/20 Чтв 17:23:55 #52 №1871908 
>>1871900
Исключения можно юзать только с повсеместным юзанием смартпоинтеров/деструкторов.
Аноним 03/12/20 Чтв 17:27:35 #53 №1871914 
>>1871908
Будто кто-то пишет на плюсах без RAII
Аноним 03/12/20 Чтв 17:28:52 #54 №1871915 
>>1871914
Ты не представляешь, какое дерьмо шлепает средний говноед из НИИ и\или вчерашний студентик
Аноним 03/12/20 Чтв 17:31:01 #55 №1871918 
>>1871914
Как тебя RAII спасёт при краше потока, например?
Аноним 03/12/20 Чтв 17:34:23 #56 №1871922 
>>1871918
от краша потока меня спасет catch?
Аноним 03/12/20 Чтв 17:36:35 #57 №1871925 
>>1871922
Нормальная обработка ошибок спасёт от утечки памяти при краше. А с эксепшенами только два раза один код напишешь.
Аноним 03/12/20 Чтв 17:45:02 #58 №1871931 
>>1871925
Это только если оборачивать 100500 строк в один try.
Аноним 03/12/20 Чтв 17:58:17 #59 №1871943 
>>1871922
Что такое "краш потока"? Если в потоке выброшено исключение, то все деструкторы вызовутся, если в потоке будет сегфолт или повреждение памяти, то все, приехали, тут уже ничего не поможет.
Аноним 03/12/20 Чтв 18:08:15 #60 №1871955 
а чё функции в main не делаются? И вы это терпите?
Аноним 03/12/20 Чтв 18:10:16 #61 №1871957 
>>1871955
А что, должны? Может, тебе ещё и динамическую типизацию в кресты?
Лямбды
Аноним 03/12/20 Чтв 18:12:41 #62 №1871960 
>>1871957
> должны?
Да.
> динамическую типизацию в кресты?
Рефлексия не помешала бы.
Аноним 03/12/20 Чтв 18:13:12 #63 №1871961 
>>1871957
Динамическая типизация код делает некрасивым
Аноним 03/12/20 Чтв 18:51:05 #64 №1871993 
>>1871960
Рефлексия зло. Понаклепали сисярповых либ на рефлексии, а потом их на любую платформу с ahead-of-time компиляцией не заюзать (например на айфоны)
Аноним 03/12/20 Чтв 18:53:54 #65 №1872000 
>>1871993
Так нужна статическая рефлексия. Что мешает компилятору сгенерировать таблицу полей класса с их названиями и смещениями?
Аноним 03/12/20 Чтв 18:55:40 #66 №1872006 
>>1872000
Так вроде и так можно. В конце концов можно кодогенератором по типу protobuff
Аноним 03/12/20 Чтв 19:07:26 #67 №1872023 
растет растет моя latex glove in ass ARHHHHHHHHAAAAAAAA
Аноним 03/12/20 Чтв 19:16:24 #68 №1872034 
image.png
>>1872006
Можно только через макросы, но там пиздец костыли приходится юзать. Вот сейчас я использую самописную хуйню через макросы. Для моих структур она работает, но если нужно сериализовать структуру из библиотеки какой-нибудь, то все соси хуй. Нужна поддержка именно на уровне языка.
Аноним 03/12/20 Чтв 19:19:28 #69 №1872036 
>>1872034
А я делал конвертацию из тюпла в структуру и обратно
Аноним 03/12/20 Чтв 19:27:24 #70 №1872047 
Очень борщем пахнет.
Аноним 03/12/20 Чтв 19:29:35 #71 №1872052 
>>1871957
>динамическую типизацию
void*
Аноним 03/12/20 Чтв 19:30:15 #72 №1872054 
>>1871993
Как там в 2018? Про .NET Native что-нибудь слышно? Вроде в 2019 должны придумать.
Аноним 03/12/20 Чтв 19:43:13 #73 №1872076 
>>1872052
Вот бы ещё decltype и typeid могли дать реальный тип...
Аноним 03/12/20 Чтв 22:07:17 #74 №1872267 
>>1872000
Жди C++23/26
Аноним 03/12/20 Чтв 22:10:04 #75 №1872270 
>>1872000
>Что мешает компилятору сгенерировать таблицу полей класса с их названиями и смещениями?
Слоупоки из комитета
Аноним 03/12/20 Чтв 23:07:23 #76 №1872299 
>>1872267
Бля, вот это жизнь будет.
Что, даже енумы сможем печать без xmacro?
Аноним 03/12/20 Чтв 23:07:56 #77 №1872301 
>>1871394
без исключений в языке не обойтись
тк конструкторы и перегруженые операторы не имеют другого способа вернуть ошибку
об этом рассказывал страуструп в "дизайне и эволюции" еще 30 лет назад
по похожей причине, кстати, и появилась перегрузка - так как требовалось конструировать объекты классов разными способами, значит нужно несколько конструкторов, значит нужна перегрузка, значит нужен общий механизм перегрузки, а значит нужно запиливать перегрузку и функций-членов и свободных функций
когда страуструп делал первоначальный дизайн языка он исходил из логики что для решения частной проблемы нужен общий механизм, иначе это будет "костыль"
Аноним 03/12/20 Чтв 23:56:14 #78 №1872325 
>>1872301
> иначе это будет "костыль"
Так это и есть костыль. Если у тебя в конструкторе кидается исключение, то деструктор не вызывается и ты сосёшь немытый хуй. Сами конструкторы говнище. А у нормальных пацанов ошибки через Optional работают.
Аноним 04/12/20 Птн 00:01:54 #79 №1872333 
>>1872054
Не знаю, не слышал. Полистал, там есть ограничения, что логично.
Аноним 04/12/20 Птн 00:13:48 #80 №1872342 
>>1872325
>Если у тебя в конструкторе кидается исключение, то деструктор не вызывается и ты сосёшь немытый хуй

Вызовутся деструкторы для всех инициализированных на момент выброса членов класса.
Аноним 04/12/20 Птн 00:16:38 #81 №1872346 
>>1872301
>что для решения частной проблемы нужен общий механизм
Это главная ошибка в софтверной разработке чего либо. Убивал бы нахуй. Если null был ошибкой на миллиард долларов, то вот эта ебучая овердженерализация всего на свете - это ошибка на все деньги ёбаного мирового банка.
Аноним 04/12/20 Птн 00:30:08 #82 №1872359 
>>1872346
Имхо в данном конкретном случае это не плохо, иначе ты бы охуел от количества фич, которые существуют только чтобы использоваться в единственном месте.
В чем вообще доёбка? Типа надо было сделать что перегрузка есть - но только для конструкторов, исключения кидать можно - но только из операторов?
Аноним 04/12/20 Птн 00:43:23 #83 №1872369 
>>1872346
На то время альтернативой было: errno; возвращать через ссылочный параметр; возвращать в результате 0 или true. Так что да, общий механизм это охуенно. А то что не распознали его недостатки, так это как доебываться почему сразу не изобрели какую нибудь Джаву еще в 50-х - тут только на опыте можно узнать.
Аноним 04/12/20 Птн 00:45:17 #84 №1872370 
15640387015860.jpg
>>1872369
>не изобрели какую нибудь Джаву еще в 50-х

COBOL
Аноним 04/12/20 Птн 00:57:20 #85 №1872374 
>>1872325
>Если у тебя в конструкторе кидается исключение, то деструктор не вызывается и ты сосёшь немытый хуй.
как правильно обрабатывать исключения в конструкторах, написано в каждом учебнике по с++..
Аноним 04/12/20 Птн 01:02:02 #86 №1872379 
>>1872374
к примеру, 10е правило в книжке майерса "эффективное использование с++, 35 новых способов.."
или в книжке саттера "сложные задачи на с++", задача 2.13..

Аноним 04/12/20 Птн 01:05:17 #87 №1872381 
>>1872346
не соглашусь, в контексте дизайна языка как раз следует использовать одно из главных правил проектирования инженерных систем - если есть частная проблема, то для хорошего решения возможно потребуется общее решение
Аноним 04/12/20 Птн 01:11:20 #88 №1872383 
>>1872301
>тк конструкторы и перегруженые операторы не имеют другого способа вернуть ошибку
Очень обидно кстати.
Писал несколько либ с перегруженными операторами, которые потом работали в ядре и не только, приходилось стараться, ведь -fno-exceptions
Аноним 04/12/20 Птн 01:13:08 #89 №1872384 
>>1872370
Ждём, когда джаву в тырпрайзе вытеснит сярп или пщ, и тогда коболами будут называть уже их, лiл.
Аноним 04/12/20 Птн 01:37:05 #90 №1872390 
>>1872384
Ага, ждём. Это событие запланировано где-то между смертью С и взлётом rust.
Аноним 04/12/20 Птн 02:31:41 #91 №1872402 
>>1872390
Где-то между этими событиями должны создать убийцу C++.
Аноним 04/12/20 Птн 02:58:09 #92 №1872413 
Аноны, выручайте. Вместо лампового h файла у меня откралась какая-то хита. Вместо кода вот такое:
[Project]
FileName=KF.h
Name=KF_Project
Type=1
Ver=2
ObjFiles=
...
Аноним 04/12/20 Птн 03:07:13 #93 №1872418 
>>1872413
Ууу, ну всё тебе пизда. Если прямо сейчас выдернешь комп из розетки, может ещё отделаешься заменой диска. А лучше беги от него на безопасное расстояние.
Бля, я конечно всякой херни в жизни насмотрелся, но такую жесть первый раз вижу..
Аноним 04/12/20 Птн 04:10:16 #94 №1872426 
>>1872418
C пекарней все норм. Только h файл придется переписывать (((((
Аноним 04/12/20 Птн 04:14:24 #95 №1872428 
>>1872413
Помню писал я как то утилиту конвертирующую файл в другой формат. Ну и по запарке указал целевым файлом имя исходника.
Аноним 04/12/20 Птн 11:06:52 #96 №1872527 
>>1872402
Я в процессе
Аноним 04/12/20 Птн 11:12:18 #97 №1872529 
>>1872527
Вставай в очередь.
Аноним 04/12/20 Птн 11:17:01 #98 №1872532 
>>1872370
Кобол ещё куда ни шло, настоящая джава - это PL/I от айбиэм.
Аноним 04/12/20 Птн 11:22:51 #99 №1872537 
>>1872527
Блоу, сука, зарелизни что-нибудь уже.
Аноним 04/12/20 Птн 11:41:14 #100 №1872546 
>>1872402
Когда уже запилят компилятор с ИИ-оптимизатором машинного кода? Чтоб наконец смогли писать как на питоне, а ИИ генерировал оптимизированный код.
Аноним 04/12/20 Птн 12:35:18 #101 №1872598 
image.png
https://habr.com/ru/post/478124/

Читаю про процесс компиляции в C++ и не могу понять.

Допустим, у меня есть laba1.cpp:


#include <iostream>

int main()
{
std::cout << "Hello world" << std::endl;
return 0;
}

Сколько объектных файлов получится из этого файла после препроцессинга, компиляции и ассемблирования? Один? Тогда нахуй нужен линковщик?
Аноним 04/12/20 Птн 12:57:25 #102 №1872624 
>>1872325
а как вернуть ссылку через std::optional?
Аноним 04/12/20 Птн 13:07:20 #103 №1872641 
>>1872325
>у нормальных пацанов ошибки через Optional работают
И как потом обрабатывать ошибку которая произошла? Например в винапи там хуева туча разных кодов. По идее нужно что-то типо optional только вместо bool флага (есть значение или нет) нужно хранить код ошибки.
Аноним 04/12/20 Птн 13:49:33 #104 №1872679 
>>1872641
Скорее всего, нужно что-то вроде https://github.com/TartanLlama/expected
Только вот непонятно, когда оно будет в стандарте.
Аноним 04/12/20 Птн 13:57:20 #105 №1872683 
>>1872546
>ИИ
Ты что из этих? Ну, из любителей решать алгоритмически неразрешимые задачи статистическими методами?
Аноним 04/12/20 Птн 14:27:04 #106 №1872701 
>>1872683
Так всякие наркоманы обдолбятся сойлента и пилят ИИ для написания кода из естественных языков, но почему-то не делают более очевидную вещь - высокоуровневый код в ассемблер.
Аноним 04/12/20 Птн 14:29:12 #107 №1872704 
>>1872598
Получается один обьектник, который линковщик слинкует в exe\elf файл.
Аноним 04/12/20 Птн 14:44:10 #108 №1872714 
>>1872701
Псст. Открою секрет. Это называется оптимизирующий компилятор.
Аноним 04/12/20 Птн 14:49:27 #109 №1872717 
>>1872714
> оптимизирующий компилятор
Только он на сложных конструкциях оптимизирует очень плохо.
Аноним 04/12/20 Птн 14:54:53 #110 №1872720 
>>1872598
> у меня один велосипед
> зачем люди придумали сцепку вагонов
Аноним 04/12/20 Птн 14:55:40 #111 №1872721 
image.png
https://ideone.com/jYGOdH
Откуда нули? Вернее это-то я понимаю, откуда они берутся после того как я весь вектор переписал?
Аноним 04/12/20 Птн 15:01:04 #112 №1872724 
>>1872721
libastral подключи
Аноним 04/12/20 Птн 15:03:24 #113 №1872725 
>>1872721
>std::vector<Item> vi(5);
чел..
Аноним 04/12/20 Птн 15:04:27 #114 №1872727 
>>1872724
Может ещё и IDE вишмастер скачать?
>>1872725
Да я, что не так?
Аноним 04/12/20 Птн 15:09:04 #115 №1872729 
>>1872725
>>1872727
А, проёб с пушбеком. Ясно, сыпысы.
Аноним 04/12/20 Птн 15:22:41 #116 №1872734 
>>1872720
Я имел в виду, нахуй он нужен в этом конкретном случае, то есть отличается ли итоговый исполняемый файл от объектного файла.
Аноним 04/12/20 Птн 15:31:08 #117 №1872737 
>>1872734
Конечно отличается, лол.
Аноним 04/12/20 Птн 17:20:00 #118 №1872885 
>>1872717
Пруфы давай, что написал, что хотел получить, что сделал компилятор
Аноним 04/12/20 Птн 17:20:48 #119 №1872888 
>>1872885
std::visit в любом виде
C overloaded пачкой лямбд, с функтором, с чем угодно
Аноним 04/12/20 Птн 17:21:49 #120 №1872889 
ekarnu.jpg
Ваше отношение к throw try catch, господа
Аноним 04/12/20 Птн 17:24:31 #121 №1872892 
>>1872598
Зависит от компилятора.
Теоретически, препроцессор создаёт новый файл после препроцессинга, компилятор делает из него файл с кодом на языке ассемблера, ассемблер создаст из него объектный файл, а линкер сделает из объектного файла бинарник. Но в разных компиляторах это всё может быть объединено в одну стадию так, что на вход у тебя исходник, а на выходе сразу бинарник.
Как сделано конкретно в G++ - хуй знает. Возможно, он реально создаёт каждый раз новый файл, но ты их не видишь, потому что они в какой-нибудь папке temp.
Аноним 04/12/20 Птн 17:35:45 #122 №1872913 
>>1872889
Залупа уровня goto, убивающая читаемость.
Аноним 04/12/20 Птн 17:38:36 #123 №1872921 
ekarnu2.jpg
>>1872913
А чем его заменить?
Аноним 04/12/20 Птн 17:40:29 #124 №1872924 
>>1872921
Прокидыванием ошибок, как в Go и сишке. И кучей if (result != SUCCESS) { ... }
Аноним 04/12/20 Птн 17:50:41 #125 №1872942 
ekarnu3.jpg
>>1872924
Хочешь сказать, что одна маленькая goto с комментарием для ясности или специальная конструкция throw try catch хуже нагроможденного вездесущего if? И как ты планирешь с его помощью впринципе разделять ошибку и обработку ошибки?
Аноним 04/12/20 Птн 17:51:24 #126 №1872944 
>>1872942
Хватит с аутистами общаться
Аноним 04/12/20 Птн 17:51:49 #127 №1872946 
>>1872942
Даже так лучше, чем ебучий забор из скобок посреди кода. Лучше функцию в if оборачивать, чем разрывать код. Это же настоящий goto, прыгающий по коду к catch.
Аноним 04/12/20 Птн 17:52:11 #128 №1872947 
image.png
>>1872944
Ваше отношение к throw try catch, господин?
Аноним 04/12/20 Птн 17:58:21 #129 №1872958 
>>1872942
goto работает только в одной функции, throw же докинет докуда угодно. longjmp
Аноним 04/12/20 Птн 17:58:26 #130 №1872959 
>>1872947
А твоё, аватарфаг?
Аноним 04/12/20 Птн 17:58:36 #131 №1872960 
image.png
>>1872946
try { func(88888, 993) }; catch(int) {...}
вместо
func(88888, 993);
сильно напрягает? И throw try catch всего-навсего прыгает при ошибке в определенное место , так что это не ухудшает читаемости.
Аноним 04/12/20 Птн 18:03:43 #132 №1872972 
>>1872892
Спасибо.
Аноним 04/12/20 Птн 18:08:02 #133 №1872976 
>>1872383
ну, примеры того, как проектировать подобные вещи есть в стандартной библиотеке
оператор квадратных скобок генерирует исключение, но есть функция at которая возвращает ошибку при выходе из диапазона
оператор new имеет перегрузку с флагом nothrow_t..
при проектировании своих классов можно поступить примерно так же
ткак сделано во втором случае можно сделать и с конструкторами, те предусмотреть два способа конструирования класса - с генерацией исключения в конструкторах в случае неудачи, либо с вариантом двухэтапной инициализации (с функцией init или с флагом sucsess, на выбор)
те можно сделать универсальное решение при желании, достоинство с++ в том что он предлагает средства на уровне языка для того и для другого
Аноним 04/12/20 Птн 18:09:08 #134 №1872978 
>>1872960
Причём немного ебли только при ловле, сам проброс охуенно удобен. Точно лучше, чем перегружать сигнатуры функций возвратом ошибок, которые никто потом не проверяет.
Аноним 04/12/20 Птн 18:11:56 #135 №1872986 
>>1872976
с другой стороны, конструирование объектов классов прямыми вызовами конструкторов это прошлый век, ибо давно уже придуманы разнообразные фабрики классов, паттернов создания штук пять навскидку любой кодер на с++ вспомнит, причем с реализацией как в динамике, так и на статике..
причем они включают в себя и то что нужно делать в случае неудачи создания объекта..
Аноним 04/12/20 Птн 18:12:26 #136 №1872988 
>>1872960
Надо как в Zig хотя бы делать:
const number = parseU64(str, 10) catch |err| pizda(err);
Или аналог крестов:
if (parseU64(str, 10)) |number| {
doSomethingWithNumber(number);
} else |err| switch (err) {
error.Overflow => { ... },
error.InvalidChar => unreachable,
}
Для человеческого освобождения памяти при ошибке:
const foo = try tryToAllocateFoo();
errdefer deallocateFoo(foo);
> прыгает при ошибке в определенное место
Так и goto в определённое место прыгает. Ещё как ухудшает, когда у тебя внутри функции скачет куда-то.
Аноним 04/12/20 Птн 18:16:26 #137 №1872997 
>>1872976
>оператор new имеет перегрузку с флагом nothrow_t..
Это-то да, а вот из T& operator+=(const T& rhs); ошибку возвращать некуда. Кроме эксепшена.

Да и для new пришлось свой nothrow tag делать, так как stdlib не было.
Особенно кекнул с #if STDLIB #include <new> else define your own placement new
Аноним 04/12/20 Птн 18:16:39 #138 №1872998 
>>1872986
в книжке gof, к примеру, это третья глава "порождающие паттерны"
а у александеску аж три главы отведено на то как сделать подобное, но на статике
Аноним 04/12/20 Птн 18:17:48 #139 №1873002 
>>1872976
>>1872986
Ну так-то даже без крупных фабрик можно использовать named constructor, который будет возвращать хоть expected, хоть optional, хоть кидать эксепшен
Аноним 04/12/20 Птн 18:18:03 #140 №1873003 
>>1872997
>T& operator+=(const T& rhs);
пишется рядом дублирующая функция-аккумулятор и все
не так красиво будет, но альтернатива есть альтернатива
Аноним 04/12/20 Птн 18:23:25 #141 №1873012 
>>1872997
для операторов кстати есть еще третий способ сигнализировать об ошибке - а именно все тот же флаг sucsess, который выставляется в удачу или неудачу при ошибке
Аноним 04/12/20 Птн 18:25:11 #142 №1873014 
>>1872988
Не понимаю чё там сверху, но объективно, в отличии от goto всегда понятно откуда (из соседней функции) и куда (в соседний catch) передается ход программы, ясно почему (ошибка) ясно что делать (в catch), ясно какая ошибка (выбирается определенный catch) и после работы с ошибкой, программа продолжает идти с логичного места как и должна была, будь всё хорошо.
Аноним 04/12/20 Птн 18:36:21 #143 №1873039 
>>1873014
> откуда
> почему
А если ошибка прилетает из глубины? Возвращаемое значение обязывает сразу обработать ошибку, а catch может из глубины кишок поймать говно.
Аноним 04/12/20 Птн 18:48:12 #144 №1873051 
Нелокальный goto ещё хуже локального.
Аноним 04/12/20 Птн 18:48:56 #145 №1873053 
>>1873039
Допустим у нас есть Много функций вложенных друг в друга, у каждой из них есть throw, и соответственно вызываем мы каждую функцию подобным образом:
try { func(88888, 993) }; catch(int) {...}
Тогда говёна с глубин не придут, а выйдя из своей функции с throw сразу попадут в try и catch соответсвенно, где можно написать какая функция ошиблась и как то обработать ошибку. Если нужно подняться на определенный уровень, например на самый высокий к вызову, для ошибки достаточно написать уникальный вызов хз как называется и тогда она развернет всё до самого верха и активирует нужны catch где всё будет понятно.
Аноним 04/12/20 Птн 19:35:51 #146 №1873087 
>>1872960
В реальности такого не будет, у тебя будет портянка кода по который ты будешь скроллить вверх вниз пытаясь найти к какому же траю относится катч.
Аноним 04/12/20 Птн 20:16:51 #147 №1873110 
>>1873087
Кого скролить? Трай на 3 символа левее
Аноним 04/12/20 Птн 20:39:50 #148 №1873129 
>>1873053
> мы каждую
Ключевое во всём этом. Это должен кодер гарантировать, но ты никогда не узнаешь наверняка что там, не прочитав исходник или стэктрейс. Речь была про читаемость и вот где вся проблема. Ты предлагаешь верить в то что оно как надо сделано, звучит как полная хуйня. Опять же, возвращаясь в Zig, там язык гарантирует что подобной хуйни не будет и выполнение кода не уйдёт хуй знает куда, хуй знает откуда - ты делаешь обработку ошибки сразу и явно передаёшь её куда надо.
Аноним 04/12/20 Птн 21:04:34 #149 №1873139 
>>1873129
Чё??? Если нельзя узнать что в функции, то можно организовать проверку в вызывающем коде. Про zig я вообще не понимаю причём он тут и я с ним вообще не знаком.
Аноним 04/12/20 Птн 21:28:48 #150 №1873152 
>>1873139
> можно организовать проверку в вызывающем коде
Предлагаешь писать проверки просто чтоб наверняка? Оборачивать всё этими кишками как в сишарпе, просто для уверенности? Надо на этапе написания кода знать что не будет эксепшенов из глубины функции. А то этот goto может вообще из зависимости либы прыгнуть в мой код, а я как должен узнать заранее что такое может произойти? Я ведь надеюсь что эксепшен прилетит из вызываемой функции, а по факту это просто вангования.
Аноним 04/12/20 Птн 21:36:10 #151 №1873163 
>>1872988
Все равно код обработки ошибок пополам с основным, как в 62 году.
Аноним 04/12/20 Птн 21:40:40 #152 №1873165 
https://github.com/thertucoders/Learning-Resourse/blob/master/Roadmap%20for%20C%2B%2B.pdf
Нормальная тема?
Аноним 04/12/20 Птн 21:45:25 #153 №1873169 
1483215816653.png
>>1873163
Так в том и суть, что он локальный, а не глобальный. Один из основных принципов там.
Аноним 05/12/20 Суб 02:21:01 #154 №1873280 
>>1873165
выглядит неплохо, но очень простенько
Аноним 05/12/20 Суб 09:43:03 #155 №1873331 
>>1872888
Давай пруфов на https://godbolt.org/
Аноним 05/12/20 Суб 09:48:22 #156 №1873332 
>>1872892
Линковщик ещё добавит c и c++ runtime (твой main отнюдь не точка входа, посмотри стектрейс) , импортные либы из sdk, сгенерит pdb
Аноним 05/12/20 Суб 10:23:42 #157 №1873341 
>>1873280
Дак язык сам по себе простой. Хули тут учить?
Аноним 05/12/20 Суб 11:03:20 #158 №1873349 
>>1872034
Boost hana define struct
Boost.PFR
Аноним 05/12/20 Суб 11:10:19 #159 №1873352 
>>1873349
>BOOST_HANA_DEFINE_STRUCT не поддерживает инициализацию сразу же в объявлении поля.
>Boost.PFR ну а это вообще хуйня, можно пройтись только по значениям полей, а имена полей оно не определяет (т.е. в json ты не конвертируешь с этим).
Аноним 05/12/20 Суб 11:21:51 #160 №1873355 
>>1873110
Я тебе говорю не про хелло ворлды, а про реальный код.
Аноним 05/12/20 Суб 12:58:01 #161 №1873399 
>>1872384

Джаву в интрыпрайзе, уже успешно убивает сам её разработчик - оракел.

Причем в прямом смысле, сначала убил Java EE, сейчас вот собирается и рантайм добить.
Аноним 05/12/20 Суб 13:45:03 #162 №1873430 
>>1873399
А что взамен предлагает хоть? Опенсорс-параши?
Аноним 05/12/20 Суб 14:28:54 #163 №1873459 
изображение.png
>>1871183 (OP)
Что за магия на пике? Перегрузка оператора является дружественной функцией шаблонному классу? Зачем std::move заворачивать в return?
Аноним 05/12/20 Суб 14:53:36 #164 №1873493 
>>1873459
Операция умножения для случая когда класс идёт вторым аргументом, что не так?
Аноним 05/12/20 Суб 15:12:30 #165 №1873503 
>>1873459
Какого года книжка?
Аноним 05/12/20 Суб 15:35:38 #166 №1873521 
1537956010058.png
>>1873163
Ну так это и есть единственно верный путь.
В плюсах такое же пилят к 2029 насколько я слышал.
Аноним 05/12/20 Суб 15:38:52 #167 №1873524 
>>1873503
2019
>>1873493
аргументы при перегрузке я тоже вижу, но зачем там некая r, и при возврате std::move
Аноним 05/12/20 Суб 15:40:22 #168 №1873526 
>>1873459
>дружественной функцией шаблонному классу?
Это чтобы перегруженный оператор видел внутренние поля объекта.
>std::move заворачивать в return?
Ты, наверное, хотел сказать return заворачивать в std::move?
Затем, чтобы временно созданный объект не гоняли туда-сюда, а оптимизатор сразу записал результат в исходный объект.
Аноним 05/12/20 Суб 15:55:14 #169 №1873541 
>>1873459
>Перегрузка оператора является дружественной функцией шаблонному классу?
Hidden friend idiom. tl;dr нужна, чтобы не засорялось пространство имён.
>Зачем std::move заворачивать в return?
Хз, по идее это только мешает NRVO.
Аноним 05/12/20 Суб 15:55:56 #170 №1873542 
>>1873526
> Затем, чтобы временно созданный объект не гоняли туда-сюда, а оптимизатор сразу записал результат в исходный объект.
Хотели как лучше, отстрелили себе ногу по самое ебало. В c++17 такая хуйня гарантирует отсутствие copy elision, следовательно можно сделать вывод, что автор книги - долбаёб.
Аноним 05/12/20 Суб 16:09:40 #171 №1873575 
>>1873541
Тут не работает НРВО, ты какую-то произвольную ебалу в ретюрн написал а не имя переменной. Всё правильно обёрнуто. *= возвращает T&, значит это lvalue выражение, делаем мув, получаем рвалью.
Аноним 05/12/20 Суб 16:34:39 #172 №1873605 
>>1873521
После checked exceptions в джаве ни один язык больше не связывался с этой ебаниной. Но я вижу у крестов свой путь.
Аноним 05/12/20 Суб 16:37:48 #173 №1873608 
>>1873605
Прокидывание ошибок в говноланге - это по сути те же checked exceptions.
Аноним 05/12/20 Суб 16:43:03 #174 №1873617 
>>1873459
>Зачем std::move заворачивать в return?
Абсолютно не нужно
Аноним 05/12/20 Суб 17:00:59 #175 №1873633 
>>1873605
Во всех более менее современных языках ошибка возвращается в виде тупла [err, result] = call_func(...)
Тут просто предлагается использовать для возврата err уже существующий канал - там где данные по исключению.
Получаем плюсы от обоих подходов (не забудешь обработать err)
Аноним 05/12/20 Суб 17:04:35 #176 №1873634 
>>1873633
> Во всех
Это каких? Go и Rust?
Аноним 05/12/20 Суб 17:27:04 #177 №1873651 
>>1873634
Хаскель.
Аноним 05/12/20 Суб 17:31:14 #178 №1873653 
>>1873651
Это который появился до жабы, питона и пхп? Да, очень современный язык.
Аноним 05/12/20 Суб 17:31:26 #179 №1873654 
>>1873521
Какой же Стивен Кинг охуенный. Мало того что много годных книг написал так ещё и на крестах кодит.
Аноним 05/12/20 Суб 17:34:10 #180 №1873659 
>>1873633
>>1873651
В хаскеле и расте обработка ошибок православно-монадическая черз тип-сумму (Either), а не тупль.
Аноним 05/12/20 Суб 17:35:01 #181 №1873662 
>>1873659
Да какая разница, лол.
Аноним 05/12/20 Суб 18:01:02 #182 №1873674 
>>1873331
Полный интернет пруфов.
Аноним 05/12/20 Суб 18:22:10 #183 №1873692 
>>1873633
Ну и ты возвращай, что мешает?
Аноним 05/12/20 Суб 19:08:17 #184 №1873704 
>>1873459
Начиная с С++17 нахуй нен адо
Аноним 05/12/20 Суб 20:51:08 #185 №1873756 
>>1873575
Да, действительно. "r = s" вернёт Field_<T>&, что не попадает под copy elision. Нужно сделать
r = s;
return r;
Тогда всё ок
Аноним 05/12/20 Суб 21:01:07 #186 №1873760 
>2020
>C++

Нахуя?
Аноним 05/12/20 Суб 21:13:41 #187 №1873772 
>>1873760
Платят, к сожалению.
Аноним 05/12/20 Суб 21:14:30 #188 №1873773 
>>1873772
К счастью, не много.
Аноним 05/12/20 Суб 21:14:54 #189 №1873774 
>>1873773
Одинаково
Аноним 05/12/20 Суб 21:28:58 #190 №1873777 
>>1873633
Круче всего придумали в С: меньше нуля - ошибка, иначе полезное значение.
sageАноним 05/12/20 Суб 22:39:01 #191 №1873821 
>>1873760
Пошёл нахуй отсюда, шиз.
Аноним 05/12/20 Суб 22:48:31 #192 №1873824 
class Foo
{
public:
Foo(int);
};

int main()
{
Foo bar();
return 0;
}

Почему этот код успешно компилируется и не выдает ошибку на этапе Foo bar()? Ведь у нас нет конструктора по умолчанию. Что он вызывает?
Аноним 05/12/20 Суб 22:51:51 #193 №1873827 
>>1873692
Необязательность проверки.
Аноним 05/12/20 Суб 22:52:13 #194 №1873829 
>>1873777
Перетолстил.
Аноним 05/12/20 Суб 22:58:29 #195 №1873834 
>>1873824
Конструктор создаётся автоматически если ты его не задаёшь.
Аноним 05/12/20 Суб 22:59:22 #196 №1873836 
>>1873824
> Foo bar();
Сдаётся мне, это должно быть Foo bar;
Аноним 05/12/20 Суб 22:59:39 #197 №1873838 
>>1873824
А, блин, отвечу сам на свой вопрос, это же не шарп. Тут конструктор по умолчанию вызывается просто через Foo bar; Я просто пьяненький
Аноним 05/12/20 Суб 23:00:10 #198 №1873839 
>>1873836
Да, уже понял, спс. Просто с шарпом перемешалась каша в голове
Аноним 05/12/20 Суб 23:01:01 #199 №1873840 
>>1873836
Так как раз таки не скомпилируется.
Аноним 05/12/20 Суб 23:03:26 #200 №1873842 
>>1873824
Foo bar(); — объявление функции, а не переменной. Наследие от сей. Не пиши так никогда и всё будет хорошо.
Аноним 05/12/20 Суб 23:15:56 #201 №1873848 
>>1873842
Спасибо
Аноним 05/12/20 Суб 23:25:52 #202 №1873850 
>>1871463
Вот жеж мудак на пикче. Высрал свою книгу по шаблонам, другой мудак впечатлился и высрал на них относительно объёмную прогу-сервис на стандарте с++03. А я потом с этого кода охуевал. При том, что решать поставленную задачу шаблонами не было никакой необходимости, банальная прикладная приложуха.
Аноним 05/12/20 Суб 23:29:16 #203 №1873853 
>>1873850
Получается, что Керниган и Ритчи - самые главные мудаки? Почти весь говнокод в мире алголоподобных языков можно отследить к их книге.
Аноним 06/12/20 Вск 00:38:23 #204 №1873885 
Объясните, в чем разница между
class Values
{
private:
int m_value = 5;
};

и

class Values
{
private:
int m_value;
};
public:
Values() : m_value(5);
{
}
};
Желательно, как можно подробнее
Аноним 06/12/20 Вск 00:42:55 #205 №1873887 
>>1873885
Почти одно и то же.
Второй пример выполняется после первого, если в наличии оба.
Позволяет иметь "дефолтное" значение, а потом другим конструкторам иметь "более приоритетные дефолтные" значения.
Аноним 06/12/20 Вск 01:10:11 #206 №1873899 
>>1873887
В первом примере работает копирующая инициализация, то есть в строке int m_value = 5, сначала создается интовый объект 5, а потом его значение копируется в m_value, или в случае с инициализацией членами класса компилятор сразу даст m_value значение 5 без порождения лишних объектов?
Просто я где-то видел, что лучше всего использовать только списки инициализации, и если ответ на мой вопрос в абзаце выше будет "да", то тогда для меня очевидна выгода списков инициализации -- нет порождения лишних сущностей, напрямую инициализирует объект. Если же ответ, будет "нет", то, выходит, нет разницы, каким способом инициализировать члены класса?
Аноним 06/12/20 Вск 01:32:42 #207 №1873913 
>>1873899
В обоих случаях инициализация объекта происходит напрямую, без порождения лишних сущностей.
Аноним 06/12/20 Вск 01:38:10 #208 №1873915 
>>1873850
а мне понравилась книжка в свое время
интересная, повеселила
Аноним 06/12/20 Вск 01:57:16 #209 №1873923 
>>1873887
>Второй пример выполняется после первого, если в наличии оба.
Тогда почему следующий код не печатает сообщение "Hello" дважды?
class Hello
{
public:
Hello()
{
cout << "Hello" << endl;
}
};

class Test
{
public:
Hello h;

Test() : h()
{
}
};
Аноним 06/12/20 Вск 02:03:15 #210 №1873930 
>>1873923
>выполняется после
Неправильно выразился.
Выполняется "вместо", то есть имеет приоритет.
Аноним 06/12/20 Вск 02:08:06 #211 №1873933 
>>1873923
Если в конструкторе в списке инициализации инициализируется поле, то инициализатор места объявления игнорируется

Если не инициализируется, то используется инициализатор места объявления

Это что-то вроде дефолтного значения
Аноним 06/12/20 Вск 05:07:14 #212 №1873993 
image.png
Что это за конструкция с ::
Аноним 06/12/20 Вск 05:33:06 #213 №1873996 
>>1873993
Перегрузка оператора?
Аноним 06/12/20 Вск 06:23:20 #214 №1874006 
>>1873993
Это как точка в яваскрипте.
Аноним 06/12/20 Вск 06:46:54 #215 №1874008 
>>1874006
>>1873996
я чё ебу????
Аноним 06/12/20 Вск 07:33:51 #216 №1874017 
>>1873827
[[nodiscard]] отменили?
Аноним 06/12/20 Вск 08:38:52 #217 №1874040 
image.png
Перекатился на Dev c++ 5.11 потом что visual studio выгнала, а тут простейшие вещи не работают. Что не так?
Красная строчка вот это подсвечивает
10 27 D:xxxxxxxxx\main.cpp [Error] no match for 'operator>>' (operand types are 'std::basic_istream<char>::__istream_type {aka std::basic_istream<char>}' and '<unresolved overloaded function type>')
Аноним 06/12/20 Вск 08:42:48 #218 №1874044 
Ясно нужно было endl убрать... >>1874040
Аноним 06/12/20 Вск 16:08:20 #219 №1874289 
image.png
не работает. Что не так?
Аноним 06/12/20 Вск 16:18:49 #220 №1874296 
>>1874289
Макросы кривые
Аноним 06/12/20 Вск 16:22:48 #221 №1874300 
>>1874296
Что это значит?
Аноним 06/12/20 Вск 16:28:11 #222 №1874303 
>>1874300
Это значит, что ты не указал, что такое oper и что ты вообще хочешь.
Но если предположить, что ты студент, то oper у тебя это char, то ты должен вот эти твои плюсики и звёздочки обернуть в одинарные кавычки. К тому же ты не сравниваешь этот твой oper со знаком деления, что всегда вернёт тру вроде.
Аноним 06/12/20 Вск 16:29:29 #223 №1874304 
>>1874303
блин спасибо я вправду просто одинарные ковычки не указал...
Аноним 06/12/20 Вск 16:56:01 #224 №1874321 
image.png
image.png
>>1874303

Бля что ж оно не выходит из if? Если оставить одно условие, допустим oper != "+" то всё работает, а если два и больше то тут хоть || хоть or соединяй просто постоянно по циклу гоняет.
Аноним 06/12/20 Вск 16:57:55 #225 №1874324 
image.png
>>1874321
я уж думал двощи 2 кусочка кода за 1 картинку приняли, а там и вправду одинаковые были. вот
sageАноним 06/12/20 Вск 17:34:53 #226 №1874389 
>>1874321
Потому что тебе нужно логическое и, а не или. Или учи логику.
Аноним 06/12/20 Вск 17:40:57 #227 №1874395 
Сажа приклеилась
Аноним 06/12/20 Вск 17:59:11 #228 №1874417 
>>1874389
Спасибо вот тебе в благодарность контакт человека знакомого с Костей Еременко https://vk.com/id4013063
Аноним 06/12/20 Вск 23:49:59 #229 №1874694 
template<class In, class T>
Как зовутся эти разные названия в темплейтах? И есть ли вообще какая-нибудь разница между ними? Если да то как их все нагуглить?
Аноним 07/12/20 Пнд 00:38:34 #230 №1874706 
>>1874694
Параметры шаблона
Как угодно. Руководствуются здравым смыслом и семантикой. Посмотри как в стандартной либе (но там ещё с подчёркивания начинают, так в стандарте положено) и в бусте называют
Аноним 07/12/20 Пнд 03:57:01 #231 №1874753 
Как при помощи fold expression реализовать упаковку битов в инт?
Т.е. int v = packBits( true, true, false, true, true ) в v будет записано 27
Аноним 07/12/20 Пнд 04:13:35 #232 №1874755 
>>1874753
Ладно, пока похер. Сделал так https://wandbox.org/permlink/XvZPyWwQBVA599qc
Аноним 07/12/20 Пнд 04:58:54 #233 №1874756 
>>1874755
Можешь std::initializer_list принять
Аноним 07/12/20 Пнд 06:27:17 #234 №1874764 
>>1874753
Чем тебе std::bitset не угодил?
Аноним 07/12/20 Пнд 06:46:02 #235 №1874766 
>>1874753
Думаю надо будет создать класс, принимающий биты и выдающий инт, но это какой-то оверинжиниринг. Если у тебя константа то что не просто литерал? 0b11011
Аноним 07/12/20 Пнд 07:40:09 #236 №1874773 
Untitled.png
>>1874753
Строго говоря - никак, потому что фолды работают с операторами. Тебе придется как-то переопределять оператор и возможно заворачивать булеаны во вспомогательный класс.

Можно сделать почти фолд
Аноним 07/12/20 Пнд 12:41:01 #237 №1874896 
Почитал об std::variant. Возник вопросы к практикующим:
Первый - а как часто вы использовали подобные вещи?
Второй - а на сколько реально надо закапываться в stl?
Аноним 07/12/20 Пнд 14:19:42 #238 №1874933 
>>1874896
Использую регулярно.
Аноним 07/12/20 Пнд 15:23:25 #239 №1874951 
>>1874764
Я этот инт потом передаю в шейдер и там по маске смотрю какой бит установлен. Для отладочного рисования делаю.
>>1874756
Хотел его, но там нельзя элемент получить по индексу, а писать list.begin() + i как-то не очень.
>>1874766
Функции достаточно.
Аноним 07/12/20 Пнд 15:54:34 #240 №1874974 
>>1874896
>а как часто вы использовали подобные вещи
Мне вариант ещё тогда бустовый было удобно делать, когда один формат парсил, и там строки, числа и другие структуры были.
>на сколько реально надо закапываться в stl
Условные lower_bound и make_heap тебя спросят максимум на собеседовании, но основные операции (erase, remove(_if), find(_if), transform, for_each, sort, copy(_if) и другие) надо уметь хотя бы хорошо читать. Но STL в основном логично построен, похожие операции возвращают и принимают похожие вещи, так что это не слишком сложно. ЕМНИП вот хороший доклад: https://www.youtube.com/watch?v=2olsGf6JIkU
Аноним 07/12/20 Пнд 21:01:01 #241 №1875210 
>>1874896
не видел ни одного юзкейса std::variant, который бы меня впечатлил и побудил использовать в проде.

а STL надо знать как свои пять пяльцев
Аноним 07/12/20 Пнд 21:46:28 #242 №1875279 
>>1875210
Например хранить объекты разных типов в векторе (а не указатели на них).
Аноним 07/12/20 Пнд 21:53:22 #243 №1875287 
>>1875279
Но зачем?
Аноним 07/12/20 Пнд 22:04:47 #244 №1875297 
>>1875287
Ну вот, например, в ВоВ интерфейс можно подписать слушать разные игровые события. Соответственно, у этих событий есть свои аргументы.
https://wow.gamepedia.com/Events
https://wow.gamepedia.com/API_Frame_RegisterEvent

Вот как бы нечто такое выглядело в коде? Можно, конечно, передавать массив строк, а затем пусть функция-обработчик события преобразовывает строки в нужный аргумент.
Аноним 07/12/20 Пнд 22:06:53 #245 №1875299 
В расте tagged enum конечно охуенный, std::variant до этого далеко, но хоть что-то.
Аноним 07/12/20 Пнд 22:12:29 #246 №1875308 
>>1875287
Чтобы они валялись в памяти непонятно где, а лежали последовательно, хорошо с точки зрения подгрузки в кэш.
Аноним 07/12/20 Пнд 22:22:29 #247 №1875323 
>>1875308
Дедуля, ты про полиморфные аллокаторы читал?
Аноним 07/12/20 Пнд 22:23:18 #248 №1875325 
Посоветуйте что почитать/посмотреть на тему хороших практик и оптимизации быстродействия готовых программ. Что-нибудь вроде того, что происходит здесь на 28:00: https://www.youtube.com/watch?v=zBkNBP00wJE
Аноним 07/12/20 Пнд 22:35:53 #249 №1875336 
>>1875323
Это и без полиморфных аллокаторов достигается бтв.
Аноним 07/12/20 Пнд 22:53:25 #250 №1875347 
>>1875325
Профайлером научись пользоваться сначала.
Аноним 07/12/20 Пнд 23:32:57 #251 №1875370 
>>1875299
Он еще и хуево оптимизируется в плане возврата/переупаковки по сравнению с растом
Аноним 07/12/20 Пнд 23:40:35 #252 №1875374 
>>1871682
Ошибки-значения лучше, когда они идиоматичны для языка и переупаковка их нормально оптимизируется компилятором. Если в плюсах везде использовать std::variant<Norm, Huevo> и пробрасывать, получишь миллион копирований/перемещений.
Аноним 07/12/20 Пнд 23:40:53 #253 №1875375 
>>1871682
Ошибки-значения лучше, когда они идиоматичны для языка и переупаковка их нормально оптимизируется компилятором. Если в плюсах везде использовать std::variant<Norm, Huevo> и пробрасывать, получишь миллион копирований/перемещений.
Аноним 07/12/20 Пнд 23:42:47 #254 №1875376 
>>1871845
Я пробовал, посмотрел, во что это компилируется, больше не буду.
Аноним 07/12/20 Пнд 23:44:33 #255 №1875377 
>>1875323
Аллокаторы не гарантируют тебе что соседние элементы будут рядом в памяти.
Аноним 07/12/20 Пнд 23:45:24 #256 №1875378 
>>1872921
ScopeGuard'ами.
Аноним 07/12/20 Пнд 23:46:52 #257 №1875380 
Блин, какие же плюсы клевые (несмотря на странности), жаль что нинужны(
Аноним 08/12/20 Втр 00:09:24 #258 №1875388 
>>1875380
В США вполне себе нужны и оплачиваемы
Аноним 08/12/20 Втр 00:18:29 #259 №1875392 
Пните в нужное направление, у меня не получается вывести отдельно кириллические буквы из строки в g++, вывожу через консоль. Пробовал wchar_t, char, const char.
Аноним 08/12/20 Втр 00:20:57 #260 №1875394 
image.png
Поч?
Аноним 08/12/20 Втр 00:25:36 #261 №1875398 
>>1875394
>>1875392
Попробуй wcout
Аноним 08/12/20 Втр 00:26:20 #262 №1875400 
>>1875398
Пробовал, не работает
Аноним 08/12/20 Втр 00:27:12 #263 №1875401 
>>1875394
1 это int. Выражение при вычислении приводится к самом у широкому типу, знаковый считаеться более широким чем беззнаковый (хотя в них может быть одиинаковое количество чисел). (a - 1) - преобразуется обратно в беззнаковый при присваивании, (b-1) выводится как есть, тоесть как знаковое.
Аноним 08/12/20 Втр 00:34:56 #264 №1875404 
>>1875398
То есть выводится что-то, но пустое место без символов
Аноним 08/12/20 Втр 01:12:52 #265 №1875422 
>>1875392
Выводи два соседних символа.
Аноним 08/12/20 Втр 01:31:42 #266 №1875431 
>>1874951
И? bitset.to_ulong() и потом в шейдер.
Аноним 08/12/20 Втр 01:33:04 #267 №1875434 
>>1875210
>а STL надо знать как свои пять пяльцев
не обязательно
Аноним 08/12/20 Втр 01:53:00 #268 №1875440 
>>1875394
Тому что арифметика знаковая, но в первом случае ты засовываешь результат в беззнаковую переменную а не UB ли это?
Аноним 08/12/20 Втр 01:56:58 #269 №1875443 
>>1875440
>а не UB ли это?
Нет
Аноним 08/12/20 Втр 02:13:01 #270 №1875448 
image.png
Эм, как лучше?

У меня есть куча кода с static const, есть смысл все делать constexpr? Или для компилятора это все одно и тоже?

А как правильно - constexpr или constexpr const?
Аноним 08/12/20 Втр 02:15:33 #271 №1875451 
>>1875448
constexpr implies const
Аноним 08/12/20 Втр 02:16:05 #272 №1875452 
>>1875448
>Или для компилятора это все одно и тоже?
Нет.
Аноним 08/12/20 Втр 02:23:07 #273 №1875454 
>>1875451
>constexpr implies const
Ум? А можно для нубика разъснить?
Аноним 08/12/20 Втр 02:24:38 #274 №1875455 
image.png
>>1875452
Хм, а почему тут одно и тоже?
Аноним 08/12/20 Втр 02:26:45 #275 №1875457 
image.png
>>1875452
или клангом
Аноним 08/12/20 Втр 02:27:28 #276 №1875458 
>>1875455
>>1875457
Потому что ты тупой.
Аноним 08/12/20 Втр 02:28:00 #277 №1875459 
>>1875455
Без /O2 смысла нет.
Аноним 08/12/20 Втр 02:29:29 #278 №1875460 
image.png
>>1875459
С ним в данном случае тем более нет смысла - он все уберет
Аноним 08/12/20 Втр 02:30:41 #279 №1875461 
>>1875458
Я спрашиваю, почему ты сразу наезжаешь?
Аноним 08/12/20 Втр 02:30:42 #280 №1875462 
>>1875455
const можно использовать не во всех контекстах, в которых можно использовать constexpr.
Аноним 08/12/20 Втр 02:32:36 #281 №1875463 
>>1875461
Потому что у тебя логика странная.
Ты почему-то из "для компилятора есть разница" делаешь вывод "получается разное в дизасме", а я этого не говорил.
Аноним 08/12/20 Втр 02:52:37 #282 №1875467 
>>1875462
Я не про отдельный const. А про то, избыточна ли эта запись: "constexpr const".

>>1875463
Ну тогда объясни тупому в чем выражается эта разница для компилятора конкретно в данном примере кода



Аноним 08/12/20 Втр 02:59:20 #283 №1875472 
>>1875467
>Я не про отдельный const. А про то, избыточна ли эта запись: "constexpr const".
>>1875454
Аноним 08/12/20 Втр 03:22:49 #284 №1875477 
image.png
>>1875472
Я это к чему спрашиваю, это как с inline. По стандарту написано что все методы описанные внутри своего класса должны быть inline, но все равно серьезные дядьки из гугла/милкософта/etc пишут руками как на пикче (этого я тоже не понимаю)


Такой же вопрос избыточности или нет возник и с constexpr. Тем более что я тут погуглил, и оказалось что есть моменты, где без constexpr const просто не будет компилироваться (указатели на constexpr)
Аноним 08/12/20 Втр 03:37:47 #285 №1875479 
>>1875477
>пишут руками как на пикче
Не пишут
Аноним 08/12/20 Втр 03:52:54 #286 №1875481 
image.png
>>1875479
Да, а это тогда что?

И я даже специально не искал - первый же файл из гитхаба открыл
Аноним 08/12/20 Втр 04:23:22 #287 №1875485 
8ac.jpeg
>>1875477
> По стандарту написано что все методы описанные внутри своего класса должны быть inline
Чё
Аноним 08/12/20 Втр 05:04:56 #288 №1875496 
>>1875485
A function defined within a class definition is an inline function.
Аноним 08/12/20 Втр 06:30:47 #289 №1875519 

>>1875496
Учи русский (и английский).
Аноним 08/12/20 Втр 07:59:18 #290 №1875543 
>>1875519
А стандарт уже на русском?
Это же цитата из стандарта

И что он ответил не так?

~Мимоход
Аноним 08/12/20 Втр 08:07:28 #291 №1875545 
Xто-то стандарт С++ полон таких мелких нюансов, о которых многие забывают/не знают.

Вот про inline - четко и ясно написано. И все равно люди пишут >>1875481
Не, я бы понял если бы речь была про forceinline. Но тут inline

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



Аноним 08/12/20 Втр 09:17:06 #292 №1875554 
>>1875448
Пиши const constexpr const __attribute__((const)), не ошибёшься.
Говорят, в следующем стандарте завезут constanter_const_cast<>
Аноним 08/12/20 Втр 09:31:35 #293 №1875560 
>>1875543
Там написано не то, что они должны быть inline, а то, что они уже inline и ничего писать больше не нужно.

Нормальный анализатор кода выдаст тут предупреждение
Аноним 08/12/20 Втр 09:41:10 #294 №1875565 
>>1875560
>то они должны быть inline, а то, что они уже inline
И как это противоречит? Стандарт описывает работу компилятора.

>>1875560
>Нормальный анализатор кода выдаст тут предупреждение
Но вот почему-то пишут руками>>1875481
Аноним 08/12/20 Втр 09:42:57 #295 №1875568 
>>1875554
>Пиши const constexpr const __attribute__((const)), не ошибёшься.
Я вот не понимаю, нахера в С++ вводят кучу необязательных классификаторов? По типу, ну может быть оно будет таким, как написали... А может и не будет
Аноним 08/12/20 Втр 10:07:19 #296 №1875573 
>>1875325
Бамп
>>1875347
Да с ним уже немного умею, мне именно в фишки самого языка.
Аноним 08/12/20 Втр 10:12:24 #297 №1875576 
>>1875568
Потому что кресты древнее говно мамонта, в котором дизайн трещит по швам и собран из костылей чуть менее чем полностью.
Аноним 08/12/20 Втр 10:44:05 #298 №1875588 
image.png
Что значит "терм"? Что значит "первичное выражение"? Чем оно от обычного отличнается? Ничего не ясно. Это страуструп 234 страница
Аноним 08/12/20 Втр 10:54:02 #299 №1875594 
>>1875588
Не читай это, просто скипни. Это настолько убьёт мотивацию что ты зашкваришься и уйдёшь в жопаскрипт.
Аноним 08/12/20 Втр 10:55:53 #300 №1875595 
>>1875588
Я это пропустил, когда читал. Это невозможно читать без предварительной подготовки. Затем формальные грамматики тыкал отдельно.
Аноним 08/12/20 Втр 11:30:34 #301 №1875617 
1607416228990.jpeg
>>1875481
>>1875565
> Но вот почему-то пишут руками

Пчел...
Аноним 08/12/20 Втр 11:47:34 #302 №1875623 
>>1875588
Просто названия синтаксических конструкций, ничего сложного.
Аноним 08/12/20 Втр 12:01:25 #303 №1875631 
>>1871231
хз я школьник но у нас с++ вроде проходим не такие уж и лёгкие алгоритмы такие как дерево отрезков или таблица пар
Аноним 08/12/20 Втр 12:17:08 #304 №1875638 
>>1875617
>Пчел...
13 лет назад был С++ 03. В котором уже было про inline методы внутри классов. Так что не аргумент. И это не настолько давно - я в те годы как раз загорелся идеей стать программистом и трогал всякие делфи (и даже видел такое чудо как делфи.нет)
Аноним 08/12/20 Втр 13:02:06 #305 №1875670 
изображение.png
>>1871183 (OP)
Что происходит при объявлении указателя на класс Node<T> head как поля класса List?
При создании объекта класса List c параметром Node<T>
head, вызывается конструктор Node, а затем в класс List передается указатель на только созданный объект Node?
Аноним 08/12/20 Втр 13:53:20 #306 №1875701 
>>1875670
нет, ничего не произойдет, у тебя там указатель, и он может вообще на другой нод указывать
Аноним 08/12/20 Втр 13:54:07 #307 №1875704 
>>1875670
короче, произойдет ровно тоже самое что тут:
class F
{
int *i;
};
Аноним 08/12/20 Втр 14:10:55 #308 №1875713 
изображение.png
>>1875704
Это реализация односвязного списка и она работает. Все через указатели ведь.
Аноним 08/12/20 Втр 14:12:17 #309 №1875714 
>>1875560
И?
Я здесь >>1875496 как раз и сказал, что они уже инлайн.
Это всё ещё к тому же вопросу, зачем писать inline там, где он уже и так имеется ввиду.

То что тут >>1875485 чувак криво мысли формулирует — не моя проблема.

>>1875519 этот — долбоеб.
Аноним 08/12/20 Втр 14:16:53 #310 №1875718 
>>1875545
Ты тупой какой-то.
Может, у них практика такая, чтоб можно было потом эту функцию легко перенести из class scope в namespace scope в хедере. Тогда inline не придётся дописывать. А может автор кода аутист. Зачем нам разгадывать его мотивы? Ты это как авторитетный кусок кода принёс, потому что он в гугловской кодовой базе? Охуеть просто. А может ему нравится быть explicit вообще во всём, вот такой он у мамы дотошный.

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


Аноним 08/12/20 Втр 14:18:29 #311 №1875720 
>>1875638
>13 лет назад был С++ 03. В котором уже было про inline методы внутри классов.
Было хуй кобылы.
Нормальные практики написания кода даже сегодня не везде проникли, а многие даже опытные программисты пишут в таком же стиле, в котором они писали 20 лет назад. И стандарт тут не причём.
Аноним 08/12/20 Втр 15:10:14 #312 №1875759 
Почему ассерты не используют для частичного эррор хэндлинга? И почему их выпиливают в релизе? Или у меня ложная инфа?
Аноним 08/12/20 Втр 15:16:51 #313 №1875772 
>>1875759
Ассерт умеет только падать, когда данные уже попорчены. Такой себе хендлинг.
Аноним 08/12/20 Втр 15:19:19 #314 №1875779 
>>1875759
Ассерты изначально предназначены для тестирования кода на этапе разработки, типа юнит-тестов. Если ассерт свалился, значит, в логике программы ошибка. Ассерт - это то, что не должно выполняться никогда, вне зависимости от введённых данных. Обработка ошибок - это другое, она предполагает, что эти ситуации возможны. А ассерты для покрытия ситуаций в духе "квадратный корень положительного действительного числа вернул отрицательное значение".
Аноним 08/12/20 Втр 15:58:58 #315 №1875825 
>>1875772
Но ведь иногда случаются ошибки, при которых программа не может продолжать исполнение и вынуждена упасть.
Аноним 08/12/20 Втр 15:59:46 #316 №1875826 
>>1875779
содержательный ответ, спасибо.
Аноним 08/12/20 Втр 16:08:54 #317 №1875837 
>>1875825
Значит хуево тестируете на пререлизном этапе, что еще можно сказать
Аноним 08/12/20 Втр 16:08:58 #318 №1875838 
>>1875825
if(...) return -1/exit("...");
Аноним 08/12/20 Втр 16:33:05 #319 №1875859 
>>1875825
Примеры?
Аноним 08/12/20 Втр 17:01:31 #320 №1875907 
>>1875718
> чтоб можно было потом эту функцию легко перенести из class scope в namespace scope в хедере. Тогда inline не придётся дописывать
Бляяяядь.
Анон, помни, такой дебич может сидеть за соседним столом
Аноним 08/12/20 Втр 17:03:03 #321 №1875910 
>>1875907
Я просто предположил, гайдлайны в разных компаниях могут быть сколько угодно ебанутыми.
Аноним 08/12/20 Втр 18:40:47 #322 №1876015 
>>1875431
Я юзаю либу imgui, там чекбоксы\открыто-закрыто окно и тд реализуются через указатель на bool
Аноним 08/12/20 Втр 19:22:32 #323 №1876053 
>>1875907
Так объясни, зачем inline в >>1875481. Чего выебываться-то?
Аноним 08/12/20 Втр 19:51:42 #324 №1876072 
>>1875907
А может быть все еще хуже - за соседним столом можешь оказаться ты.
Аноним 08/12/20 Втр 20:36:42 #325 №1876098 
>>1875481
пчел, компиляторы уже давно умнее кожаных мешков в плане оптимизации кода. Компиль сам заинлайнит нужные функции.
Аноним 08/12/20 Втр 21:18:24 #326 №1876123 
>>1876015
>указатель на bool
Ну тогда если фолд не обязательно, то делаешь вектор/список указателей на твои булы v, потом
res = accumulate (v.begin(), v.end(), 0, [](uint32_t res, bool b){ return res << 1 + b;});
>>1874766 й
Аноним 08/12/20 Втр 21:19:47 #327 №1876126 
>>1876072
да он типичный студентик:

- Ряяя новый стандарт, бест практикс, александреску скозал...
- Уёба, ты когда таску закроешь?
- ...
Аноним 08/12/20 Втр 21:20:17 #328 №1876127 
>>1876123
Звезды съелись.
Аноним 08/12/20 Втр 21:33:08 #329 №1876137 
>>1876127
Типичный крестотред.
Аноним 08/12/20 Втр 21:38:17 #330 №1876141 
>>1872960
>>1873633
>>1872946
>>1872924
И это в 200-м то году в крестах еще остались аутисты, котороые не используют std::expected, обернутый в корутины для монадных операций?
https://github.com/toby-allsopp/coroutine_monad
Аноним 08/12/20 Втр 21:38:31 #331 №1876142 
>>1876137
Нет, типичный будет через 172 поста.
Аноним 08/12/20 Втр 21:40:11 #332 №1876144 
>>1875772
> Ассерт умеет только падать
А вот и нет. Можно повесить свой обработчик
Аноним 08/12/20 Втр 21:48:54 #333 №1876152 
>>1875910
Это не гайдлайн, это проблемы при разработке архитектуры. Если вдруг у твоего нанимателя появятся деньги на рефакторинг этого дерьма, то об inline ты точно не забудешь. а в шаблонах он нахуй и не нужен

>>1876053
Да не нужен он там, это писали деды до того, как на рынке появились более-менее вменяемые анализаторы кода. Типичный дед --> >>1876126
Аноним 08/12/20 Втр 21:56:14 #334 №1876159 
>>1876142
Не будет, т.к. перекаты отныне с 500.
Аноним 08/12/20 Втр 21:58:33 #335 №1876161 
>>1876141
Сейчас бы пердолить абстракции из костылей, получая производительность как в нормальном языке с функциональщиной из коробки.
Аноним 08/12/20 Втр 22:04:30 #336 №1876169 
>>1876161
>пердолить абстракции из костылей
из этого и состоит профессия программиста, ну хотя еще из дейли митинов там всяких
>нормальном языке с функциональщиной
ну хотя я уже понял что программистом ты никогда не работал, а только кукарекаешь на дваче
> получая производительность
норм там производительность
Аноним 08/12/20 Втр 22:07:05 #337 №1876172 
>>1876161
>производительность
https://github.com/facebook/folly/blob/master/folly/Expected.h#L1332
собственно вот, в кор перформанс критикал либе пейсбука, так что сосай бибу, кукаретик
Аноним 08/12/20 Втр 22:09:01 #338 №1876175 
>>1876159
Это нелегитимные перекаты.
Аноним 08/12/20 Втр 22:15:33 #339 №1876181 
>>1876172
Сам сосни без пруфов. Гейбук даже руби использовал, так что сосать всё же тебе надо.
Аноним 08/12/20 Втр 22:18:35 #340 №1876183 
>>1876181
не заплачь только чмоня, а то серьезные дяди твою тонкую студенческую душонку обидели. И вообще иди laba2 с хаскеля на си переписывай, а то препод не примет, скажет дурачок
Аноним 08/12/20 Втр 23:05:24 #341 №1876205 
>>1875588
Так, молодежь не читала Ахо и не использует yacc?
Это просто названия нетерминалов. Им тут же даётся грамматическое определение.
Аноним 08/12/20 Втр 23:23:57 #342 №1876217 
>>1876141
В с/c++ уже все обернуто в монаду (любой блок кода), поэтому у тебя масло масляное.
Аноним 08/12/20 Втр 23:27:17 #343 №1876220 
>>1875588
>Что значит "терм"?
(опционально терм */%) Первичное вырежение
>Что значит "первичное выражение"?
Число либо (Выражение в скобках)
>Чем оно от обычного отличнается?
Тем что выражение это (опционально выражение +-) терм.
Все же написано.
Аноним 08/12/20 Втр 23:36:30 #344 №1876224 
>>1876098
1. Речь шла не об этом варианте применения inline.
2. Если уж ты об этом заговорил, то и gcc и clang учитывают inline при принятии решения, инлайнить функцию или нет.
3. Компилятор переиграть в нетривиальных алгоритмах достаточно легко.
Аноним 08/12/20 Втр 23:37:50 #345 №1876225 
>>1876152
А я и не спорил ни разу, че ты
Аноним 09/12/20 Срд 02:49:52 #346 №1876288 
>>1875826
еще проще:
- деление на ноль - это ассерт, и не должно происходить никогда (но в дебаге стоит проверить)
- чтение поврежденного файла на диске - это ошибка, бытовая ситуация, и должна обрабатываться всегда (даже если просто падает)
- отсутствие строчки в конфиге - это варнинг, должен обрабатываться и исправляться, но не падать
Аноним 09/12/20 Срд 03:33:46 #347 №1876298 
>>1876152
>Да не нужен он там, это писали деды до того, как на рынке появились более-менее вменяемые анализаторы кода.
Вот именно, что не нужен. Этого ответа от тебя полтреда и добивались, ебанько.
Аноним 09/12/20 Срд 03:43:38 #348 №1876301 
>>1876126
Двачую. Наконец понял, что за манера разговора - душный студентик, который только что дочитал Страуструпа.
Аноним 09/12/20 Срд 07:14:29 #349 №1876320 
Кто-нидудь работал с контрольными суммами? Столкнулся с ситуацией, имеется: uint32_t massiv[size] - это 32битный массив.
Требуется вычислить его контрольную сумму crc32, вообще ума не приложу как это сделать
Аноним 09/12/20 Срд 09:16:56 #350 №1876342 
>>1876320
Ты не поверишь...
Аноним 09/12/20 Срд 10:54:34 #351 №1876374 
image.png
image.png
Почему 3 это терм, а не выражение? В этой грамматике вообще все значения должны становится выражениями. Что им мешает?
Аноним 09/12/20 Срд 10:57:06 #352 №1876376 
>>1876374
Потому же, почему 4 - это и цифра, и число из одной цифры одновременно.
Аноним 09/12/20 Срд 11:35:03 #353 №1876393 
>>1876374
Тебя не смутило, что терм это первичное выражение, первичное выражение это выражение, а выражение это терм? Там цикличное определение. Чтобы разорвать цикл нужна воля.
Аноним 09/12/20 Срд 11:35:29 #354 №1876394 
image.png
>>1876376
Я это и подметил, тут ошибка в том что я думал, что ход анализа почему то как на пик 1 шел из-за этого те 2 правила ниже не работали б. А вот как обработать тот же пример 2+3 но еще и 5, ведь 2+3 засчитается как выражение, а в синтаксисе терм первичное выражение, а выражение * первичное выражение нету
Аноним 09/12/20 Срд 11:36:15 #355 №1876395 
>>1876394
сломалось все из за *, но думаю все равно понятно
Аноним 09/12/20 Срд 11:37:44 #356 №1876400 
>>1876394
Чтобы умножить 2+3 на 5, тебе придется взять в скобки и все сойдется.
Аноним 09/12/20 Срд 11:40:25 #357 №1876401 
>>1876400
не я именно про 2+35. нету ведь для такой ситуации правила. есть только термпервичное выражение.
Аноним 09/12/20 Срд 11:40:41 #358 №1876402 
>>1876401
да бля 2+3*5
Аноним 09/12/20 Срд 11:41:07 #359 №1876403 
>>1876401
... есть только терм*первичное выражение.
Аноним 09/12/20 Срд 11:42:11 #360 №1876404 
3*5 это терм.
>>1876402
Аноним 09/12/20 Срд 11:52:04 #361 №1876410 
>>1876342
Так может подскажешь? Хотя бы идею как вообще это рассчитывать, все что нашел в Гугле это лютый пиздец, вообще не применимый к моей задаче.
Аноним 09/12/20 Срд 11:59:43 #362 №1876413 
image.png
image.png
image.png
image.png
>>1876404
а чё 3 не проваливается в выражение, а остается в терм. Как будто он ждет пока к нему придет первичное выражение, как будто знает об умножении. Как ход вообще идет? значение и оператор получается. в данном случае 2+ потом 3* потом 5. Так как тогда ход анализа идет? Если как на пик 1 получается пик 2, где все сторопится когда 5 лишний раз преобразовывается в терму, а если как на пик 3, то тогда 2+ не проходит по условию потому что 2+ пока что просто терм, еще в выражение не преобразовавшийся.
Аноним 09/12/20 Срд 12:17:47 #363 №1876429 
>>1876410
Подсказка: 0xEDB88320
Аноним 09/12/20 Срд 12:20:35 #364 №1876431 
>>1876410
Конкретный алгоритм устанавливается в условиях задачи, самое простое - просуммировать все числа массива и взять 4 младшие байта результата (и.е суммировать можно прямо в уинт32)
Аноним 09/12/20 Срд 12:25:26 #365 №1876436 
>>1876413
>Как ход вообще идет?
Сверху вниз (деды) или снизу вверх (yacc), как хочешь.
Аноним 09/12/20 Срд 12:33:10 #366 №1876440 
>>1876431
Конкретная задача такова, есть микроконтроллер российского гавнопроизводства, я написал прошивку для него, у этой прошивки с помощью обычных онлайн калькуляторов можно посмотреть контрольную сумму, то есть там используется полином crc32 ieee, моя задача прочитать память МК, в которую и была записана прошивка, это будет как раз массив uint32_t massiv[size]. Далее мне нужно вот к этому массиву применить расчет crc с использованием полинома crc32 ieee, для того чтобы я мог сравнить то что должно было быть записано в МК, с тем что там записано по факту.
Аноним 09/12/20 Срд 12:36:19 #367 №1876443 
image.png
>>1876436
Ну нехуя ты умный. опиши тогда это выражение этой грамматикой можешь хоть деды хоть уасс использовать
Аноним 09/12/20 Срд 12:43:18 #368 №1876456 
>>1876320
Какая часть тебя ставит в тупик?
Ты не умеешь складывать?
Аноним 09/12/20 Срд 12:48:32 #369 №1876460 
>>1876413
Я не писал компиляторов, но предложу что там перебор.
Т.е. если не сработало с термом, пробуем с выражением, и так далее.
Аноним 09/12/20 Срд 12:54:58 #370 №1876467 
>>1876413
Это называется "жадность", и довольно болезненный вопрос в грамматиках, регулярных выражениях и вот этом всем.
Ты встретил 2. Это число.
Ты встретил +. Есть правило которое требует слева выражение, справа терм.
Слева число которое может быть повышено до выражения.
Справа терм. Начинаем набирать терм.
Встретили 3, это число, это терм.
Встретили ⚹, опа, а там рекурсивное правило.
Ведь и 3 терм, и 3⚹5 это тоже терм.
Аноним 09/12/20 Срд 12:55:57 #371 №1876469 
>>1876456
Почему складывать? Я понимаю как получить КС на бумаге, например от 8бит информации применяя полином 3 степени к примеру, тут все соизмеримо, но мне нужно применить к 30кб информации полином 32 степени, вот тут я не понимаю как это должно работать. Были мысли взять КС отдельно от каждых 32бит (это по сути один элемент массива) и потом сложить их все, но будет ли это верно?
Аноним 09/12/20 Срд 13:21:25 #372 №1876496 
>>1876440
Boost crc
Аноним 09/12/20 Срд 13:45:52 #373 №1876520 
>>1876098
сразу скажу что я не разбираюсь в вопросе, но у меня есть подозрение, что и сегодня можно на асме писать куски кода которые будут в разы быстрее отрабатывать, за счет того что будут напрямую использоваться векторные расширения, новые наборы инструкций, плюс программирование с учетом попадания в кеш и прочие оптимизации..

Аноним 09/12/20 Срд 14:08:17 #374 №1876550 
>>1876440
>crc32 ieee,
5 секунд в Гугле
https://github.com/Duet3D/CoreNG/blob/master/asf/common/services/crc32/crc32.c
Аноним 09/12/20 Срд 14:09:20 #375 №1876552 
>>1876520
> то и сегодня можно на асме писать куски кода которые будут в разы быстрее отрабатывать
Не имеет смысла в плане трудозатрат.
> напрямую использоваться векторные расширения
Только если вдруг компилятор сам не сможет определить, куда их применить в конкретном случае, что случается достаточно редко.
> новые наборы инструкций
Каким образом?
> плюс программирование с учетом попадания в кеш и прочие оптимизации..
Хуяции. Если ты свою laba2.cc напишешь ассемблерными вставками, лучше в кэш оно укладываться не станет. Это решается разработкой схемы доступа к данным с учетом особенностей кэширования, и то только для конкретного случая, если бенчмарки показали чаще всего просто в качестве превентивного предотвращения false sharing куда-нибудь прихуяривают паддинг в 64 байта
> сразу скажу что я не разбираюсь в вопросе
Хуле пиздишь тогда?
Аноним 09/12/20 Срд 14:16:49 #376 №1876565 
>>1876552
>Не имеет смысла в плане трудозатрат.
Потому что ты так сказал?
Мне вот платят именно за это, когда нужна производительность.
Аноним 09/12/20 Срд 14:22:35 #377 №1876570 
>>1876565
Мы про случаи "изначально писать ассемблерной вставкой". Если ты начинаешь хуярить это сразу на асме, не спрототипировав и не померив производительность в обычном варианте, то земля пухом.
Аноним 09/12/20 Срд 14:23:28 #378 №1876572 
>>1875595
>>1875594
двощую
Аноним 09/12/20 Срд 14:31:04 #379 №1876581 
>>1876469
Попробовал объяснить своими словами и понял что сам не понимаю как Crc32 работает.
Ну в общем там какой то аккумулятор, в который по биту засовывают и ксорят )))
Аноним 09/12/20 Срд 14:43:30 #380 №1876587 
>>1876443
>хоть деды <...> использовать
Он имел ввиду дедовский способ, руками написанный рекурсивный спуск. Реально, анон, почитай лекции по формальным грамматикам и парсерам, проще будет.

По твоему вопросу: грубо говоря парсеры в каждый момент времени держат несколько вариантов развития событий. И если в какой-то момент попадается символ, который не вписывается в текущее правило, они пробуют другое правило. Если всё равно что-то не так, они отходят на шаг назад и уже там пробуют по-другому. И так, пока не распарсится вся строка до самого конца.
Аноним 09/12/20 Срд 15:04:18 #381 №1876601 
>>1876581
>>1876550
>>1876496
Спасибо за ответы, попробую теперь разобраться. Готовую либу мне что-то даже а голову не пришло искать...
Аноним 09/12/20 Срд 15:28:17 #382 №1876610 
>>1876587
Ладно анон, отложу это на потом. Поясни пожалуйста, парсеры в интернете так и работают: с помощью грамматик находят нужные элементы в html странице?
Аноним 09/12/20 Срд 15:54:41 #383 №1876641 
>>1876552
>Хуле пиздишь тогда?
анонимная доска, хули не пиздеть?
Аноним 09/12/20 Срд 15:57:52 #384 №1876644 
Анон, поясни почему так.

int main()
{
int a{3};
int b{2};
int c = &b;
cout << c << " " << b << endl;
--с;
cout <<
c << endl;
return 0;
}
Выводит
0x61fe0c 2
40

почему 40, а не 3?
Аноним 09/12/20 Срд 16:03:43 #385 №1876648 
>>1876644
Потому что это невалидный код в C++.
Аноним 09/12/20 Срд 16:07:30 #386 №1876650 
Снимок экрана (1088).png
Снимок экрана (1089).png
Сап, ньюфаг в треде, появилась проблема с "winbgim.h" и <string.h>. Проблема заключается в том, что нужно сделать 3-д обьект в консоли с помощью команд (ellipse, line) но что-то я не могу понять за что отвечают числа, к примеру "line (575,400,575,100);" Обычная линия коих много надо =, но за что отвечает первое число (575), и второе, третье? Мне нужно знать какое число отвечает за высоту, ширину, направления. То же самое с ellipse. Буду очень благодарен за ответ, так как только пытаюсь вкатиться.
Аноним 09/12/20 Срд 16:11:21 #387 №1876654 
>>1876644
UB
Аноним 09/12/20 Срд 16:12:07 #388 №1876655 
>>1876644
UB UB гроб кладбище пидор
Аноним 09/12/20 Срд 16:24:20 #389 №1876670 
>>1876650
>line (575,400,575,100)
Ну это явно координаты точек
Перейди на объявление этих функций, там должно быть понятно хотя бы из имён переменных.
Или ищи доки на твою либу.
Аноним 09/12/20 Срд 16:27:33 #390 №1876676 
>>1876650
Каждый раз, когда вижу в плюсовом коде <string.h>, задумываюсь, имелся в виду <cstring> или <string>.
Аноним 09/12/20 Срд 16:32:33 #391 №1876681 
>>1876676
Он шпарит по методичке написанной ещё при совке. Естественно там о либах плюсовых ничего ещё не было
Аноним 09/12/20 Срд 16:34:03 #392 №1876684 
>>1876650
Ебаный ад
Аноним 09/12/20 Срд 16:37:56 #393 №1876689 
>>1876644
Фиг знает. Может компилятор вообще не сэмитил запись переменной "a" в стек и держит только её значение в коде.
Аноним 09/12/20 Срд 16:53:16 #394 №1876711 
>>1876670
Как я понял - line (x1, y1, x2, y2)
Где x1, y1 координаты левого верхнего угла
А x2, y2 координаты правого нижнего угла.
Аноним 09/12/20 Срд 16:55:43 #395 №1876716 
>>1876644
Не знаю что ты там хотел написать, все звездочки съело.
Если ты пытался передвинуть указатель на типа "предыдущий" массив, то это так не работает - между ними может быть целая страница памяти, например.
Аноним 09/12/20 Срд 16:57:09 #396 №1876719 
>>1876650
Тебе обязательно пользоваться именно этим говном?
Аноним 09/12/20 Срд 17:01:47 #397 №1876726 
>>1876719
А что ты предлагаешь?
Аноним 09/12/20 Срд 17:03:19 #398 №1876729 
>>1876726
Вижуал Студия как IDE, SFML как рисовалка
Аноним 09/12/20 Срд 17:15:54 #399 №1876746 
>>1876726
Смотря какие у тебя задачи.
Есть CImg. Есть разные либы для рисования, собственно, 3D. Есть куча либ для 2D если тебе так важно рисовать все линиями и кружочками.
В конце концов есть софт для процедурного рисования командами, но не си++.
Тот же OpenSCAD.
Аноним 09/12/20 Срд 17:23:16 #400 №1876753 
>>1876729
Visual Studio что-то не зашло, возможностей больше, но машина у меня слабая.
Аноним 09/12/20 Срд 17:24:31 #401 №1876756 
>>1876746
3-д модельки это не основная работа, это скорее исключения, так что не вижу смысла куда переходить.
Аноним 09/12/20 Срд 20:58:20 #402 №1876913 
>>1871393
Пердачую модули и std::format. Лично я жду, когда в стандарт уже завезут нормальный мультиплексированный ввод-вывод, но это произойдёт не в двадцатых плюсах, а когда Networking TS доведут до ума.
Аноним 09/12/20 Срд 21:41:34 #403 №1876936 
>>1876520
Это верно. Часть инструкций процессора невозможно из с++ использовать напрямую. Особенно это болезненно, если ты всякие кодеки дрочишь под эмбед.

>>1876552
stl макака в режиме отрицания? В прошлом треде тебе приводили пример на ASM + SIMD для обработки картинок. Работает в 2-2.5 раза быстрее чем тот же код без вставок на c++.

Аноним 09/12/20 Срд 21:47:41 #404 №1876940 
>>1876650
у тебя не 3d, а 2d.
Обычно дело обстоит так:
Оконная координатная система имеет начало (0,0) в левом верхнем углу экрана. Ось X вправо, ось Y вниз.
Отрезок/линия задаётся двумя точками в этой системе координат.
line(x1, y1, x2, y2).
Аноним 09/12/20 Срд 22:08:48 #405 №1876959 
>>1876936
Я вычисляю 100к+ цифровых подписей в секунду, на чистых плюсах без ассемблерных извращений больше 10к не вытянуть при тех же алгоритмах.
Аноним 10/12/20 Чтв 01:31:03 #406 №1877081 
>>1876746
У меня вопрос. Вот есть либа для рисования геометрии opencsg, например. Насколько я понимаю, это только инструмент для визуализации. Если мне туда физику на модельку прикрутить надо, как в CAD/CAE софте.
Как дальше работать с этой геометрией? Ведь все эти либы только для визуализации, как я понимаю, а перевести их в сетку с ячейками и получить дальше какой-то динамический массив в виде ячеек необходимо? Есть такие инструменты?
Аноним 10/12/20 Чтв 01:44:42 #407 №1877087 
>>1877081
Так а что тебе нужно то?
Вся геометрия для CAD и им подобных систем - OpenCASCADE.
Нужна физика - Bullet
Визуализация расчётных сеток (и операции с ними) - Vtk
Всё это пилилось лет 15 и там овердохуя всего. Но не хайтек и работает не очень шустро.
Аноним 10/12/20 Чтв 01:57:15 #408 №1877094 
>>1877087
Генераторы расчётных сеток и решатели я не знаю какие есть нормальные в исходниках. Обычно их жопят в уголок и никому не показывают.
Аноним 10/12/20 Чтв 02:19:40 #409 №1877099 
изображение.png
изображение.png
изображение.png
Прошу, анонче, помоги долбоебу(мне) написать программу:
1. В матрице A[n][n] отсотировать строки так, чтобы элементы последнего столбца были упорядочены по неубыванию. Обязательно надо создать функцию, которая меняет местами строки, номера которых переданы как формальные параметры.

С горем пополам написал такой говнокод, однако работает через раз:

void sort_rows(int matrix, int row1, int row2, int columns) {
int temp;
for (int k = 0; k < columns; k++) {
temp = matrix[row1][k];
matrix[row1][k] = matrix[row2][k];
matrix[row2][k] = temp;
}
}

int
sort_matrix(int matrix, int rows, int columns) {
int last;
for (int i = 0; i < rows; i++) {
last = matrix[columns - 1];
for (int k = 0; k < rows; k++) {
if (last < matrix[k][columns - 1]) sort_rows(matrix, i, k, columns);
}
}
return matrix;
}

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

Аноним 10/12/20 Чтв 02:20:38 #410 №1877101 
>>1877099
Когда в твоем коде от С++ только std::cout.

И да, лабы идут нахуй
Аноним 10/12/20 Чтв 02:41:12 #411 №1877103 
>>1877099
Декомпозируй задачу. и иди нахуй
как заполучить интеловский компилер? Аноним 10/12/20 Чтв 03:47:24 #412 №1877113 
Intel.png
C++.png
Вавян, они там в интеле совсем охуели, суют мне какую-то oneAPI раздутую ебату. Нет, блять, я не хочу выкачивать 14GB deb пакетов с какой-то шелупонью. подскажи, как обмазаться по минималочке?
Аноним 10/12/20 Чтв 09:19:01 #413 №1877152 
Что дешевле, хранить указатель на функцию который инициализируется в начале работы программы и потом вызывать функцию по указателю или же каждый раз проверять булевый флаг и вызывать необходимую функцию по условию? Например есть функция memcpy и хочется на процессорах поддерживающих AVX юзать версию memcpy с AVX, иначе юзать обычную. Какой способ более оптимизированный?
Аноним 10/12/20 Чтв 09:21:04 #414 №1877154 
>>1877152
2
Аноним 10/12/20 Чтв 09:27:30 #415 №1877155 
>>1877154
Хм, а чем это обусловлено, ведь и там и там одна операция чтения памяти. Надежда на то, что компилятор заинлайнет обе функции в одно и не придется тратить ресурсы на вызов другой функции? Кстати, а если условие не одно, а несколько (AVX -> SSE -> default) то через свитч тоже быстрее будет?
Аноним 10/12/20 Чтв 09:48:21 #416 №1877157 
>>1877152

Дешевле ориентироваться на актуальное железо и не ебать голову и посылать нахуй любителей калькуляторов 10-летней давности на 775 сокете.
Аноним 10/12/20 Чтв 10:25:59 #417 №1877161 
>>1877152
Дешевле всего перестать трахать голову и написать как проще, а необходимость оптимизаций проверять бенчмарками и профилированием.
Аноним 10/12/20 Чтв 10:41:40 #418 №1877174 
>>1877157
Вот сейчас обидно было
>>1877152
Сделай подгрузку разных дллок/оверлеев.
Аноним 10/12/20 Чтв 10:44:22 #419 №1877175 
>>1877155
>Надежда на то, что компилятор заинлайнет
Дя. Ты ж на плюсах пишешь, у тебя 99% кода должно быть в h.
Если нет, то 1 может быть быстрее.
Аноним 10/12/20 Чтв 11:26:39 #420 №1877189 
>>1877152
У Агнера Фога в https://www.agner.org/optimize/optimizing_cpp.pdf секция 13.5 про это. Но вообще, если ты используешь SIMD, то время исполнения функции у тебя в любом случае будет намного больше времени на выбор нужной имплементации, так что я бы не заморачивался.
Аноним 10/12/20 Чтв 11:58:12 #421 №1877207 
>>1877081
CSG это "конструкторы" форм из более простых форм путем сложений/вычитаний/пересечений
Но в твоей либе четко написано что она меш из них не конструирует, а пользуется приемами типа z-buffer
Так что тебе надо искать именно либу которая работает с мешами, или хотя бы делает их из CSG.
Аноним 10/12/20 Чтв 15:23:27 #422 №1877326 
>>1877161

Можно к этому моменту завафлить архитектуру или структуры данных.

Вообще, современный оптимизон он в первую очередь про ублажение кеша и про эффективные структуры данных, чем про эффективные датадробительные инструкции.
Аноним 10/12/20 Чтв 15:26:11 #423 №1877328 
>>1877152
В результате получается примерно одно и то же.
Я недавно делал это.
Аноним 10/12/20 Чтв 15:40:05 #424 №1877343 
image.png
Это исходный код на ассемблере для аполона. По вашим оценкам, как бы выглядела эта стопка, будь код написан на c++?
Аноним 10/12/20 Чтв 15:41:38 #425 №1877345 
>>1877343
Также примерно
Аноним 10/12/20 Чтв 15:44:57 #426 №1877347 
>>1877345
Ладно.
Аноним 10/12/20 Чтв 15:46:13 #427 №1877348 
>>1877343
какая же боль
Аноним 10/12/20 Чтв 15:47:23 #428 №1877350 
>>1877343
меньше раз в 10-20. Мб 30
Аноним 10/12/20 Чтв 15:49:04 #429 №1877354 
>>1877345
Да, добавится __asm { }
Аноним 10/12/20 Чтв 16:06:06 #430 №1877369 
image.png
>>1877350
Примерно так значит. Прикольно)
Аноним 10/12/20 Чтв 16:09:38 #431 №1877373 
>>1877369
ну чето хуй знает, теперь я думаю что еще сильно меньше. Зависит шрифта конеш
Аноним 10/12/20 Чтв 16:44:15 #432 №1877404 
>>1877343
Насколько помню, там очень мало памяти было, поэтому на ассемблере был написан небольшой интерпретатор, а остальное на некотором DSL. На крестах вряд ли это было бы выполнимо вообще.
Аноним 10/12/20 Чтв 17:10:16 #433 №1877419 
>>1877207
Попенсорс обычно для csg вычислений использует CGAL.
Аноним 10/12/20 Чтв 18:33:50 #434 №1877498 
>>1876940
Я понял это >>1876711 сам для себя расписал.
А вышло 2-д потому-что еще не закончил, нужно будет сделать чтоб можно было вращать
Аноним 10/12/20 Чтв 19:08:30 #435 №1877525 
1526717367614.png
1551245739296.png
>>1877343
На с++ вышло бы больше.
Аноним 10/12/20 Чтв 20:51:26 #436 №1877593 
>>1877525
>маленький пример кода и ошибка из грёбаной Boost.Hana
Я тоже могу несравнимые вещи показать рядом.
Аноним 10/12/20 Чтв 20:53:30 #437 №1877597 
>>1877593
Ну-ка.
Аноним 11/12/20 Птн 15:34:18 #438 №1878124 
Безымянный.png
Сап, опять ньюфаг в треде, мне тут подумалось, что я сделал хуйню в том посте >>1876650
Я нарисовал цилиндр, но там походу должен был быть вытянутый шестиугольник который я бы уже сделал в 3-д.
Так вот, можно ли сделать из цилиндра вращающую модель в консоли? Или там только из шестиугольника можно? В цилиндре 10 точек насчитал (несколько не посчитал), а если я бы сделал шестиугольник там бы было в 20+ точек.
Аноним 11/12/20 Птн 15:44:31 #439 №1878127 
А в MSVC всегда такие хуёвые оптимизации были, или я что-то не так делаю? Мои laba1.cpp практически всегда были в пару раз медленнее, чем если бы я собирал под linux + clang.
Аноним 11/12/20 Птн 15:55:14 #440 №1878133 
>>1878127
По копиляции или выполнению? Делал замеры внутри программы? Сравнивал релизную версию с релизной?
Аноним 11/12/20 Птн 16:18:06 #441 №1878147 
>>1878133
По выполнению, одинаковый исходный код, замеры внутри программы, у MSVC /O2 /Ob2 /Oi /Ot /GT /GL, у Clang -O3 -march=native -flto=thin.
Аноним 11/12/20 Птн 16:43:58 #442 №1878169 
Студия или линукс? Студия выглядит проще и удобнее ибо всё из коробки.
Аноним 11/12/20 Птн 16:45:02 #443 №1878171 
>>1878169
Учиться С++ - студия. Пердолиться - Линукс
Аноним 11/12/20 Птн 16:46:12 #444 №1878172 
Вопрос такой не очень честный. Как обойти плагиат на тестирующей системе по программированию?
Аноним 11/12/20 Птн 16:47:51 #445 №1878174 
>>1878172
Попробовать понять алгоритм и написать самому с нуля.
Аноним 11/12/20 Птн 16:48:26 #446 №1878176 
>>1878171
Ну а есть вероятность что я пойду на работку устраиваться и меня заставят прямо в линухе возиться? Линукс в целом знаю, но пердолиться не охото.
Аноним 11/12/20 Птн 16:48:52 #447 №1878178 
>>1878176
Как выучишь С++ - так уже будешь задаваться этими вопросами.
Аноним 11/12/20 Птн 16:51:22 #448 №1878183 
>>1878178
Да это не проблема, я почти Бьярна дочитал. Да и нужно заранее и постепенно инструменты учить в случае чего.
Аноним 11/12/20 Птн 16:54:02 #449 №1878189 
>>1878147
> -march=native
https://docs.microsoft.com/ru-ru/cpp/build/reference/arch-minimum-cpu-architecture?view=msvc-160
Аноним 11/12/20 Птн 16:54:39 #450 №1878191 
>>1878183
Пчел, между дочитал бьярна и выучил С++ несколько сотен тысяч строк кода и еще десяток книг минимум
Аноним 11/12/20 Птн 16:59:34 #451 №1878194 
>>1878191
Справлюсь за полгода.
Аноним 11/12/20 Птн 17:01:26 #452 №1878197 
>>1878194
я тож так думал, дохуя всего прочитал, писал пет проекты, потом взяли на работу джуном и резво ПУК СРЕНЬК.
Аноним 11/12/20 Птн 17:01:30 #453 №1878198 
>>1878189
Это тоже стоит, да. И что? Вряд ли это обеспечит такой прирост, только если вся программа не состоит из легко векторизуемых циклов.
Аноним 11/12/20 Птн 17:03:49 #454 №1878201 
>>1878194
Шутка про то, что невозможно выучить C++
Аноним 11/12/20 Птн 17:05:32 #455 №1878202 
>>1878127
Без кода и бенчмарков ты хуй простой
Аноним 11/12/20 Птн 17:08:16 #456 №1878204 
>>1878197
>>1878201
Сказки это всё. Меня тоже пугали ООП, темплейтами, указателями а я всё налету схватываю ну почти без загвоздок. Ничего, сейчас за полгода неспешно наверну stl, opengl, qt, мультитред, ml и заведу трактор а там через пару лет и собственный стартап.
Аноним 11/12/20 Птн 17:10:07 #457 №1878206 
>>1878204
Ну-ну.
Аноним 11/12/20 Птн 17:10:33 #458 №1878208 
>>1878204
Ох дружок, у тебя эффект Даннинга-Крюгера просто зашкаливает. Мне это особенно смешно, потому-что был таким же. Все изи схватывал, понимал, а потом на первый собес пришел и ответил еле еле на пару вопросов из 20. Настолько плохо, что мне прям на собесе сказали, какие книги почитать еще, даже не "мы вам перезвоним".
Аноним 11/12/20 Птн 17:10:36 #459 №1878209 
>>1878201
Да вполне возможно.
Да, даже спустя кучу времён ты будешь узнавать какие-то мелочи или нюансы и говорить "вау, вот это ж нихуя себе", хотя, казалось бы, уже очень много знал и так. Но так вообще со всеми вещами в жизни, в любой отрасли и профессии. По крайней мере если ты реально стараешься углубляться и развиваться.

Я вот имел уже лет 5 опыта на плюсах прежде чем узнал, что const в namespace scope implicitly static, а не extern, в отличие от С. И потом каких-то таких мелочей с годами было ещё много. И будет ещё.
Аноним 11/12/20 Птн 17:16:18 #460 №1878211 
>>1878208
Всё у меня ок. Максимум раздутое чсв из-за того что я за 2 месяца вката уже успел 2 друзьям недопрогерам помочь писать диплом с 0.
Аноним 11/12/20 Птн 17:20:14 #461 №1878213 
>>1878204
Покажи как ты складываешь два int, скажем a и b
Аноним 11/12/20 Птн 17:23:38 #462 №1878216 
>>1878213
inb4: UB
Аноним 11/12/20 Птн 17:27:57 #463 №1878219 
>>1878213
Ну и в чём тут подвох?
Аноним 11/12/20 Птн 17:30:41 #464 №1878221 
>>1878219
Да сейчас скажет, что анус переполнился.
Аноним 11/12/20 Птн 17:31:10 #465 №1878222 
>>1878221
Ну не стек же.
Аноним 11/12/20 Птн 17:57:08 #466 №1878232 
Сап, как осуществить вращения эллипса в пространстве?
Аноним 11/12/20 Птн 18:03:16 #467 №1878234 
Как бороться с предупреждением о касте ll к ull и обратно?
Аноним 11/12/20 Птн 18:06:57 #468 №1878236 
>>1878234
static_cast lol
Аноним 11/12/20 Птн 18:08:56 #469 №1878237 
>>1878234
(ull)()

дед
Аноним 11/12/20 Птн 18:24:09 #470 №1878243 
>>1878219
Ты код показывай.
Аноним 11/12/20 Птн 18:36:15 #471 №1878248 
>>1878243
print(a+b)
Аноним 11/12/20 Птн 18:45:17 #472 №1878259 
>>1878243
Ты мне сразу рассказывай в чём подвох, нечего время терять.
Аноним 11/12/20 Птн 18:46:17 #473 №1878260 
>>1878237
Будут варнинги про Олд стайл каст
Аноним 11/12/20 Птн 18:47:19 #474 №1878262 
>>1878260
Нет
Аноним 11/12/20 Птн 18:47:49 #475 №1878263 
>>1878260
>>1878262
А, я жопой читаю.
Но всё равно не будет, лол
Аноним 11/12/20 Птн 18:51:53 #476 №1878272 
>>1878208
>какие книги почитать еще
Какие такие книги?
Аноним 11/12/20 Птн 18:57:15 #477 №1878279 
>>1878272
Ну как минимум - Майерс, Саттер
Аноним 11/12/20 Птн 19:06:04 #478 №1878288 
Салют, пиздюки. Посоветуйте, как лучше всего организовать следующее. Вот я хочу чтоб логи раз в сутки были обновлены. То есть идет переименование файла debug.log в currentdate_debug.log. И вообще можно чтоб эту хуйню в tar.gz пожать.

Если файла нет, то софтина должна создать новый. Ну вы поняли.

Хочу написать скриптик который это делает. Какие подводные? Я же не знаю в какое время приложуха(на сиплюсплюсе) хуярит логи, открывает/закрывает файл. Хочется и чтоб логи не проебались.

Так вот, вопрос не столько по C++ а по потокам файловым. Можно ли в файл в который периодически пишут взять и двинуть командой mv?
Аноним 11/12/20 Птн 19:07:55 #479 №1878289 
>>1878272
Ну как минимум - Маркс, Сартр
Аноним 11/12/20 Птн 19:07:58 #480 №1878290 
>>1878288
Используй syslog\ETL логирование нативное платформенное. И на платформе прям конфигурируй логротейшены и прочее.
Аноним 11/12/20 Птн 19:10:38 #481 №1878293 
>>1878290
>syslog

Я ж не сеньор помидор. Есть софтина которая пишет в файлик логи. Чё я её переписывать стану? Я хочу скрипт для себя сделать чтоб не было 2gb логов.

Или типа будет лажа если сделать mv debug.log currentdate_debug.log?
Аноним 11/12/20 Птн 19:12:18 #482 №1878296 
>>1878293
Окей, тогда просто подключи spdlog, и он сам за тебя все сделает.
Аноним 11/12/20 Птн 19:17:15 #483 №1878302 
>>1878176
Тащемта из-под студии можно подключиться к wsl2
Аноним 11/12/20 Птн 19:33:57 #484 №1878314 
>>1878263
Значит у тебя слишком низкий уровень варнингов.
Аноним 11/12/20 Птн 19:40:50 #485 №1878323 
>>1878124
По идее проекция круга на плоскость (то бишь камеру) это в общем случае эллипс. Если умеешь рисовать эллипсы, значит по идее можешь рисовать вращающийся цилиндр если применить немного линала.
Аноним 11/12/20 Птн 19:50:58 #486 №1878329 
>>1878191
Нахуя вам блять эти книги, мы в 80 живем без интернета чтоли? Делаешь проектик, натыкаешся на что-то непонятное, гуглишь, читаешь какую-нибудь статейку и все. Пиздец, щас бы сидеть 500 страниц наяривать какой-то хуйни без практического применения.
Аноним 11/12/20 Птн 19:54:25 #487 №1878331 
>>1878329
Потому-что без этих книг ты даже не понимаешь, что творишь хуйню
Аноним 11/12/20 Птн 20:02:49 #488 №1878340 
>>1878323
То бишь соединить каждую точку по x, y, z? Я не понимаю как это должно выглядеть.
Аноним 11/12/20 Птн 20:37:27 #489 №1878366 
>>1878331
Жвачую, а потом хуярят костыли, там где есть проверенные методы
Аноним 11/12/20 Птн 21:54:37 #490 №1878430 
>>1878314
Очень высокий, плюс treat warning as errors
Аноним 11/12/20 Птн 23:09:39 #491 №1878472 
Почему плюсотред один из самых живых? Там много плюсоебов с седыми мудями или студентиков с laba1.cpp?
Аноним 11/12/20 Птн 23:14:32 #492 №1878476 
>>1876650
https://www.scratchapixel.com/lessons/3d-basic-rendering/perspective-and-orthographic-projection-matrix/building-basic-perspective-projection-matrix

Гайд по преобразованию 3D-векторов в положение точек на экране.
Если у тебя консоль, то сделай таблицу буква : цвет, то есть . это очень неяркий, а B довольно яркий.
Если линии нужны антиалиазинговые, то погугли разные алгоритмы для отрисовки линий.
Аноним 11/12/20 Птн 23:31:28 #493 №1878486 
>>1878472
Я сеньор 25 лет
Аноним 12/12/20 Суб 01:45:53 #494 №1878563 
>>1878232
Эллипсы вращают в /gd.
Аноним 12/12/20 Суб 01:47:31 #495 №1878564 
>>1878234
#pragma warning(disable:errno)
Аноним 12/12/20 Суб 01:56:55 #496 №1878567 
>>1878293
В линуксе есть встроенная хуйня для ротации логов. Вроде logrotate называется.
Аноним 12/12/20 Суб 02:01:10 #497 №1878568 
>>1878563
Они там только хуи в своих ртах вращают.
Аноним 12/12/20 Суб 02:03:08 #498 №1878571 
download (1).jpeg
>>1878568
В твоих. Сначала научись инты складывать.
Аноним 12/12/20 Суб 02:05:02 #499 №1878572 
>>1878571
В столбик?
Аноним 12/12/20 Суб 09:27:44 #500 №1878624 
image.jpg
>>1878568
>Они там только хуи в своих ртах вращают.
Аноним 12/12/20 Суб 21:15:12 #501 №1878929 
Как к булу применить поразрядное отрицание и вывести?
Аноним 12/12/20 Суб 21:23:00 #502 №1878933 
>>1878929
bool l {false};
for (int i = 0; i <= 7; i++)
{
std::vreti(l);
}
Аноним 12/12/20 Суб 21:54:47 #503 №1878950 
>>1878929
> к булу применить поразрядное отрицание
Так и до нарушения strict aliasing rules недалеко.
Аноним 12/12/20 Суб 21:55:31 #504 №1878951 
>>1878929
>булу
>по разрядное
Значение знаешь?
Аноним 12/12/20 Суб 23:23:09 #505 №1879020 
Как скомпилировать libz из исходников? Имею ввиду не либу, а просто включив её прямо в исполняемый файл?
sageАноним 12/12/20 Суб 23:37:24 #506 №1879027 
>>1879020
А теперь ещё раз, включив мозг.
Аноним 13/12/20 Вск 00:39:31 #507 №1879047 
c-code.PNG
ida-code.png
stack.png
>>1871183 (OP)
Сап байтоебач.
Есть функция на Си и ее интерпретация на асме, пик тотали рилейтед.
Казалось бы, компилятор должен выделить 16 байт под буфер и 4 байта под флаг, и тогда стек должен выглядеть как на рисунке 1, но нет, он выглядит как на рисунке 2. А именно -- флаг, 12 байт непонятной хуйни, 16 байт буфера, 8 байт указатель (типа в регистре он их оставлять не хотел) и еще 8 байт выделенных хуй знает зачем. Больше всего меня беспокоят 12 байт между флагом и буфером, т.к. от этого зависит, как будет работать эксплойт через переполнение буфера.
Через компилер эксплорер код прогнал, гцц и клэнг выдают примерно то же самое. Пока что нагуглить смог только canary value, но не уверен, что это оно.
Аноним 13/12/20 Вск 01:30:41 #508 №1879067 
>>1879047
Си-тред на 10 тредов ниже.
Аноним 13/12/20 Вск 01:41:32 #509 №1879073 
fzw24gg13gv01.png
>>1879047
> и ее интерпретация на асме
Аноним 13/12/20 Вск 01:52:29 #510 №1879077 
>>1879047
-O2 не забыл?
Аноним 13/12/20 Вск 02:25:10 #511 №1879087 
Два вопроса:
Список инициализации для конструктора уже был в самом первом стандарте, т.е. C++98? Не могу найти.
Начиная с C++11 появились non-static data initializer, а именно int a = 1; в структурах, классах. Как они реализованы? Внутри себя они представляют использование неявного (создаваемого компилятором) списка инициализации?
Аноним 13/12/20 Вск 02:34:01 #512 №1879091 
>>1879087
1. Появился в С++11
2. В стандарте не сказано
Аноним 13/12/20 Вск 02:51:00 #513 №1879092 
image.png
>>1879091
>1. Появился в С++11
Тогда почему успешно компилится на C++98?
Аноним 13/12/20 Вск 03:03:49 #514 №1879096 
>>1879092
попробуй в хедере это сделодь
Аноним 13/12/20 Вск 03:04:24 #515 №1879097 
>>1879096
а, погоди, что я несу вообще.
Аноним 13/12/20 Вск 03:24:15 #516 №1879100 
>>1879092
Как таковые, списки инициализации существуют давно. В C++11 появился класс с таким же названием initializer_list.
https://en.cppreference.com/w/cpp/language/constructor
> Not to be confused with std::initializer_list
Аноним 13/12/20 Вск 03:54:57 #517 №1879111 
>>1879092
Ты путаешь вот эти два вида инициализации.

struct S {
int a = 1; // since c++11
S() : a(2) {}; // since nobody can remember
};

Поэтому тебе такой вопросик: какое значение будет иметь a?
Аноним 13/12/20 Вск 04:08:28 #518 №1879116 
>>1879111
у конструктора приоритет
Аноним 13/12/20 Вск 04:19:43 #519 №1879120 
>>1879111
Не, я ничего не путал, формулировка вопроса была корректная. Про
>int a = 1; // since c++11
я знаю, это называется in-class initialization.
>Поэтому тебе такой вопросик: какое значение будет иметь a?
a будет иметь значение 2, т.к. список инициализации имеет приоритет над in-class initialization.
На мой вопрос уже ответили
>>1879100
Аноним 13/12/20 Вск 05:02:03 #520 №1879127 
image.png
Сразу закину следующий вопрос.
Как называется эта проблема на пикриле (как ее правильно гуглить), и как она решается?
Это же пиздец. Почему вообще разрешается создавать одноименные классам функции? Сразу на ум приходят ситуации, когда ты в своем большом проекте сделал тысячу классов, потом подключил стороннюю либу, а там определены функции с такими же именами. И что, придется переписывать исходники проекта/либы? Очевидно, что должно быть какое-то нормальное решение
Аноним 13/12/20 Вск 05:28:11 #521 №1879131 
>>1879127
Так а в чём пиздец то? Типичный проект состоит из собственного кода и thirdparty, поэтому от коллизии имён ты никуда не денешься. Обычно код заворачивается в namespace.

namespace func {
void A(){}
}
struct A {};

A obj;
func::A();

Аноним 13/12/20 Вск 06:07:33 #522 №1879138 
>>1879131
Про неймспейсы я сразу подумал, но тут был вопрос, скорее, касательно самого синтаксиса. Просто я к тому, что в плюсах есть много неинтуитивных и не совсем логичных вещей. Например, чтобы вызвать стандартный конструктор класса Foo при определении переменной, то нужно писать Foo a; А если я хочу, например, в функцию f(Foo q, ...) в качестве аргумента передать локально созданный экземпляр класса Foo, инициализированный конструктором по умолчанию, то при вызове надо писать f(Foo(), ...);. Можно же было реализовать это в языке по-нормальному, чтобы было интуитивно, т.е. f(Foo, ...); без круглых скобок. Короче, бугурт
Аноним 13/12/20 Вск 07:00:18 #523 №1879147 
>>1879138
А как тебе такое?

struct A {};
void f(A obj) {};
f({});
Аноним 13/12/20 Вск 08:55:59 #524 №1879160 
>>1879073

std::cout << "Nahui idi";
Аноним 13/12/20 Вск 09:55:30 #525 №1879173 
>>1879073
Компилятор интерпретирует один язык с точки зрения другого, скажи, что это не так, зануда.
Аноним 13/12/20 Вск 12:00:15 #526 №1879206 
>>1879127
А как насчёт
auto a = A{};
Аноним 13/12/20 Вск 12:56:39 #527 №1879233 
>>1878204
Зачем тебе opengl, когда есть directX?
Аноним 13/12/20 Вск 13:22:46 #528 №1879247 
>>1879127
>Как называется эта проблема
Most Vexing Parse (самый досадный итог парсинга)
Аноним 13/12/20 Вск 16:46:14 #529 №1879361 
>>1879173
Нет
Аноним 13/12/20 Вск 17:42:41 #530 №1879395 
>>1879361
Так че ты пастой с википедии не высрался, а просто нет, скучно с тобой.
Аноним 13/12/20 Вск 18:07:21 #531 №1879414 
Как устроиться впервые если я знаю stl, qt, линукс на уровне админа ну и sql?
Аноним 13/12/20 Вск 18:11:23 #532 №1879418 
>>1879414
Смотря кем. Если дворником, то иди в жек, там всем похуй на твои знания. А если кодером, то попробуй выучить ЯП какой-нибудь.
Аноним 13/12/20 Вск 18:12:57 #533 №1879419 
>>1879418
Смешно. А теперь напряги извилины и на основании названия треда в котором я запостил свой вопрос сделай вывод куда я хочу устроиться.
Аноним 13/12/20 Вск 18:24:17 #534 №1879442 
>>1879233
Что же выбрать: мультиплатформенное решение по производительности стоящее на 2 месте или костыльное низкопроизводительное говно привязанное к 1 говноплатформе?
Аноним 13/12/20 Вск 18:26:38 #535 №1879445 
>>1879442
Не надо жирничу отвечать, просто игнорируй.
Аноним 13/12/20 Вск 18:29:13 #536 №1879448 
>>1879414
Ты что-то написал? А что? А что готов писать?
Аноним 13/12/20 Вск 18:42:14 #537 №1879456 
>>1879448
>Ты что-то написал? А что?
Простенькую гуишную дб, плеер для iptv, минималистическую копию спотифая, компилятор без оптимизаций в принципе, просто копию tcpdump. Ну и по мелочи для собственных целей.
>А что готов писать?
За что заплатят хорошо то и напишу.
Аноним 13/12/20 Вск 19:03:09 #538 №1879463 
>>1879442
Ты сейчас про линукс, на котором сидят 2,5 шиза и про мак ос, которым для работы!! надо? Шинда сейчас монополист на рынке всё лучшее на ней, а более худшего не нужно, понимаешь?
Аноним 13/12/20 Вск 19:04:44 #539 №1879464 
>>1879442
>Говноплатформа
>99% игр на DirectX
Штош
Аноним 13/12/20 Вск 19:10:24 #540 №1879466 
>>1879464
Но тем не менее Вулкан показывает лучшую производительность, чем DX12. Плюс Вулкан банально приятнее.
А вот OpenGL действительно нахуй не нужен. Разве что для мобилок ES дрочить. Ну или для поддержки древнего железа как резерв.
Аноним 13/12/20 Вск 19:11:32 #541 №1879467 
>>1879466
Что ДХ12, что Вулкан адский ад, если твоя цель реально сделать игру, а не нарисовать треугольник за неделю.
Аноним 13/12/20 Вск 19:17:56 #542 №1879474 
>>1879467
Ну если не хочешь углубляться, то есть отличные фреймворки с абстракциями над Вулканом/DX11/DX12. Смысла всё так же нет в OpenGL в 2021. Лучше bgfx какой-нибудь использовать, чем говно мамонта ковырять просто потому что оно легче.
Аноним 13/12/20 Вск 19:29:49 #543 №1879480 
>>1879464
Ты троллишь или правда не в курсе что огромную долю современного игроговна можно запустить в опенгл моде?
Аноним 13/12/20 Вск 19:50:45 #544 №1879499 
>>1879147
> f({});
Что это за пиздец? Что означает такой синтаксис, а именно пустые фигурные скобки в качестве аргумента?
Аноним 13/12/20 Вск 20:00:54 #545 №1879509 
>>1879499
> Что означает такой синтаксис
Что передаём пустой объект.
Аноним 13/12/20 Вск 20:21:10 #546 №1879547 
hellotriangle.png
Напоминаю

>>1879474
Аноним 13/12/20 Вск 20:31:44 #547 №1879556 
>>1879480
Сильно меньше, чем ты думаешь. И этот ОПЕНГЛ никто не тестит, и не гарантирует, что оно работает
Аноним 13/12/20 Вск 20:38:51 #548 №1879559 
>>1879464
Пчел, давно все игры на мобилах. Андроид, Айфон, может слышал?
Аноним 13/12/20 Вск 20:40:25 #549 №1879561 
>>1879419
С твоими знаниями только в НИИ.
Аноним 13/12/20 Вск 20:51:30 #550 №1879564 
>>1879499
То же самое, что и f(Foo()). Воспринимай это как список инициализации для конструктора аргумента функции.

struct Foo {
Foo(int a, float b) {}
};
f( {2, 1.0f} );
Аноним 13/12/20 Вск 22:06:14 #551 №1879623 
>>1879480
Но зачем, если оно прибито к вин-параше?
Аноним 13/12/20 Вск 23:03:06 #552 №1879702 
>>1879623
Для доисторического говна без DX11. Хотя сейчас любую игру можно в Вулкан обернуть через dxvk.

Пиздец мочух косоглазый, удалил пост с ответами, а пустой оставил.
Аноним 13/12/20 Вск 23:15:50 #553 №1879714 
Стоит ли всегда юзать shared_ptr даже в случае если нужен будет только 1 указатель ну просто чтобы было?
Аноним 13/12/20 Вск 23:16:24 #554 №1879716 
>>1879714
99% всех твоих поинтеров должны быть unique_ptr. Шаред поинтеры нужны в очень редких случаях.
Аноним 13/12/20 Вск 23:18:10 #555 №1879720 
>>1879716
>Шаред поинтеры нужны в очень редких случаях.
Например?
Аноним 13/12/20 Вск 23:21:35 #556 №1879726 
>>1879720
Какое-то странное многопоточное шарево, или когда у тебя у тебя адовое легаси без четко очерченного лайфтайма обьектов.

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

Т.е. владение и лайфтайм были понятны.
Аноним 13/12/20 Вск 23:23:35 #557 №1879732 
>>1879726
Ок, спасибо.
Аноним 14/12/20 Пнд 03:08:37 #558 №1879958 
>>1879714
Тупой вопрос.
Аноним 14/12/20 Пнд 03:09:05 #559 №1879960 
>>1879714
shared_ptr значительно дороже
Аноним 14/12/20 Пнд 03:52:40 #560 №1879971 
>>1879047
Отруби рантайм чеки и скомпиль в Release конфигурации

О результатах отчитаешься
Аноним 14/12/20 Пнд 06:44:48 #561 №1879995 
Анончики, ещё одна проблема возникла при расчете CRC32, вообщем ситуация следующая
>>есть микроконтроллер российского гавнопроизводства, я написал прошивку для него, у этой прошивки с помощью обычных онлайн калькуляторов можно посмотреть контрольную сумму, то есть там используется полином crc32 ieee, моя задача прочитать память МК, в которую и была записана прошивка, это будет как раз массив uint32_t massiv[size]. Далее мне нужно вот к этому массиву применить расчет crc с использованием полинома crc32 ieee, для того чтобы я мог сравнить то что должно было быть записано в МК, с тем что там записано по факту.
Так вот, все работает, crc32 рассчитывается, но возникла проблема, как оказалось онлайн калькуляторы не используют чисто полином ieee, там какие то мутанты, поэтому единственный вариант это смотреть значение crc прям во время работы программы.
Ещё раз по порядку, я запускаю программу, там есть переменная которая хранит рассчитанную crc, затем я должен добавить в эту программу define с текущим значением crc, который я только что увидел, это и есть как бы эталон, но вот проблема, как только я впишу туда значение эталона crc, после перезапуска программы crc естественно изменится, так как новая строчка кода появилась.
То есть: пусть значение crc32 без добавления строчки с эталоном это Х, У значение crc32 с добавленным значением эталона. Я врубаю прогу, получаю Х, это значение Х я вписываю в эталон и при запуске значение Х меняется на некий У. И в программе я сравниваю Х с У и получаю нихуя, потому что У я не могу знать заранее, как и Х, я их узнаю только после запуска.
Вопрос: есть ли способ как-то заранее учесть в программе это, может есть какие-то алгоритмы?
Аноним 14/12/20 Пнд 07:51:36 #562 №1880010 
>>1879958
Ало, я этот пост написал спустя час от прочтения темы.
Аноним 14/12/20 Пнд 08:41:49 #563 №1880025 
Так чё кто по итогу победил? Vulcan direct или прости господе opengl
Аноним 14/12/20 Пнд 08:48:03 #564 №1880027 
В общем, такая проблема.
Есть абстрактный класс А, содержащий описание виртуальных функций.
Есть наследник B, реализующий эти функции конкретным кодом. По условию задачи, реализация может быть разной, в этом и смысл.
Есть некий главный класс, который должен работать с реализацией типа абстрактного класса А, но должен быть универсальным по отношению к конкретной реализации.

Проблема в том, что в с++ я не могу объявить поле класса типом абстрактного класса А, а потом присвоить этому полю экземпляр конкретного типа B. И по другому никак, т.к. такая архитектура - требование задачи.

Как, собственно, решить этот вопрос, чтобы это было красиво и true way?
Аноним 14/12/20 Пнд 09:27:25 #565 №1880037 
>>1880025
ANGLE
Аноним 14/12/20 Пнд 09:33:23 #566 №1880038 
>>1880037
Нет
Аноним 14/12/20 Пнд 09:49:37 #567 №1880042 
>>1880025
Пока что лидирует Metal.
Аноним 14/12/20 Пнд 10:07:07 #568 №1880050 
>>1880027
Придумал такое решение. В главном классе поле объявляется как указатель на абстрактный класс, а в конструкторе этому указателю присваивается адрес конкретного класса-наследника с реализацией. Вроде работает, но это достаточно true way?
Аноним 14/12/20 Пнд 11:20:35 #569 №1880089 
>>1879702
>dxvk
Хм, если это так просто то почему все игры не портируют таким образом?
Аноним 14/12/20 Пнд 11:32:26 #570 №1880093 
>>1880089
Потому что снижает производительность в большинстве случаев, только на DX9 можно получить немного фпс, это же обётка поверх DX. Его сейчас и так под всякие решейды везде в некроиграх подкладывают, для совместимости и нормального захвата буфера глубины. Правда там ещё пердолинг присутствует, т.к. это всё пилилось под Линукс для вайнопердоль, а Винда уже вторична.
Аноним 14/12/20 Пнд 11:51:36 #571 №1880108 
Как часто вы встречаетесь с object slicing? Вообще не припомню чтобы в треде хоть раз упоминалось.
Аноним 14/12/20 Пнд 11:58:26 #572 №1880115 
>>1880108
Когда джуны ревьювят код джунов. Пару раз уже натыкался на такое пиздец
Аноним 14/12/20 Пнд 13:27:31 #573 №1880178 
>>1880108
Вот серьёзно, что должно произойти чтобы сабж возник в коде?
мимо джун
Аноним 14/12/20 Пнд 14:27:28 #574 №1880210 
>>1880108
Никогда
Аноним 14/12/20 Пнд 15:53:15 #575 №1880268 
Почему clion нихуя не подсвечивает в шаблонных классах?
Аноним 14/12/20 Пнд 15:54:16 #576 №1880270 
>>1880268
Колбаска
Сосиска
Аноним 14/12/20 Пнд 16:18:20 #577 №1880292 
>>1880268
Этот функционал в костыльном варианте только в студии есть
Аноним 14/12/20 Пнд 16:32:28 #578 №1880303 
изображение.png
изображение.png
Помохите
> undefined reference to `deq<int>::deq(int, int)'
Аноним 14/12/20 Пнд 16:33:24 #579 №1880304 
>>1880303
Имплементация то твоей залупы где, гений?
Аноним 14/12/20 Пнд 16:34:39 #580 №1880309 
>>1880304
Что это?
Аноним 14/12/20 Пнд 16:36:08 #581 №1880310 
>>1880303
Коньструктор определи.
Аноним 14/12/20 Пнд 16:37:44 #582 №1880311 
>>1880310
Так я определил
Аноним 14/12/20 Пнд 16:37:55 #583 №1880313 
>>1880309
то, где сам код, а не просто сигнатуры методов
Аноним 14/12/20 Пнд 16:38:17 #584 №1880315 
>>1880311
ты ОБЬЯВИЛ, а не ОПРЕДЕЛИЛ
Аноним 14/12/20 Пнд 16:39:31 #585 №1880317 
изображение.png
>>1880315
Всё я определил
Аноним 14/12/20 Пнд 16:40:08 #586 №1880318 
>>1880317
а файл этот в проект подключил?
Аноним 14/12/20 Пнд 16:41:41 #587 №1880320 
изображение.png
>>1880318
Я вообще в автоматическом режиме классы создавал, иде вроде всё сделало правильно. Да и раньше проблем не было
Аноним 14/12/20 Пнд 16:42:18 #588 №1880322 
>>1880317
Темплейты в хедер.
Аноним 14/12/20 Пнд 16:43:31 #589 №1880325 
>>1880322
Так всё работает
Аноним 14/12/20 Пнд 16:44:22 #590 №1880326 
>>1880325
>Так всё работает
>undefined reference to `deq<int>::deq(int, int)'
Ты тупой?
Аноним 14/12/20 Пнд 16:46:33 #591 №1880328 
изображение.png
>>1880326
Что сказать то хотел? Если сделать как пик ошибок нет, если определения функций вынести в cpp то ошибка
Аноним 14/12/20 Пнд 16:47:22 #592 №1880330 
>>1880328
https://stackoverflow.com/questions/495021/why-can-templates-only-be-implemented-in-the-header-file
Аноним 14/12/20 Пнд 16:51:08 #593 №1880333 
>>1880328
Это и хотел сказать.
https://isocpp.org/wiki/faq/templates#templates-defn-vs-decl
Аноним 14/12/20 Пнд 17:38:54 #594 №1880363 
>>1879971
Какой релиз, это гцц под линух.
Я напишу в лабе просто что это паддинг для алигнмента, мне в C треде уже помогли.
Аноним 14/12/20 Пнд 17:55:37 #595 №1880379 
Есть два unique ptr, первый я ресетнул, теперь надо как то освободить второй с передачей его данных первому. Как это сделать?
Аноним 14/12/20 Пнд 17:59:49 #596 №1880381 
>>1880379
Сделал так, нормально?
> vec = std::make_unique<std::vector<int>>(*(temp.release()));
Аноним 14/12/20 Пнд 18:00:51 #597 №1880383 
>>1880379
ptr1 = std::move(ptr2)
Аноним 14/12/20 Пнд 18:08:36 #598 №1880395 
>>1880383
Спасибо
Аноним 14/12/20 Пнд 18:11:39 #599 №1880396 
>>1880383
>>1880395
При этом первый можно не ресетать отдельно.
Аноним 14/12/20 Пнд 18:40:09 #600 №1880429 
>>1880363
>Какой релиз, это гцц под линух
-O1 или -O2. Хотя бы -Og. Так всего 16 байт выделяется, как и можно было ожидать. Можно ещё добавить -fno-builtin, чтобы строковые функции уж слишком не оптимизировались. Без оптимизаций GCC может оставлять кучу фигни для отладки.
>паддинг для алигнмента
Паддинг для char? Лолват?
Аноним 14/12/20 Пнд 20:10:39 #601 №1880533 
>>1880050
да, именно так
Аноним 14/12/20 Пнд 20:14:15 #602 №1880538 
>>1880108
ну, к примеру, это причина классической проблемы хранения полиморфных объектов в контейнерах stl, из-за этого приходилось либо хратить указатели или смарт-пойнтеры или использовать другие контейнеры, из того же буста
Аноним 14/12/20 Пнд 20:18:08 #603 №1880543 
>>1880268
дак это вечная дилемма: код по настоящему напичканый макросами или шаблонами, очень плохо отлаживать дебаггерами, плюс на нем ломается любое ide, плюс нечитаемые сообщения о ошибках
получается что на полную возможностями ide и отладчика можно воспользоваться только если пишешь plain с или приплюснутый си
Аноним 14/12/20 Пнд 20:59:32 #604 №1880579 
Что почитать на тему юза битовых операторов и интересные кейсы где они применяются?
Аноним 14/12/20 Пнд 22:21:46 #605 №1880646 
>>1880579
Что тут, блять, может быть интересного? Установка бита в определённую позицию.
Читай про varint
Аноним 14/12/20 Пнд 22:28:24 #606 №1880653 
>>1880579
Не читал, но вроде Hacker's delight про это.
Алсо, https://graphics.stanford.edu/~seander/bithacks.html
Аноним 15/12/20 Втр 00:13:46 #607 №1880772 
>>1880579
проверка чётности интов
Аноним 15/12/20 Втр 02:28:09 #608 №1880838 
>>1880579
Байтоебство. Бинарные протоколы, ембеддед. Арифметика с фиксированной точкой
Аноним 15/12/20 Втр 07:40:14 #609 №1880930 
stackB.png
>>1880429
>-O1 или -O2. Хотя бы -Og.
Мне нужно именно объяснить работу эксплойта с переполнением буфера, дан уже готовый бинарник и надо работать с ним. Да и уже с -O1 не выйдет этот эксплоит (нужно перезаписать переменную flag переполнив буфер, с -O1 она даже не на стеке).
>Паддинг для char? Лолват?
-->
>>1879192 →
В C треде я предположил, что это потому, что гцц выделяет место под одну переменную и тут же пытается выровнять стек по 16 байт, вместо того, чтобы выделить сразу все переменные и потом выровнять стек. Ну и там пэддинг не для массива чаров получается в таком случае, а для всего остального.
Аноним 15/12/20 Втр 16:18:58 #610 №1881136 
>>1880930
>выровнять стек по 16 байт
Вот на это похоже, да. Значит остался вопрос, зачем остался пропуск в 12 байт, хотя он мог спокойно записать туда заспиленный аргумент в strcpy. Ответ: хрен знает, оптимизации же выключены, любые тупости первоначальной кодогенерации не будут потом удалены.
Аноним 15/12/20 Втр 17:13:43 #611 №1881201 
Подкиньте идей для первого крупного проекта. Желательно такого, после которого меня возьмут в амазон/мелкософт/теслу-хуеслу/etc.
Аноним 15/12/20 Втр 17:21:31 #612 №1881205 
>>1881201
500 задач на литкоде, лол
Аноним 15/12/20 Втр 17:25:37 #613 №1881211 
>>1881205
Переизобретение лисапедов + оторванные от реальности задачи == говно говна == пустая трата времени.
Аноним 15/12/20 Втр 17:26:39 #614 №1881214 
>>1881211
а на собеседовании всем будет похуй на твои проекты, и спрашивать будут только литкод

Соус - собесился в гугл, пару дружань собесились в фейсбук
Аноним 15/12/20 Втр 17:27:36 #615 №1881216 
image.jpg
>>1881214
Чел...
Аноним 15/12/20 Втр 17:30:06 #616 №1881222 
>>1881216
Что? Все собесы во весь FAANG именно такие. Всем похуй кто ты, и что писал. Это интересно хоть как-то будет после нескольких раундов решения задач с литкода.
Аноним 15/12/20 Втр 17:31:00 #617 №1881225 
>>1881222
Прекращай уже, и без тебя живот болит.
Аноним 15/12/20 Втр 17:31:46 #618 №1881228 
>>1881225
земля пухом, братиш. Пиши суперкрутой проект.
Аноним 15/12/20 Втр 17:33:52 #619 №1881231 
>>1881228
Могу ебать, иду писать. Если хочешь - оставь свой ник, как напишу проект на несколько лярдов президентов и стану известным оставлю референс для тебя.
Аноним 15/12/20 Втр 17:34:27 #620 №1881232 
>>1880579
Алгоритмы коррекции ошибок.
Аноним 15/12/20 Втр 17:38:39 #621 №1881240 
>>1881231
[email protected] добавь в благодарности
Аноним 15/12/20 Втр 17:56:13 #622 №1881260 
>>1881240
Я тебе даже 1 акцию зашлю.
Аноним 15/12/20 Втр 20:09:09 #623 №1881380 
>>1881222
>>1881214
Ну так блять берешь тогда просто сразу ответы с обсуждений пиздишь, говоришь, что сам писал и идешь в гугл.
Аноним 16/12/20 Срд 00:11:16 #624 №1881583 
>>1881380
Пиздишь прям во время интервью с онлайн блокнотом?

Аноним 16/12/20 Срд 07:03:49 #625 №1881639 
>>1881583
Так ты же сам сказал, что по литкоду смотрят, какой нахуй онлайн блокнот?
Аноним 16/12/20 Срд 14:06:55 #626 №1881871 
>>1881639
ты на собеседовании решаешь алгоритмические задачки в онлайн блокноте.
Аноним 16/12/20 Срд 14:31:06 #627 №1881889 
>>1881639
Задачи с литкода в реальном времени, гений.
Аноним 16/12/20 Срд 14:44:02 #628 №1881901 
Почему у меня vs при исключении кидает меня хуй знает куда? То в исходники вектора, то в файл с асмом. Я хочу что бы только в моем коде все происходило. Как настроить?
Аноним 16/12/20 Срд 15:15:01 #629 №1881917 
>>1881889
>>1881871
Ну и зачем для этого задрачивать 500 задачек там? Достаточно просто посмотреть сразу решения чтобы запомнить алгоритмы.
Аноним 16/12/20 Срд 15:22:21 #630 №1881932 
>>1881917
>ПРОСТО
Аноним 16/12/20 Срд 15:25:52 #631 №1881935 
>>1881901
кидается туда, где кинулся эксепшен, очевидно же

>>1881917
Это так не работает, к большому сожалению
Аноним 16/12/20 Срд 15:32:00 #632 №1881940 
>>1881901
Попробуй включить just my code в настройках проекта

Лучше сначала поищи статью в блоге MS по сабжу, там разжевано всё
Аноним 16/12/20 Срд 15:43:03 #633 №1881950 
>>1881935
> кидается туда, где кинулся эксепшен, очевидно же
Блин. Ну это не удобно же. Мне нужно знать на какой строчке моего кода произошла ошибка
>>1881940
Just my code включен. Ну поищу что ты сказал
Аноним 16/12/20 Срд 16:02:15 #634 №1881962 
>>1881950
Так на стек трейс кликни
Аноним 16/12/20 Срд 16:53:35 #635 №1882006 
Правильно ли я понимаю что в эмбеде умные поинтеры не юзаются? Если да то почему так?
Аноним 16/12/20 Срд 17:21:13 #636 №1882020 
>>1882006
По-разному.
Там и стаднартной библиотеки-то часто нет в нормальном виде, а бывает и плюсов нет.
Иногда выкатывают свои простые реализации.
Ну и smart pointers решают не все проблемы, а те, которые решают, не всегда в эембеде существуют.
Аноним 16/12/20 Срд 17:22:16 #637 №1882022 
Аноны помогите пожалуйста ;3

https://2ch.hk/b/res/235532070.html
https://2ch.hk/b/res/235532070.html
https://2ch.hk/b/res/235532070.html
https://2ch.hk/b/res/235532070.html
https://2ch.hk/b/res/235532070.html
Аноним 16/12/20 Срд 17:51:44 #638 №1882034 
image.png
Как скачать эту жижу? Вон та кнопка не работает. И как её бля установить
Аноним 16/12/20 Срд 18:03:36 #639 №1882040 
>>1882034
Ладно я скачал её, просто нажал пки и открыть в новой вкладке, а как установить в dev-c++?
Аноним 16/12/20 Срд 18:17:10 #640 №1882049 
>>1882006
Оверхед же. Да и создавать что то в динамике такое себе.
Аноним 16/12/20 Срд 18:19:28 #641 №1882052 
>>1882040
https://lmgtfy.app/?q=vs+codium
Аноним 16/12/20 Срд 18:20:58 #642 №1882054 
image.png
>>1882052
Аноним 16/12/20 Срд 18:23:09 #643 №1882056 
image.png
>>1882052
неработает!!!!!!!!!!!!!!!!!!!!!!
Аноним 16/12/20 Срд 18:31:56 #644 №1882059 
>>1882006
В критическом вообще динамическая память не используется, а в какой нибудь чайник думаю сейчас можно и джаву запихать чтобы вообще все - смарт поинтер.
Аноним 16/12/20 Срд 19:56:38 #645 №1882095 
>>1882040
Как вы заебали со своим ДЕВ С++, КОК БЛОКС и прочей некрохуйней. Откуда вы блядь эту дрисню вообще берете.

Есть студия, Есть слион, есть Вскод на худой конец, нет, находят какой-то анальный клоунский пиздец и начинают ебаться в жопу, вместо того, чтобы писать на С++
Аноним 16/12/20 Срд 20:05:17 #646 №1882098 
Нужна помощь братья :(

https://2ch.hk/b/res/235532070.html
https://2ch.hk/b/res/235532070.html
https://2ch.hk/b/res/235532070.html
https://2ch.hk/b/res/235532070.html
https://2ch.hk/b/res/235532070.html
Аноним 16/12/20 Срд 20:25:14 #647 №1882114 
image.png
>>1882095
> некрохуйней
> Откуда вы блядь эту дрисню вообще берете.
Понятно же, что в методичке к laba1 указано, что нужно качать dev-cpp, borland c++ builder, visual studio 2005, либо ничего не указано, и тогда пикрил.
Аноним 16/12/20 Срд 21:39:00 #648 №1882162 
>>1882095
Студия и ЛевЪ платные вообще-то. Так что только vscode или Eclipse.
Аноним 16/12/20 Срд 21:43:46 #649 №1882167 
Как перекатиться со студии на разработку в линуксе? В чём вообще отличия и подводные? Какой софт юзать там?
Аноним 16/12/20 Срд 21:50:06 #650 №1882173 
>>1882162
Студия платная только когда ты занимаешься коммерческой разработкой с оборотом более ляма в год и более 5 разрабов в команде.

Слион можно украсть без проблем.
Аноним 16/12/20 Срд 21:52:58 #651 №1882175 
>>1882167
Поставить шлион, переделать няшный мсбилд в сблев сифозной обезьяны под названием симейк, писать код.

Ну или поставить виртуалку с линуксом и кросскомпилировать через студию\винду.
Аноним 16/12/20 Срд 21:58:43 #652 №1882181 
video.mp4
>>1882175
>няшный мсбилд
>сблев сифозной обезьяны под названием симейк
Аноним 16/12/20 Срд 21:59:52 #653 №1882182 
>>1882181
https://github.com/libarchive/libarchive/blob/master/CMakeLists.txt

Сможешь вот это задекриптить, например?
Аноним 16/12/20 Срд 22:07:10 #654 №1882187 
>>1881950
> Блин. Ну это не удобно же. Мне нужно знать на какой строчке моего кода произошла ошибка
Открой окошко со стеком и посмотри на пару строк ниже
Аноним 16/12/20 Срд 22:08:57 #655 №1882191 
video.mp4
>>1882182
>The libarchive project develops a portable, efficient C library
>Сможешь вот это задекриптить
Аноним 16/12/20 Срд 22:09:08 #656 №1882192 
>>1882034
vcpkg install libname
Аноним 16/12/20 Срд 22:09:46 #657 №1882193 
>>1882191
понял, не можешь. Ну, я тож не могу, вот по-этому и смейк хуйня
Аноним 16/12/20 Срд 22:26:06 #658 №1882210 
>>1882175
> переделать няшный мсбилд в сблев сифозной обезьяны под названием симейк
Двачую.

Шмек лучше для библиотек, для собственных проектов лучше vcxproj + property sheets
Аноним 16/12/20 Срд 22:45:51 #659 №1882228 
>>1882210
А почему смейк лучше для библиотек? Потому-что он нативно работает с вцпкг и конаном, как единственный правильный способ устанавливать библиотеки!
Аноним 17/12/20 Чтв 00:06:36 #660 №1882270 
Сап двач, хелпаните с винапи

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

TCHAR buffer15_20[1][20][15];
TCHAR buffer_ed[20] = { L"" };

HWND hEdit[20][15];
HWND hEdit_ed[20];
HWND text15_20[15][20];
HWND text20[20];


for (int i = 0; i < 15; i++) {
for (int j = 0; j < 20; j++) {
text15_20[j] = CreateWindow(L"EDIT", L"0", WS_CHILD + WS_VISIBLE + WS_TABSTOP + ES_READONLY + WS_BORDER, 8 + 29.7 i, 8 + 31 j, 27, 27, hDlg, NULL, hInst, NULL);
}
}
for (int i = 0; i < 15; i++) {
for (int j = 0; j < 20; j++) {
text20 = CreateWindow(L"EDIT", L"0", WS_CHILD + WS_VISIBLE + WS_TABSTOP + WS_BORDER, 8 + 29.7 * i, 650, 27, 27, hDlg, NULL, hInst, NULL);
}
}

for (int i = 0; i < 20; i++) {
hEdit_ed = GetDlgItem(hDlg, (LPARAM)text20);
GetWindowText(hEdit_ed, buffer_ed, 2);
}
for (int i = 0; i < 15; i++) {
for (int j = 0; j < 20; j++) {
hEdit[j] = GetDlgItem(hDlg, (LPARAM)text15_20[j]);
SetWindowText(hEdit[j], buffer_ed);
}
}

тупо не видит дескрипторы или функции get и set не работают с массивами?
Аноним 17/12/20 Чтв 01:07:55 #661 №1882320 
>>1882270
Нет.
Аноним 17/12/20 Чтв 02:14:43 #662 №1882337 
Доброй ночи всем! нужна помощь с UML диаграммой паттерна mvc. я запуталась, есть пара вопросов. tg @dergoleem
Аноним 17/12/20 Чтв 02:30:35 #663 №1882341 
>>1882337
тебе в какой-нибудь петушиный тред, зеленый
Аноним 17/12/20 Чтв 03:16:51 #664 №1882363 
>>1873850
Жиза
Аноним 17/12/20 Чтв 04:37:29 #665 №1882384 
Расскажите про эту книжку
Язык программирования C++. Лекции и упражнения Прата Стивен

Как она?
Аноним 17/12/20 Чтв 06:31:23 #666 №1882405 
>>1882095
Да всё я уже спиздил mvs в нем с гайдами проблем нет
Аноним 17/12/20 Чтв 10:08:22 #667 №1882457 
>>1882384
Эта которая C++ Primer Plus? Лет 10 назад ничего была, я как раз по ней изучал язык.
Аноним 17/12/20 Чтв 15:25:42 #668 №1882756 
1545502805158.jpg
Учил жаваскрипт, чет заебался, вкачусь-ка в кресты эти ваши
Аноним 17/12/20 Чтв 15:42:55 #669 №1882769 
>>1882756
До встречи в питонотреде через 2 недели.
Аноним 17/12/20 Чтв 18:11:53 #670 №1882911 
Как вывести символ CHAR в формате 0x0C через std::cout?
Аноним 17/12/20 Чтв 18:12:26 #671 №1882912 
>>1882756
> чет стало сложно и непонятно
Аноним 17/12/20 Чтв 18:14:00 #672 №1882913 
>>1882911
Можно обмазаться манипуляторами, но есть более адекватный способ - printf.
Аноним 17/12/20 Чтв 18:18:43 #673 №1882916 
>>1882913
Я пробовал printf("%02x" но оно чот не так выводит. Покажи как правильно пожалуйста.
Аноним 17/12/20 Чтв 18:32:30 #674 №1882923 
>>1882916
std::cout << "0x" << std::hex << 'a'

а вообще - fmt поставь, и не еби голову
Аноним 17/12/20 Чтв 18:41:10 #675 №1882932 
image.png
>>1882923
>std::cout << "0x" << std::hex << 'a'
Хуету выводит
Аноним 17/12/20 Чтв 18:43:04 #676 №1882936 
image.png
>>1882923
Аноним 17/12/20 Чтв 21:20:10 #677 №1883039 
Переполнение при присваивании может привести к затиранию данных?
Аноним 17/12/20 Чтв 21:47:18 #678 №1883058 
1200px-Heartcorazón.svg.png

Скажите щас 220к норм зп у синьора с++? А то мне только на продукты хватает, при чем я даже квартиру не снимаю, своя. ДС.
Аноним 17/12/20 Чтв 23:13:17 #679 №1883115 
>>1883039
Конечно, как и любое UB
Аноним 17/12/20 Чтв 23:23:02 #680 №1883120 
>>1883058
Реальный сениор по москве щас это 300-350к. У тебя мидловская ЗП.
Аноним 17/12/20 Чтв 23:32:13 #681 №1883126 
>>1883039
Не слушай дебила >>1883115
При присваивании коноплятор знает типы и сам за тебя генерирует static_cast
Аноним 18/12/20 Птн 00:17:23 #682 №1883145 
Как узнать самые затратные по времени участки кода в visual studio?
Аноним 18/12/20 Птн 00:28:49 #683 №1883156 
>>1883145
Там внутренний профайлер есть. А вообще - https://docs.microsoft.com/en-us/windows-hardware/test/wpt/
Аноним 18/12/20 Птн 00:40:26 #684 №1883171 
>>1883156
Я имел ввиду как не выносить участки кода в функции чтобы померить производительность
Аноним 18/12/20 Птн 00:40:40 #685 №1883172 
>>1883058
>А то мне только на продукты хватает
Найс мемы
Аноним 18/12/20 Птн 00:43:22 #686 №1883177 
prof-tour-cpu-and-memory-graph.gif
>>1883156
Реальная тема. С помощью профилировщика памяти даже некоторые хитровыебанные утечки находил.
>>1883171
А вот тут сложнее. Сэмплирующий профилировщик может только примерную область показать. Но для локализации места тормозов обычно с лихвой его хватает.
Аноним 18/12/20 Птн 02:01:15 #687 №1883212 
>>1883126
Читай стандарт, неуч. Знаковое переполнение - это UB, а при UB компилятор волен делать что угодно.
Аноним 18/12/20 Птн 02:07:41 #688 №1883214 
>>1883058
Попробуй пятерочку вместо азбуки вкуса.
Аноним 18/12/20 Птн 02:53:03 #689 №1883222 
>>1883214
Проиграл
Аноним 18/12/20 Птн 03:23:18 #690 №1883232 
>>1881225
но ведь он прав
Аноним 18/12/20 Птн 04:43:44 #691 №1883253 
>>1883120
Вот тоже думаю, об этом. Бля пиздец. зарплаты так быстро растут что я уже не успеваю следить за ними, и сколько надо просить при устройстве.
Аноним 18/12/20 Птн 10:43:28 #692 №1883303 
>>1883212
Пчел, присваивание - не арифметическая операция, следовательно никакого переполнения тут в принципе быть не может.
Аноним 18/12/20 Птн 15:20:08 #693 №1883510 
>>1883303
Пчел перечитай вопрос анона. У него уже переполнение произошло.
Аноним 18/12/20 Птн 20:39:00 #694 №1883972 
За сколько отсоритруется вектор размером 3000^2? Если это просто инты. А если это вектор объектов?
Аноним 18/12/20 Птн 20:41:30 #695 №1883976 
5a188ad6d0702ce7b110ff4c46c08b25.jpg
>>1871183 (OP)
читал недавно в треде что "клиент и сервер хуйни" является годным упражнением. что конкретно нужно делать нужно?
Аноним 18/12/20 Птн 20:53:36 #696 №1883991 
>>1883972
> За сколько отсоритруется вектор размером 3000^2?
За nlogn
> Если это просто инты. А если это вектор объектов?
За nlogn
Аноним 18/12/20 Птн 20:56:18 #697 №1883996 
>>1883991
По времени
Аноним 18/12/20 Птн 21:40:14 #698 №1884035 
>>1883996
Замерь.
Аноним 18/12/20 Птн 22:24:13 #699 №1884079 
>>1883976
Почитать про socket/bind/connect/send/receive, сделать.
Потом сделать через select/poll/epoll, сделать
А дальше можно и фреймворками типа асио обмазаться
Аноним 18/12/20 Птн 22:36:45 #700 №1884121 
>>1882932
К инту кастуй и ширину 2 ставь
Аноним 18/12/20 Птн 22:56:15 #701 №1884157 
Епта , уважаеме , подскажите пожалуйста , каким образом можно переместить допустим папку с помощью Плюсов ??
Аноним 18/12/20 Птн 23:00:23 #702 №1884171 
>>1884079
Хуйня твои советы. Чтоб нормально что-то освоить нужна интересная задачка, а не вот эта вот хуета как в вузике - дрочите теорию и упражнения в вакууме.
Аноним 18/12/20 Птн 23:01:44 #703 №1884178 
>>1884157
смотри в сторону std::filesystem
Аноним 18/12/20 Птн 23:19:35 #704 №1884190 
>>1884171
Я не говорил, что в вакууме нужно делать. Но без хотя бы чтения man socket ты далеко не уйдёшь. RTFM.
Аноним 18/12/20 Птн 23:20:15 #705 №1884191 
>>1884171
Ну напиши шахматы с мультиплеером для начала, вот тебе идея ебать
Аноним 18/12/20 Птн 23:25:42 #706 №1884197 
>>1884178
Мне нужно передвинуть именно при помощи курсора , соре что не уточнил .
Аноним 18/12/20 Птн 23:31:51 #707 №1884204 
>>1884197
std::system("explorer.exe") наркоман блять
Аноним 18/12/20 Птн 23:34:34 #708 №1884206 
>>1884204
Спасибо !
Аноним 18/12/20 Птн 23:52:29 #709 №1884212 
>>1883996
Что по времени? Ты понимаешь что ответ разный при запуске на малинке или на топовом рузене?
Аноним 19/12/20 Суб 00:05:49 #710 №1884220 
Screenshot5.png
у меня беда: SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, 0, szPath); пишет в буффер 1 символ C, я когда решил поменять на более старый компилятор, затем вернулся на 142 и всё залило ошибками..... как это чинить и почему ВинАПИ такое говно
Аноним 19/12/20 Суб 00:07:37 #711 №1884222 
>>1884220
>printf
Туда ли ты зашел?
Аноним 19/12/20 Суб 00:08:39 #712 №1884223 
>>1884222
В его защиту, std::print на основе std::format ещё не завезли
Аноним 19/12/20 Суб 00:12:24 #713 №1884225 
>>1884222
Бери ёбаный стрингстрим и аллоцируй память триллион раз подёргивая локали, блять
Аноним 19/12/20 Суб 01:05:26 #714 №1884245 
>>1884225
о боги, laba2.cpp начнет исполнятся на 3нс медленнее
Аноним 19/12/20 Суб 01:29:20 #715 №1884267 
>>1884245
Войдёт в привычку и будешь жрать говно регулярно
Аноним 19/12/20 Суб 01:33:11 #716 №1884272 
>>1884267
Скорее всего, его нахуй выпнут с любой работы за этот ебаный суржик сишный.
Аноним 19/12/20 Суб 02:55:22 #717 №1884314 
>>1884272
Лол, в его коде printf — наименьшее из зол.
Аноним 19/12/20 Суб 04:21:23 #718 №1884329 
>>1884197
И правда наркоман. Но давай подробностей, мне стало интересно
Аноним 19/12/20 Суб 04:31:23 #719 №1884331 
>>1884220
Не винапи говно, а ты не умеешь документацию читать. Почти всегда в нем надо использовать wchar_t utf-16.
Аноним 19/12/20 Суб 05:04:38 #720 №1884335 
>>1884331
Если выглядит как говно, значит говно.
Вообще тройка WinApi, MFC и COM это самое худшее, что можно увидеть в мире плюсов.
Аноним 19/12/20 Суб 11:13:18 #721 №1884401 
>>1884272
Ты сейчас серьёзно защищаешь iostream?
Аноним 19/12/20 Суб 11:34:57 #722 №1884408 
>>1884401
С пар капчуешь?
Аноним 19/12/20 Суб 13:21:48 #723 №1884441 
Что местные думают про курс https://www.coursera.org/learn/c-plus-plus-white?specialization=c-plus-plus-modern-development
1 неделю можно бесплатно, так что может кто просмотрит бегло, что там да как. Все таки цена не радует и платить за говно-курс не охота
Аноним 19/12/20 Суб 13:25:55 #724 №1884444 
>>1884225
Эмм, а printf по твоему святой дух юзает вместо аллоцирования памяти?
Аноним 19/12/20 Суб 13:25:57 #725 №1884445 
>>1884401
нет, я в своих проектах fmt использую, чего и тебе желаю.

Но в варианте сишного говна и иостримс - все таки иостримс, хоть это и аксиома эскобара
Аноним 19/12/20 Суб 13:37:24 #726 №1884450 
>>1884225
Почему? cout - это объект класса ostream, вывод производится через метод перегруженного оператора <<, который принимает rhs аргумент следующим образом: если это rvalue - по &&, если lvalue - по константной ссылке. Где здесь триллион аллокаций?
Аноним 19/12/20 Суб 13:38:52 #727 №1884451 
>>1884450
быстрофикс по поводу rvalue - просто принимает его копию, но rvalue - это литералы без адреса в памяти (std::cout << 4, например), поэтому энивей похуй.
Аноним 19/12/20 Суб 13:44:35 #728 №1884456 
Подскажите начинающему изучение, какую версию Вижуал Студии украсть с торрентов? Раз уж бесплатно, то может сразу Профешнл иди Энтерпрайз? Обесните, когда какая версия лучше подходит пожалиста
Аноним 19/12/20 Суб 13:51:41 #729 №1884468 
>>1884401
Ты сейчас неиронично защищаешь prрешетоntf?
Аноним 19/12/20 Суб 13:57:35 #730 №1884476 
>>1884456
Просто и без задней мысли качаешь community версию прямо с сайта мс
Аноним 19/12/20 Суб 13:59:40 #731 №1884479 
>>1884225
Что тебе мешает сразу проаллоцировать sstream нужным размером?
Аноним 19/12/20 Суб 14:39:44 #732 №1884541 
>>1884456
У меня куплена professional от работы. Так и не понял, чем она отличается от коммунити, которая дома. По-этому просто скачай бесплатную и не еби голову.
Аноним 19/12/20 Суб 15:17:26 #733 №1884589 
>>1884541
Собственно действительно непонятно чем
https://visualstudio.microsoft.com/vs/compare/
Раньше, давно, помню в express нельзя было аддоны ставить, но это вроде уже много лет назад не так.
Аноним 19/12/20 Суб 15:28:59 #734 №1884598 
Есть ли в стандарной либе какой-либо класс который принимает контейнер и возвращает индекс и итератор?
Короче говоря, для range-based for хочется небольшую оберточку чтобы индекс перед циклом не писать и не инкрементить его в теле
Аноним 19/12/20 Суб 16:50:58 #735 №1884658 
>>1884598
В range-v3 есть что то типа
for (auto const&& [idx, value] : your_container | ranges::view::enumerate) { }
Аноним 19/12/20 Суб 17:50:29 #736 №1884734 
>>1884658
idx тут какого типа? только бы блядь не size_t, умоляю
Аноним 19/12/20 Суб 17:55:35 #737 №1884740 
>>1884734
std::size_t
Аноним 19/12/20 Суб 18:10:00 #738 №1884748 
>>1884658
>range-v3
Помойное название
Аноним 19/12/20 Суб 18:29:39 #739 №1884762 
Чем бы заняться после прочтения Страуструпа?
Аноним 19/12/20 Суб 18:41:32 #740 №1884770 
>>1884762
Читай мейерса
Аноним 19/12/20 Суб 18:58:41 #741 №1884778 
>>1884734
А что не так? У тебя индекс может быть отрицательный в контейнере?
Аноним 19/12/20 Суб 19:08:17 #742 №1884790 
>>1884734
Можно наверное свою обертку намутить на шаблончиках
Аноним 19/12/20 Суб 19:08:57 #743 №1884792 
>>1884748
Наоборот звучит очень футуристично, технологично.
Аноним 19/12/20 Суб 19:20:37 #744 №1884806 
>>1884770
А после него?
Аноним 19/12/20 Суб 19:21:42 #745 №1884808 
>>1884806
Если ты задаешь такие вопросы, то тебе никакие рекомендации никаких книг не помогут
Аноним 19/12/20 Суб 19:22:41 #746 №1884810 
16051201429590.png
15968870322780.jpg
А где можно следить за процессом выкакивания модулей by gcc? Так понимаю что сопутствующей проблемой встанет то, что системы сборки (bazel) также не будут уметь ещё собирать плюсовый проект на модулях?

А ещё интересно было бы вкатиться в системы сборки. Стоит предо мною дилемма, cmake или bazel. Вроде Базель намного проще удобнее и современнее, но смаке используется везде и на него наверняка документации побольше.
Аноним 19/12/20 Суб 19:27:25 #747 №1884817 
>>1884808
Учебные материалы мне присниться должны, а дед?
Аноним 19/12/20 Суб 19:50:48 #748 №1884834 
>>1884810
scons
Аноним 19/12/20 Суб 20:33:19 #749 №1884869 
>>1884445
Ну хуй знает. Форматный вывод в потоки это еще более ебанистическая залупа, чем даже сами потоки.
Что угодно, включая snprintf, лучше чем пятистрочный пердолинг с ио-флагами и модификаторами (которые еще и имеют меньше возможностей, чем тот же принтф)
Аноним 19/12/20 Суб 20:34:39 #750 №1884872 
Как по заданным шести точкам оптимально найти какие четверки точек образуют грань прямого параллелепипеда?
Аноним 19/12/20 Суб 20:37:57 #751 №1884877 
>>1884331
Они конечно говно, но
1. Винапи это C, плюсы тут ни при чем
2. MFC придумали до вменяемой стандартизации плюсов, отчасти поэтому оно такое как есть. Не нравится не ешь. Есть Qt, есть шарпик.
3. COM. Он велик и ужасен, но часто без него никак. Смирись.
Ну и доки всё же лучше читать. Потому как смотря на тот скрин видно не хитровыебаную проблему, а незнание char, wchar_t, TCHAR, и того с чем винда нативно работает.
Аноним 19/12/20 Суб 20:37:58 #752 №1884878 
>>1884872
Ну там скалярное произведение, хуе-мое. А вообще по шести точкам можешь хоть полный перебор на О(N!) делать.
Аноним 19/12/20 Суб 20:41:25 #753 №1884884 
>>1884541
Тем что у тебя скорее всего ещё msdn подписка. Ну и тонкости лицензирования. Вот в Enterprise да есть клёвые фичи, но и без них прожить можно
Аноним 19/12/20 Суб 20:55:10 #754 №1884893 
>>1884778
http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-mix

Начинай читать отсюда. тлдр: "мы в комитете обосрались так сильно, что не хватит бумаги подтереться"
Аноним 19/12/20 Суб 21:04:52 #755 №1884899 
>>1884817
В первой же ссылке, в оп-посте, есть сборник книг, сука ты тупая
Аноним 19/12/20 Суб 21:08:34 #756 №1884903 
>>1884869
Ну так правильный то вариант - fmt все таки, а не выбор из двух стульев.

>>1884884
от MSDN подписки полезного только 50 бачей на ажур ежемесячно, где у меня впска крутится. А так, каких-то плюсов больше нету.
Аноним 19/12/20 Суб 21:09:44 #757 №1884904 
>>1884899
То хуита протухшая. За 3 года наверняка много годноты появилось.
Аноним 19/12/20 Суб 21:26:31 #758 №1884912 
>>1884904
А в следующем-то сколько появится! Иди нахуй, долбоёб. Если ты не можешь осилить поиск книги в интернете, то программировать тебе ещё рано
Аноним 19/12/20 Суб 21:42:59 #759 №1884923 
Ананасы, пытаюсь применить std::lower_bound к вектору пар std::pair<unsigned long, unsigned long>. Условие моего поиска таково - я хочу найти число, которое падает в ренже между двумя значениями в паре.

Пример: вектор пар {1000, 2000}, {2000, 4000}, {6000, 10000}, число, задаваемое при поиске - 3000. Цель - при вышеперечисленных данных, вернуть итератор на пару {2000, 4000}, ибо 3000 находится между ними. Пытался написать через функтор, лямбду - возвращает неверное значение. Буду рад, если подскажете можно ли это красиво и чисто написать, не хуяря от руки кастомный бинарный поиск?
Аноним 19/12/20 Суб 21:43:27 #760 №1884924 
Не могу уже дрочить теорию, скажите, что нужно знать примерно, чтобы сделать программу, которая будет выгружать все картинки с треда в папку?
Аноним 19/12/20 Суб 21:52:19 #761 №1884931 
>>1884792
Я и говорю.
Аноним 19/12/20 Суб 21:52:37 #762 №1884932 
>>1884806
А после него (да и до) уже надо пушить сочные ништяки в проде.
Аноним 19/12/20 Суб 21:53:18 #763 №1884935 
>>1884903
>Ну так правильный то вариант - fmt все таки, а не выбор из двух стульев.
Да, но она пока ещё только в виде отдельной либы, так что всем сосать.
Аноним 19/12/20 Суб 21:53:23 #764 №1884936 
>>1884912
Нет ты. Быдло.
>>1884932
Оо, вот это деду надо.
Аноним 19/12/20 Суб 22:01:33 #765 №1884940 
>>1884935
Плох проект без депенденси менеджера
Аноним 19/12/20 Суб 22:09:44 #766 №1884944 
>>1884940
Поинт не в этом
Аноним 19/12/20 Суб 22:12:52 #767 №1884945 
>>1884924
подключаешь gumbo query и вперед.
Аноним 19/12/20 Суб 22:14:54 #768 №1884947 
>>1884924
Хард мод: сетевой стек, модель слоев OSI, протокол TCP/IP, HTTP(S), значит обработку строк, эллиптические кривые для SSL, WinAPI раз у тебя папки, а не директории, многопоточность, ты же не собираешься сидеть до второго пришествия.
Аноним 19/12/20 Суб 22:18:18 #769 №1884949 
>>1884923
Почему ты считаешь что это работа для lower_bound? Его семантика именно бинарный поиск
>Пытался написать через функтор, лямбду
Какая разница через что писать, лол?
Упрости задачу и напиши сначала для вектора просто чисел, типа ищешь 3000 среди 1000, 2000, 3000, 4000
Аноним 19/12/20 Суб 22:47:10 #770 №1884968 
>>1884924
json\curl
Аноним 19/12/20 Суб 22:49:30 #771 №1884972 
>>1884924
Вроде в Poco есть HTTP. Но если хочешь хардкора, то для этого Boost.ASIO с Boost.Beast
А так я бы сделал на питоне с requests
Аноним 19/12/20 Суб 22:56:32 #772 №1884975 
>>1884924
> выгружать все картинки с треда в папку
https://dollchan.net/
Аноним 19/12/20 Суб 22:57:33 #773 №1884976 
Есть ли смысл перекатываться в C++ с других языков?
Аноним 19/12/20 Суб 22:58:32 #774 №1884977 
>>1884976
Есть.
Аноним 19/12/20 Суб 22:59:38 #775 №1884978 
6e9a581e01e0a30eab11b7577cd43546.jpg
>>1884877
>Винапи это C, плюсы тут ни при чем
Да, типичные для C именования в стиле CamelCase и в стиле МНОГАРАНДОМНЫХБУХВ.

>MFC придумали до вменяемой стандартизации плюсов
Qt появился 25 лет назад. Ламповый 4.0 вышел в 2005 задолго до modern c++11.

>COM
Без ATL/WTL ты на нём просто охуеешь писать.

>незнание char, wchar_t, TCHAR
А ещё: CHAR, WCHAR, TCHAR, LPSTR, LPWSTR, LPTSTR, LPCSTR, LPCWSTR, LPCTSTR. Смотри не перепутай.
Аноним 19/12/20 Суб 23:00:54 #776 №1884979 
Есть класс базовый Widget. У него есть метод добавления\вызов каллбека по имени.
От widget наследуется класс MenuBar файл, правка, вид и тд. У этого класса есть метод добавления пункта меню: текст кнопки и имя каллбека.
Соответственно, чтобы всё работало как задумано нужно добавлять пункт меню, а затем добавлять калбек.
Стоит ли сделать так чтобы при добавлении можно было сразу добавить калбек (этот уже не будет связан с базовым классом и им будет управлять производный класс)?
Аноним 19/12/20 Суб 23:02:15 #777 №1884980 
>>1884872
Никак. Плоскость/грань задаётся тремя различными точками, не лежащими на одной прямой.
Аноним 19/12/20 Суб 23:02:41 #778 №1884981 
>>1884977
Есть ли удаленка на C++? Какие компании топовые по условиям работы?
Аноним 19/12/20 Суб 23:10:40 #779 №1884984 
>>1884979
А похуй. Уже придумал как
Аноним 19/12/20 Суб 23:19:17 #780 №1884990 
>>1884981
Сейчас все на удалёнке сидят. Из "условий работы" в большинстве случаев остались только деньги и ДМС.
Из отечественных контор всё как обычно: Яндекс, банки, Лохсофт.
Есть куча зарубежных жирных контор типа Хуавеев, но ты туда сразу не вкатишься.
Аноним 19/12/20 Суб 23:22:55 #781 №1884993 
>>1884980
Однако, как мы оба знаем, грань параллелепипеда представляет собой четырехугольник, все вершины которого лежат в одной плоскости.
Видимо в задаче и надо найти такие четыре точки в исходном списке или показать что их нет.
Аноним 19/12/20 Суб 23:30:01 #782 №1884997 
>>1884980
> Плоскость/грань
Прямая/отрезок
Треугольник/трапеция
Аноним 20/12/20 Вск 00:55:53 #783 №1885044 
>>1884993
Грань вырожденного параллелепипеда, который возможен при его постановке задачи, не четырёхугольник.
Аноним 20/12/20 Вск 00:57:31 #784 №1885045 
Не напомните:

std::string str("Hello world!");
printf( "%s", str.c_str() );

Функция str.c_str() вернет указатель на нуль-терминированную строку. А сама эта нуль-терминированная строка где хранится в это время?
Аноним 20/12/20 Вск 00:59:35 #785 №1885048 
>>1885045
в str
Аноним 20/12/20 Вск 01:01:39 #786 №1885049 
>>1885048
Ты бы ещё сказал "в ОЗУ".
Аноним 20/12/20 Вск 01:05:41 #787 №1885052 
>>1885048
так str - это ж вроде вектор чаров внутри, разве нет?
Аноним 20/12/20 Вск 01:06:11 #788 №1885053 
>>1885049
А что ты хотел услышать? Внутри std::string находится указатель на строку с 0 в конце. Он и возвращается как const.
Аноним 20/12/20 Вск 01:07:28 #789 №1885054 
>>1885053
вот и хотел уточнить как оно там внутри хранится, думал, что в виде вектора
Аноним 20/12/20 Вск 01:11:36 #790 №1885059 
Есть две плоскости, заданные уравнениями (на компьютере это 4 коэфицента a,b,c,d перед x,y,z соотв). Как мне определить, что плоскости параллельны, но при этом различны?
Аноним 20/12/20 Вск 01:18:04 #791 №1885065 
>>1885059
Ну параллельны я понимаю как. А вот как понять различны они или нет?
Аноним 20/12/20 Вск 01:18:33 #792 №1885066 
>>1885059
Наверное, они параллельны, если у них коллинеарные нормали. А разные - что точки с x=0 и y=0 дают разный z.
Аноним 20/12/20 Вск 01:18:52 #793 №1885067 
>>1885059
http://www.cleverstudents.ru/line_and_plane/parallel_planes.html
И переписать на языке программирования.
Аноним 20/12/20 Вск 01:19:59 #794 №1885068 
>>1885059
Ты тестовое на младшенького в гейдев пишешь?
Подсказка: тебе помогут векторное и скалярное произведение. (a,b,c) это вектор нормали к плоскости.
Аноним 20/12/20 Вск 01:24:10 #795 №1885072 
>>1885068
Какое нах тестовое, сейчас же сессия у студентиков, пора срочно сдавать лабы и курсачи, иначе не допустят, и мамка будет ругать.
Аноним 20/12/20 Вск 01:37:44 #796 №1885083 
>>1885045
Implementation-defined.
Скорее всего в SSO на стеке. Или в куче, если строка более длинная.
Аноним 20/12/20 Вск 01:51:00 #797 №1885098 
>>1885054
Не, c_str уже в виде Си-массива явно.
Аноним 20/12/20 Вск 01:51:54 #798 №1885100 
>>1885098
вот поэтому и непонятно как он хранит
Аноним 20/12/20 Вск 01:55:12 #799 №1885107 
>>1885100
Чего непонятно?
Копирует байты во внутренний буфер.
Аноним 20/12/20 Вск 02:41:51 #800 №1885137 
может функция c_str() конструирует временный объект?
Аноним 20/12/20 Вск 02:58:57 #801 №1885144 
>>1884978
>Да, типичные для C именования в стиле CamelCase и в стиле МНОГАРАНДОМНЫХБУХВ.
Венгерская нотация, наследие древности.

>Qt появился 25 лет назад. Ламповый 4.0 вышел в 2005 задолго до modern c++11.

MFC появился 28 лет назад. С++ хоть сколько-то стандартизировали 22 года назад. К сожалению, МС забила на MFC году так в 2003-2005 и стала продвигать .NET, оставив с++ без вменяемого GUI (и средств его разработки). Сколько-нибудь значимое изменение - в 2008 году купили слепок кода у BCG, но дальше развивать не стали. Сейчас двигают UWP - но многих вещей на нём не сделать.

>Без ATL/WTL ты на нём просто охуеешь писать.
Тут согласен. Да и с ними тоже можно охуеть (когда пишешь компонент, а не используешь).

>Смотри не перепутай
Ну тут всё просто (см первый ответ). Но мой посыл был про то, что надо использовать _UNICODE и -W версии функций. И не кастить wide строки к char (а если очень хочется - то не к разным codepage а конвертить в UTF-8 через WideCharToMultiByte например)
Аноним 20/12/20 Вск 03:00:00 #802 №1885145 
>>1884903
>А так, каких-то плюсов больше нету.

Я думал у тебя подписка с дистрибами и так далее.
Аноним 20/12/20 Вск 03:11:23 #803 №1885148 
>>1885045
>А сама эта нуль-терминированная строка где хранится в это время?
Вот этот >>1885083 прав. Сама SSO - довольно интересная штука, посмотри её устройство.

Блять, да где ебучая капча?
Аноним 20/12/20 Вск 03:15:26 #804 №1885150 
>>1885137
>может функция c_str() конструирует временный объект?
Нет, потому что

The elements of a basic_string are stored contiguously, that is, for a basic_string s, &⚹(s.begin() + n) == &⚹s.begin() + n for any n in [0, s.size()), or, equivalently, a pointer to s[0] can be passed to functions that expect a pointer to the first element of a null-terminated (since C++11)CharT[] array.

Смотри
https://en.cppreference.com/w/cpp/string/basic_string/c_str
https://en.cppreference.com/w/cpp/string/basic_string/data
Аноним 20/12/20 Вск 03:26:15 #805 №1885152 
>>1885137
Нет.
Внутри std::string есть m_size и m_pointer. Если строка длинная (больше, чем sizeof(m_size) + sizeof(m_pointer)), то в куче выделяется память и туда записывается текст в конец которого ставится /0; m_pointer указывает на эту память. Именно он и возвращается c_str() или data(). Если строка короткая, то имеет место small string optimization. За правильную реализацию не скажу, но возможно как-то так: Первый бит m_size указывает, что строка короткая или длинная. Следующие 7 бит хранят длину строки. Сама строка записывается поверх памяти [m_size]+[m_pointer] со 2 байта (m_size и m_pointer лежат в памяти на стеке последовательно). В конце пишется /0. Соответственно функции c_str() и data() возвращают указатель на 2 байт m_size.
Но в любом случае никаких буферов для конвертации в C строку не создаётся.
Поправьте, кто в теме.
Аноним 20/12/20 Вск 03:42:25 #806 №1885155 
>>1885152
В целом ты прав, а в частности в каждой реализации может быть по-своему (+ доп извраты в Debug) и меняться от версии к версии, впрочем, MS например заморозили ABI на v140 тулсете и пока не меняют, но собираются - для реализации каких то новых фич придется сломать бинарную совместимость.
Аноним 20/12/20 Вск 05:26:51 #807 №1885165 
>>1884834
А ты довольно немногословен
Может хоть расскажешь почему стоит использовать скнс, который ещё менее популярен чем Базель, значит ещё больше проблем с внешними проектамм
Аноним 20/12/20 Вск 08:22:53 #808 №1885191 
Сап.

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

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

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

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


К чему я всё это: посоветуйте литературу, которая разъясняет, как проектировать иерархию классов/наследования, как грамотно придумывать взаимодействие между ними и всякое такое. На своих ошибках учиться больно уж геморно и времязатратно.
Аноним 20/12/20 Вск 10:10:43 #809 №1885233 
>>1885191
Посмотри книжки по:
- рефакторингу (Фаулер "Refactoring - Improving the Design of Existing Code")
- паттернам проектирования (Гамма и ещё 3 мудака "Design patterns")
- операционным системам (Танненбаум "Modern operating systems")
Сильно не упарывайся, просто вникни как на каждом уровне решаются архитектурные проблемы.
Аноним 20/12/20 Вск 12:12:15 #810 №1885328 
>>1885165
Советовать не буду, но про Базель я от тебя впервые слышу, а скунс хотя бы в несколько опен сорс проектах попадался.
Аноним 20/12/20 Вск 12:19:09 #811 №1885332 
>>1885191
Вот такую штуку советовали (но пока не нашел времени почитать)
https://github.com/donnemartin/system-design-primer
Аноним 20/12/20 Вск 12:33:29 #812 №1885339 
>>1885332
На английском же.
Аноним 20/12/20 Вск 12:46:54 #813 №1885343 
>>1885339
Кошмар, еще и на Питоне и про веб, да?
Аноним 20/12/20 Вск 12:49:23 #814 №1885345 
>>1885339
Там наверху ссылочка есть
https://github.com/voitau/system-design-primer/blob/master/README-ru.md
Аноним 20/12/20 Вск 13:19:59 #815 №1885358 
>>1885045
string это класс, у него есть мембер - указатель на char, а также какой-нибудь unsigned long buff_len, который хранит инфу о длине аллоцированной строки. Метод c_str возвращает указатель на начало этой строки в памяти. На вопрос где это находится - в куче, ибо размер строки неизвестен заблаговременно в компайл тайме. Деструктор класса string потом удаляет выделенную память.

Long story short - за кулисами это работает как в сишке (если посмотреть на реализацию внутри класса string), просто ввиду присутствия ООП в плюсах, сию сырую ебанину можно обернуть в класс.
Аноним 20/12/20 Вск 13:29:21 #816 №1885365 
>>1885358
значит string хранит уже нуль-терминированную строку?
Аноним 20/12/20 Вск 13:44:46 #817 №1885378 
>>1885365
Какой string? Где? Тебе же написали выше - implementation defined. Там может хоть на лету создаваться, язык такого не запрещает. Язык определяет только интерфейсы, интерфейс говорит что при вызове c_str() ты получишь нуль-терминированную строку, все.
Если тебе интересно как сделано конкретно в gcc там и смотри сам
https://gcc.gnu.org/onlinedocs/gcc-4.6.2/libstdc++/api/a00770_source.html
Аноним 20/12/20 Вск 13:56:55 #818 №1885384 
>>1885365
Да, у него есть поле в классе - указатель на чар, он и указывает на начало строки в памяти.
Аноним 20/12/20 Вск 16:07:50 #819 №1885474 
А как называется структура данных (дерево какое-то), когда количество узлов может быть любое у каждого узла дерева и глубина ветвления не ограничена друг относительно друга?
M-Way Tree - это оно?
Аноним 20/12/20 Вск 16:16:37 #820 №1885479 
что значит size_t?
Аноним 20/12/20 Вск 16:23:15 #821 №1885485 
>>1885479
https://www.viva64.com/ru/t/0044/
Аноним 20/12/20 Вск 16:33:27 #822 №1885507 
>>1885339
Другого и не надо.
Аноним 20/12/20 Вск 16:38:59 #823 №1885512 
Как сделать строгий алиас к типу?
Например, хочу передавать строку в функцию: в одном случае имя текстуры, а в другом текст. Т.е. будет две перегрузки.
Аноним 20/12/20 Вск 16:45:02 #824 №1885516 
>>1884990
А какие технологии наиболее популярны? Qt, Boost или что-то другое?
Аноним 20/12/20 Вск 16:47:45 #825 №1885517 
image.png
>>1885507
>>Другого и не надо.
Аноним 20/12/20 Вск 17:14:15 #826 №1885539 
>>1885512
Никак, есть несколько 3рдпати либ, но они кал.
Аноним 20/12/20 Вск 17:51:43 #827 №1885557 
>>1885512
Строгий псевдоним типа и есть тип.
Аноним 20/12/20 Вск 17:59:56 #828 №1885564 
>>1885557
Пиздабол
https://wandbox.org/permlink/ob3Hk8XCfBcvQgkD
Аноним 20/12/20 Вск 18:44:15 #829 №1885602 
>>1885512
Звучит как не очень пахнущая архитектура.
Аноним 20/12/20 Вск 19:04:33 #830 №1885615 
>>1885602
Тебя ебать не должно что тебе там слышится
Аноним 20/12/20 Вск 19:18:35 #831 №1885623 
>>1885602
не, сильные алиасы это крутотенюшка, другое дело, что они не стандартизированы, и никто не знает, как их правильно готовить. Но, оверолл, я бы с удовольствием пользовался, будь оно в стандарте
Аноним 20/12/20 Вск 19:22:50 #832 №1885624 
>>1885144
>оставив с++ без вменяемого GUI (и средств его разработки)
можно писать для UWP на стандартном с++ 17 с использованием winrt, это будет чистый с++, не расширение с++/cx
другое дело что никто этого не делает, лол, тк шарпик есть

Аноним 20/12/20 Вск 19:28:23 #833 №1885627 
>>1885144
>оставив с++ без вменяемого GUI (и средств его разработки)
При всей моей любви к сиплюсплюсу, гуи я буду писать на шарпе на Avalonia. Потому-что так проще и быстрее, хоть я и шарп знаю сильно хуже.
Аноним 20/12/20 Вск 19:46:17 #834 №1885637 
Не бейте сильно, решил поучить ваш язык, дошел до указателей и не понимаю во что
int counter_p = new int(7);
std::cout << counter_p << ' ' <<
counter_p << std::endl;
delete counter_p;
std::cout << counter_p << ' ' << *counter_p << std::endl;

На выходе получаю
0x7f9131c05900 7
0x7f9131c05900 7

Непонятно именно последнее. Память мы освободили ведь, почему нет ошибки? Т.е. даже компилятор не ругается и варнингов нету.
Аноним 20/12/20 Вск 19:46:45 #835 №1885638 
>>1885637
Звездочки съел. Сначала адрес, потом знаечние вывожу
Аноним 20/12/20 Вск 19:48:22 #836 №1885640 
>>1885637
А, уже дошло. Мы просто память системе вернули, только я думал, что указатель обнулится в таком случае.
Аноним 20/12/20 Вск 20:46:55 #837 №1885660 
>>1885637
>>На выходе получаю
>>0x7f9131c05900 7
>>0x7f9131c05900 7
Это ты где такое получаешь?
Аноним 20/12/20 Вск 20:49:12 #838 №1885661 
Какие технологии языка мастхев для всех не в зависимости от сферы деятельности? Что поучить после базы и stl?
Аноним 20/12/20 Вск 20:50:03 #839 №1885663 
>>1885660
На выходе
Аноним 20/12/20 Вск 20:52:26 #840 №1885665 
>>1885663
Клоун, пидрас, троль, мразь, ублюдок, гнида, падаль, тварь, чудище, уебок, чмоня, лошок, ебаный ты чел, где этот выход находится??????????????
Аноним 20/12/20 Вск 20:53:19 #841 №1885666 
>>1885665
В стандартной библиотеке шаблонов, хуйло.
Аноним 20/12/20 Вск 20:53:48 #842 №1885667 
>>1885637
Андифайнед бихевиор на то и андефайнед
Аноним 20/12/20 Вск 20:53:56 #843 №1885668 
>>1885666
Клоун, пидрас, троль, мразь, ублюдок, гнида, падаль, тварь, чудище, уебок, чмоня, лошок, ебаный ты чел, какой еще библиотеке?
sageАноним 20/12/20 Вск 20:54:12 #844 №1885669 
>>1885665
Вам в дескриптор #1
Аноним 20/12/20 Вск 20:54:37 #845 №1885670 
>>1885668
В стандартной библиотеке, хуйло.
Аноним 20/12/20 Вск 20:55:03 #846 №1885672 
>>1885668
Стандартной.
Аноним 20/12/20 Вск 20:56:01 #847 №1885673 
>>1885661
Тебе базу учить еще годик. Просто пиши код, старайся применять модерновый подход.
Аноним 20/12/20 Вск 20:57:09 #848 №1885674 
>>1885669
>>1885670
>>1885672
Клоуны, пидрасы, троли, мрази, ублюдоки, гниды, падлицы, твари, чудики, уебки, чмоньки, лошки, ебаные вы челы, прямо сейчас объясняете как получается такой вывод без всяких умных слов
Аноним 20/12/20 Вск 20:58:31 #849 №1885676 
>>1885674
Адрес указателя и значение. Кстати, хуй сасать будешь?
sageАноним 20/12/20 Вск 20:59:00 #850 №1885677 
>>1885674
>прямо сейчас объясняете как получается такой вывод без всяких умных слов
Открываешь исходники ядра и читаешь про файловые дескрипторы, а именно про stdout. Ну что ты как маленький.
Аноним 20/12/20 Вск 21:00:19 #851 №1885678 
>>1885673
Там уже нечего учить. + Я исписался. Уже 2 проекта на гите запилил, 100 звёзд суммарно получил. И Майерса этого вашего прочёл. Дальше что делать?
Аноним 20/12/20 Вск 21:01:48 #852 №1885684 
>>1885678
Мм, работу искать? 100 звезд это неплохо.
Аноним 20/12/20 Вск 21:07:00 #853 №1885688 
>>1885684
>Мм, работу искать?
Да не, рано ещё. Мне не поверят если я к своим 3 месяцам вката плюсану до требуемого кол-ва в вакансии. Ну и Крюгер этот ваш вроде не мучает - понимаю что многого ещё не знаю, наверняка загнусь на собесе, нужно хоть какую-то технологию освоить на более-мене серьёзном уровне.
Аноним 20/12/20 Вск 21:08:24 #854 №1885690 
>>1885688
Попробуй boost.asio освоить, напиши йоба чат, который держит 100к коннектов.

Как вариант еще - qt, но тут надо смотреть, что в твоем городе больше требуется на джунов.
Аноним 20/12/20 Вск 21:09:23 #855 №1885692 
>>1885678
Покажи проекты
Аноним 20/12/20 Вск 21:14:09 #856 №1885695 
>>1885690
>boost.asio
>qt
Как раз их в проектах и юзал, лол. Но ничего серьёзного без лютого чтения доков. Чат мб попробую. Сейчас на выходных по приколу opencv по туториалам копаю, но наверное буду qt осваивать.
>тут надо смотреть, что в твоем городе больше требуется на джунов.
Да я из Московии, тут вакансий хватает. Думал сначала тут вопрос задать прежде чем оттуда что брать.

>>1885692
Не, пока не стану. Там деанон сразу будет, сори.
Аноним 20/12/20 Вск 21:15:46 #857 №1885696 
>>1885695
>деанон сразу будет
И? Травить что ли будут?
Аноним 20/12/20 Вск 21:24:25 #858 №1885705 
>>1885696
Всё может быть. Не хочу обострения паранойи.
Аноним 20/12/20 Вск 21:32:29 #859 №1885708 
>>1885705
Ну а в архив и на файлообменник?
Аноним 20/12/20 Вск 22:50:12 #860 №1885740 
Снимок экрана 2020-12-20 в 22.47.54.png
>>1885637
Это снова я.
Я не понял, как удалить void pointer? Неужели его надо преобразовать в тип, накоторый он ссылается и удалить только тогда?
Аноним 20/12/20 Вск 23:17:12 #861 №1885763 
>>1885740
Ты его через new не создавал, вот и delete нехуй писать, норкоман, блядь.
Аноним 20/12/20 Вск 23:23:24 #862 №1885767 
>>1885740
ты вообще не понимаешь, что творишь.

Иди книги перечитывай, главы про указатели и аллокации.
Аноним 20/12/20 Вск 23:26:07 #863 №1885769 
>>1885740
Ты пытаешься освободить память, которую не брал через new. Конечно будет ошибка.
>>1885767
Конечно не понимает. Зуб даю, что 90% кто доходил до указателей и ссылок, обсирались не хуже.
Аноним 21/12/20 Пнд 02:40:24 #864 №1885810 
>>1885740
А что ты удалить то собрался? Переменную?
Аноним 21/12/20 Пнд 09:12:59 #865 №1885920 
Народ, а хуле вы крестовики не пользуетесь зумерскими технологиями, такими как менеджер зависимостей типа maven/npm, нормальными тестами, шоб можно было TDD ебошить как нормальнеый чел.

Чё сложно-то так?
Аноним 21/12/20 Пнд 09:14:13 #866 №1885922 
>>1885920
Vcpkg + doctest, хули ты как маленький
Аноним 21/12/20 Пнд 09:21:10 #867 №1885936 
>>1885920
conan.io
catch2
Аноним 21/12/20 Пнд 09:21:22 #868 №1885938 
Поцоны, а вы в принципе зачем плюсы учите, если сейчас платят где угодно больше при меньшем затрате усилий?
Разве что в геймдев идти, который в России в парочке компаний и в десятке инди студий с копеечной зп?
Аноним 21/12/20 Пнд 09:28:01 #869 №1885944 
>>1885938
Я РНН а кресты это мое хобби.
Аноним 21/12/20 Пнд 09:30:22 #870 №1885945 
>>1885938
Устроился джуном в родном Киеве за 30к местных рейхсмарок в то время когда на всякую жсо, хпх и жава/шарпопарашу зп у похожих вакансий начинаются от 8-10к.
Аноним 21/12/20 Пнд 09:38:25 #871 №1885946 
>>1885938
Бля моча банит за хохлов не приятно конечно! Аж роутер перезагрузить пришлось! Ну а по твоей теме, на плюсах же самое серьезное и интересное пишется. Нахуй блять эти ебаные сука месенджеры кому нужны будут через пару лет.
Аноним 21/12/20 Пнд 09:57:55 #872 №1885955 
>>1885920
Какой язык - такой и тулинг. Несколько реально используемых компиляторов, несколько способов подключения либ, много зависящих от реализации фич, плохо скрываемая низкоуровневость - попробуй в таких условиях написать универсальный менеджер пакетов хотя бы.
Аноним 21/12/20 Пнд 10:20:08 #873 №1885973 
>>1885920
Для TDD пользуем GTest от гугла. Также docker, nodejs, npm, react, .NetСore. Такие вот мы крестовики-затейники.
Аноним 21/12/20 Пнд 10:26:41 #874 №1885980 
>>1885938
Есть довольно много сытных мест помимо /gd, если ты крестодед.
sageАноним 21/12/20 Пнд 10:27:27 #875 №1885982 
>>1885920
>шоб можно было TDD ебошить как нормальнеый чел
Условный Catch2 или Google Test проще простого установить же.
Аноним 21/12/20 Пнд 12:43:57 #876 №1886071 
>>1885938
Я долбаеб просто. Пишу гуи на qt. Ну и так, по мелочи
Аноним 21/12/20 Пнд 13:12:00 #877 №1886087 
>>1885982
Сажа, отклейся
Аноним 21/12/20 Пнд 13:18:14 #878 №1886092 
Нуб в этом итт треде. Есть
Аноним 21/12/20 Пнд 13:23:38 #879 №1886096 
>>1886092
блять.

Есть алгоритм на C++, там много файлов и h, и cpp, но графику гораздо удобнее прописать на python.
Как можно вызвать функцию в которую вложено дохуя других функций из питона?
Учить CLI нет ни времени, ни желания надо сдать проект в уни. Про C API знаю, но можно ли там, допустим, написать функцию, которая принимает аргументы из питона, форматирует их и вызывает нормальные cpp функции, без переписывания их всех?
Аноним 21/12/20 Пнд 14:17:36 #880 №1886126 
>>1886096
Какую графику?
Аноним 21/12/20 Пнд 14:22:28 #881 №1886130 
>>1886096
pybind11?
Аноним 21/12/20 Пнд 14:45:18 #882 №1886152 
>>1871183 (OP)
как установить треду размер стека?
Аноним 21/12/20 Пнд 14:49:02 #883 №1886158 
>>1886152
pthread_attr_setstacksize не помогает?
Аноним 21/12/20 Пнд 15:15:10 #884 №1886179 
>>1886126
Построение пути объекта, то есть задание препятствий (рисование фигур) в реальном времени, задание начальных и конечных координат, потом отображение пути.

>>1886130
>pybind11?
Спасибо, сейчас почекаю.
Аноним 21/12/20 Пнд 15:23:38 #885 №1886194 
Как пропарсить массив через инжектор заднего индекса? Чтобы без передней индексации консольной, а сразу напрямую в кеш? Может это есть в стандартной библиотеке?
Аноним 21/12/20 Пнд 15:39:53 #886 №1886214 
>>1886194
Щито блять?
Аноним 21/12/20 Пнд 15:43:27 #887 №1886223 
>>1885920
У нас VCPKG в проде, полет охуительный.
Аноним 21/12/20 Пнд 16:14:05 #888 №1886253 
image.png
image.png
image.png
image.png
>>1885627
лучший gui - отсутствие gui
Аноним 21/12/20 Пнд 16:22:33 #889 №1886260 
>>1886223
Пока не допилят нормальную версионность, нет. У нас в разных проектах разные версии, свои сборки с недефолтными флагами, и свои либы.
Аноним 21/12/20 Пнд 16:27:03 #890 №1886265 
>>1871183 (OP)
где почитать про внутреннее устройство map, set, multi, unordered?
Аноним 21/12/20 Пнд 16:27:06 #891 №1886266 
>>1886260
Нам версионирование нужно только во внутренних либах, просто впилили говноскриптик, который создает новый пекедж и меняет vcpkg.json в проекте. Приятно.

Но ваще версионирование они обещали в этом месяце.
Аноним 21/12/20 Пнд 17:03:09 #892 №1886289 
>>1886253
TUI.
Аноним 21/12/20 Пнд 17:04:14 #893 №1886290 
>>1886265
В исходниках, опенсорс же.
Аноним 21/12/20 Пнд 17:07:02 #894 №1886291 
>>1886290
нахуй иди, со своим страусом и сатисом
Аноним 21/12/20 Пнд 17:19:18 #895 №1886297 
изображение.png
>>1886253
И видео ты смотришь вот так же?
Аноним 21/12/20 Пнд 17:24:33 #896 №1886301 
У меня есть прога на плюсах где просто дохуя вычислений надо сделать. Она по времени немного не заходит. (Вычислений столько, что дано аж 7 секунд). Может ли смена крестов на си без использования всяких std::min улучшить ситуацию?
Аноним 21/12/20 Пнд 17:26:09 #897 №1886304 
>>1886253
Ну вот да, в этом и главная проблема всего десктопа в линуксе.
Аноним 21/12/20 Пнд 17:26:38 #898 №1886306 
>>1886301
нет, алгоритмы чини, или параллель
Аноним 21/12/20 Пнд 17:27:56 #899 №1886308 
>>1886301
Вообще нет, компилятор-то один и тот же. Иди профилируй.
Аноним 21/12/20 Пнд 17:32:02 #900 №1886311 
>>1886306
> нет, алгоритмы чини
Там невозможно что то радикально изменить. Я посчитал примерно, какой минимум действий надо сделать и собственно его сделал
> или параллель
Так вроде нельзя на олимп проге
Аноним 21/12/20 Пнд 17:40:03 #901 №1886322 
>>1886311
Значит есть какая то подъёбка, которую ты не учёл
Аноним 21/12/20 Пнд 17:50:31 #902 №1886332 
>>1886311
>олимп проге
По идее они делаются так, что с правильным алгоритмом ты хоть на питоне решишь.
Аноним 21/12/20 Пнд 17:51:47 #903 №1886334 
>>1886332
Нет. Далеко не всегда. Там даже пишут часто, что жюри не гарантируют решение на всех языках программирования, а только на одном конкретном. Обычно это плюсы. Но может быть еще что то.
Аноним 21/12/20 Пнд 18:53:40 #904 №1886384 
>>1886297
mplayer под i3
Аноним 21/12/20 Пнд 20:12:07 #905 №1886473 
>>1886214
Неосилятор спок
Аноним 21/12/20 Пнд 20:43:47 #906 №1886494 
>>1886194
Конечно есть, в Гугле забанили?
Аноним 21/12/20 Пнд 20:44:11 #907 №1886495 
>>1886194
А теперь на языке ангелов, а не орков.
Аноним 21/12/20 Пнд 20:44:38 #908 №1886497 
Можно ли в QT крутить QGraphicsItem не вокруг оси OZ, а вокруг OX или OY? QTransform - это оно?
Аноним 21/12/20 Пнд 20:47:53 #909 №1886501 
>>1886473
Осилятор-шизоид, спок >>1886495
sageАноним 21/12/20 Пнд 20:57:38 #910 №1886514 
>>1886495
How to parse an array through a back index injector? So that without front indexing the console, but directly directly to the cache? Maybe it's in the standard library?
Аноним 21/12/20 Пнд 21:06:29 #911 №1886520 
maxresdefault.jpg
>>1886514
>but directly directly
Аноним 21/12/20 Пнд 22:33:23 #912 №1886587 
>>1886301
Показывай.
Аноним 21/12/20 Пнд 22:42:10 #913 №1886593 
>>1886495
Этот что-ли? https://en.wikipedia.org/wiki/Celestial_Alphabet
Аноним 21/12/20 Пнд 22:48:55 #914 №1886594 
C++ обфускаторы есть?
Аноним 21/12/20 Пнд 22:52:54 #915 №1886599 
>>1886594
компилятор, лул?
Аноним 21/12/20 Пнд 22:54:08 #916 №1886602 
>>1886599
Ну как исходник сделать нечитаемым?
Аноним 21/12/20 Пнд 22:54:38 #917 №1886603 
>>1886602
Лучше ответь на вопрос - зачем?
Аноним 21/12/20 Пнд 22:55:41 #918 №1886605 
>>1886603
Чтобы другие не смогли прочесть
Аноним 21/12/20 Пнд 22:56:15 #919 №1886606 
>>1886599
Если он умеет asm->c++. Но я о таком не знаю
Аноним 21/12/20 Пнд 22:56:27 #920 №1886607 
>>1886605
скомпилируй, выложи библиотекой?
Аноним 21/12/20 Пнд 22:57:08 #921 №1886608 
>>1886594
Обфускаторов нет, но есть методы защиты от реверса которые вполне себе работают.
Аноним 21/12/20 Пнд 22:57:12 #922 №1886609 
>>1886607
Нет. Нужно просто исходник сделать нечитаемым. Вот вся задача
Аноним 21/12/20 Пнд 22:58:50 #923 №1886611 
>>1886609
ну если ты настолько шиз - скомпилируй, потом декомпилируй обратно через HexRays.
Аноним 21/12/20 Пнд 23:02:20 #924 №1886613 
>>1886611
Можно ещё ради смеха через movfuscator пропустить.
Аноним 21/12/20 Пнд 23:13:05 #925 №1886615 
>>1886609
Денува.
Аноним 21/12/20 Пнд 23:43:00 #926 №1886630 
>>1886587
Зачем?
Аноним 21/12/20 Пнд 23:46:35 #927 №1886633 
А нельзя как то visual studio сказать, чтобы она код наполовину скомпилировала? Она же генерирует промежуточнвй какой то плюсовой код. Вот можно его получить? Это как раз и будет хуйней нечитаемой, да?
Аноним 21/12/20 Пнд 23:47:51 #928 №1886634 
>>1886633
ты можешь вменяемо обьяснить что ты хочешь сделать, шизик?
Аноним 21/12/20 Пнд 23:48:49 #929 №1886635 
>>1886633
Иди нахуй уже.
Аноним 21/12/20 Пнд 23:49:31 #930 №1886636 
>>1886609
Добавь в зависимости openssl и qt
Аноним 21/12/20 Пнд 23:49:58 #931 №1886637 
>>1886634
>>1886609
Hex rays платный же


Аноним 21/12/20 Пнд 23:55:36 #932 №1886640 
>>1886636
Boost еще
Аноним 21/12/20 Пнд 23:57:58 #933 №1886643 
>>1886637
Проприетарщики должны страдать
Аноним 21/12/20 Пнд 23:58:08 #934 №1886644 
>>1886637
Да вроде сдедали фри урезанную
Аноним 22/12/20 Втр 04:42:37 #935 №1886728 
>>1886633
/P https://docs.microsoft.com/en-us/cpp/build/reference/p-preprocess-to-a-file?view=msvc-160
Аноним 22/12/20 Втр 07:21:10 #936 №1886801 
>>1886497
Это ведь будет выглядеть как если ты меняешь scale по х или у, его смотри.
Аноним 22/12/20 Втр 14:25:57 #937 №1887099 
>>1871183 (OP)
какое новое значение bucket_count выбирает unordered_map когда решает сделать rehash?
Аноним 22/12/20 Втр 14:35:18 #938 №1887111 
>>1887099
В исходниках это должно быть.
Аноним 22/12/20 Втр 14:49:14 #939 №1887127 
>>1887111
всё, спс, спросил у твоей мамы, говорит что степень 8 резервирует
Аноним 22/12/20 Втр 14:56:36 #940 №1887134 
>>1887127
8
64
512
1024
2048
4096
8192
16384
32768
65536
131072
262144
524288
*
Аноним 22/12/20 Втр 15:05:09 #941 №1887137 
>>1887099
Если в стандарте написано сколько то столько.
Если нет, то сколько захотел автор компилятора
Аноним 22/12/20 Втр 19:08:22 #942 №1887404 
>>1871183 (OP)
в чём разница между deque и list?
Аноним 22/12/20 Втр 20:23:27 #943 №1887468 
>>1887404
deque - лист из векторов
Аноним 22/12/20 Втр 20:56:00 #944 №1887488 
Screenshot 2020-12-22 205251.jpg
Решил обмазаться говном и ПОКОМПИЛИРОВАТЬ gzdoom, и тута ошибка что _First это константа и ее нельзя присваивать, и это в стандартной билиотеке std::sort, а в других версиях если погуглить не было этого const, как вобще такое решать и откатить на старую STL библиотеку, ну пиздец же как вы на этом погромируете
Аноним 22/12/20 Втр 21:11:21 #945 №1887500 
>>1887488
Дебилушка, ты бы хоть полный текст ошибки вывалил, а не этот огрызок студийного парсера
Аноним 22/12/20 Втр 22:07:47 #946 №1887526 
Чтт быстрее: умножение или запись в память?
Аноним 22/12/20 Втр 22:20:37 #947 №1887534 
>>1887526
Да
Аноним 22/12/20 Втр 22:22:16 #948 №1887535 
>>1887526
Умножение
Аноним 22/12/20 Втр 22:22:47 #949 №1887536 
>>1887526
Сдвиг
Аноним 22/12/20 Втр 23:19:05 #950 №1887567 
войны синих крестов, кто из анонов с опытом 1-2+ года может просмотреть и указать на ошибки обосрать мой код? важный проект, уже чую говно от себя, еще совсем зеленый, нужна маломальская помощь...
Аноним 22/12/20 Втр 23:27:00 #951 №1887573 
>>1887567
Ты обратился по адресу. В этом треде собрались настоящие профессионалы, способные обоссать кого угодно, независимо от качества и даже наличия кода. Кстати, пошел нахуй.
Аноним 22/12/20 Втр 23:31:47 #952 №1887576 
>>1887573
ебать спасибо нахуй, а это совместимо со стандартом c++17? а то не хочу быть обоссаным не по стандарту
Аноним 22/12/20 Втр 23:43:03 #953 №1887582 
image.png
Как задоджить эту парашу? Есть ли способ? Не хочу зашквариться аккаунтом калософта. Очевидный совет перейти на линь очевиден но визуалка увы слишком удобная.
Аноним 22/12/20 Втр 23:51:18 #954 №1887583 
>>1887582
Сам нашёл, не благодарите
https://github.com/beatcracker/VSCELicense
Аноним 22/12/20 Втр 23:57:37 #955 №1887586 
>>1887582
Комьюнити скачать?
Аноним 23/12/20 Срд 00:07:35 #956 №1887588 
>>1887586
Глаза открой
Аноним 23/12/20 Срд 00:11:34 #957 №1887589 
>>1887588
Акк сделай. На левую почту если чего то боишься
Аноним 23/12/20 Срд 00:17:38 #958 №1887595 
>>1887589
Уже всё сделал без акка, вон даже поделился годнотой. Ебал я в этой конторе что-то заводить ещё.
Аноним 23/12/20 Срд 00:26:00 #959 №1887600 
>>1887582
>Не хочу зашквариться
>визуалка слишком удобная
Аноним 23/12/20 Срд 00:27:23 #960 №1887602 
>>1887600
Пердолинг ради пердолинга или написание кода. Что же выбрать...
Аноним 23/12/20 Срд 01:49:50 #961 №1887678 
>>1887582
Ее, афаик, еще гитхаб аккаунтом можно активировать
Аноним 23/12/20 Срд 09:51:54 #962 №1887817 
>>1887582
Vim + Clang Complete
Аноним 23/12/20 Срд 10:57:07 #963 №1887843 
изображение.png
Здарова бандиты. Какого хуя никампилицца?
https://godbolt.org/z/Gj9nfn
Аноним 23/12/20 Срд 11:17:14 #964 №1887851 
>>1887817
Имакс лучше
Аноним 23/12/20 Срд 11:24:10 #965 №1887858 
>>1887843
Рвалуе не эмплейсится? Сделай пуш.
Аноним 23/12/20 Срд 11:26:02 #966 №1887861 
Хотя ты там вообще хочешь ссылку на временную переменную запихать.
[...] Аноним 23/12/20 Срд 11:26:19 #967 №1887862 
пацаны, кто-нибудь за 500р сделать сможет на C++?
по срокам: до утра 24.12.

0.2.20 Выдача банком кредитов
Описание предметной области
Вы являетесь руководителем информационно-аналитического центра коммерческого банка. Одним из существенных видов деятельности Вашего банка является выдача кредитов юридическим лицам. Вашей задачей является отслеживание динамики работы кредитного отдела.
В зависимости от условий получения кредита, процентной ставки и срока возврата все кредитные операции делятся на несколько основных видов. Каждый из этих видов имеет свое название. Кредит может получить юридическое лицо (клиент), при регистрации предоставивший следующие сведения: название, вид собственности, адрес, телефон, контактное лицо. Каждый факт выдачи кредита регистрируется банком, при этом фиксируются сумма кредита, клиент и дата выдачи.
Классы объектов
Виды кредитов (Название, Условия получения, Ставка, Срок).
Клиенты (Название, Вид собственности, Адрес, Телефон, Контактное лицо).
Кредиты (Вид кредитов, Клиент, Сумма, Дата выдачи).
Развитие постановки задачи
Теперь ситуация изменилась. После проведения различных исследований выяснилось, что используемая система не позволяет отслеживать динамику возврата кредитов. Для устранения этого недостатка Вы приняли решение учитывать в системе еще и дату фактического возврата денег. Нужно еще учесть, что кредит может гаситься частями, и за задержку возврата кредита начисляются штрафы.
Аноним 23/12/20 Срд 11:49:23 #968 №1887908 
15559612668860.png
15561252596070.png
>>1887862
>по срокам: до утра 24.12
Аноним 23/12/20 Срд 12:17:48 #969 №1887935 
>>1887862
>Вы являетесь руководителем информационно-аналитического центра коммерческого банка.
>кто-нибудь за 500р сделать сможет на C++?
Проорал на всю квартиру
Аноним 23/12/20 Срд 12:48:31 #970 №1887984 
>>1887935
Всё честно. Тут работы на полчаса работы. Примерно столько же получает за полчаса синьор c++.
Аноним 23/12/20 Срд 12:51:19 #971 №1887994 
>>1887984
Такую парашу никто на c++ делать не будет. C++ - язык для написания кодеков, операционных систем, браузеров.
Аноним 23/12/20 Срд 12:53:37 #972 №1887999 
1494570395813.webm
>>1887984
За полчаса тебе сделают только подобное видеорилейтеду.
Тут недели две уйдет только на сбор требований и составление ТЗ, выбор стека.
Аноним 23/12/20 Срд 12:54:45 #973 №1888005 
>>1887678
Не подскажешь где такое сделать? Ник и емейл не подошли, при попытке создать с этим емейлом вообще повисло к хуям.
[...] Аноним 23/12/20 Срд 13:06:15 #974 №1888019 
>>1887862
ну чего, эту хуйню никто не напишет?
вам же легко, час работы, ну два.
в кфц на 500 сходите: вечером просрётесь.
а я работу утром сдам, все в плюсе.
если есть желание, напишите: vk.com/id535378572
Аноним 23/12/20 Срд 13:14:48 #975 №1888025 
>>1888019
Я пишу.
[...] Аноним 23/12/20 Срд 13:17:37 #976 №1888035 
>>1888025
хто ты? напиши вк мне
Аноним 23/12/20 Срд 13:18:59 #977 №1888040 
>>1888035
Когда у меня work time я не пользуюсь social network
Аноним 23/12/20 Срд 13:26:17 #978 №1888054 
>>1888019
Никому не интересно чтобы потом высрался недоучка из за которого самолеты падают.
[...] Аноним 23/12/20 Срд 13:30:35 #979 №1888064 
>>1888054
чел ты... мне просто нужно сдать эту работу, я ваще в айти ваше не собираюсь, шутник блять.
Аноним 23/12/20 Срд 13:33:36 #980 №1888066 
Короче начал слушать цикл лекций от майл сру на тему углублённого с/с++. Дошёл до шаблонов, и извращений с ними, знатно охуел. Стоит ли залезать в них глубже или нет? До этого вроде всё понятно объяснялось.

Ссылка на кусок курса https://youtu.be/6Gl09VEwVeQ
Аноним 23/12/20 Срд 13:48:19 #981 №1888085 
image.png
>>1888066
>пик
борщехлёб
Аноним 23/12/20 Срд 14:22:01 #982 №1888134 
>>1888066
Пролистал бегло, ну там сложность примерно уровня hello world.
Аноним 23/12/20 Срд 14:22:26 #983 №1888135 
>>1887862
Сделаю за 400
[...] Аноним 23/12/20 Срд 14:49:51 #984 №1888179 
>>1888135
вк бы написал, выше указывал
Аноним 23/12/20 Срд 14:58:56 #985 №1888188 
>>1888179
А за 300?
Аноним 23/12/20 Срд 14:59:38 #986 №1888190 
>>1888188
Давай за бесплатно
[...] Аноним 23/12/20 Срд 15:01:14 #987 №1888191 
>>1888188
предлагаю, чтобы ты всё сделал, скинул мне проект и мне же заплатил.
Аноним 23/12/20 Срд 15:09:59 #988 №1888208 
>>1888191
Неправильный ответ.

Тракторист идет к тебе.
Аноним 23/12/20 Срд 15:55:07 #989 №1888254 
ребзя, может кто помочь с кр по с++? 1 курс вузика, думаю нетрудно
плачу 450р, тг @Sibir_yazva51
Аноним 23/12/20 Срд 15:57:51 #990 №1888256 
>>1888254
Больше чем за 100 не буду.
Аноним 23/12/20 Срд 16:10:07 #991 №1888268 
>>1887862
>>1888254
Мартир, вернись! Вкатыши хуеют.
Аноним 23/12/20 Срд 18:35:54 #992 №1888426 
image.png
Почему оно меня обижает......... я же дал ему всё! Ну что ему блят нужно! Почему оно не работает!!!!!!!!!!!!!!
Аноним 23/12/20 Срд 18:41:47 #993 №1888437 
>>1888426
Слышь, а может быть ты весь код запостишь, не?
Аноним 23/12/20 Срд 18:43:20 #994 №1888438 
>>1888437
https://pastebin.com/ed4WBGFE
Аноним 23/12/20 Срд 18:48:19 #995 №1888444 
>>1888426
А operator<< кто за тебя писать будет?
Аноним 23/12/20 Срд 18:48:59 #996 №1888447 
>>1888438
>int main() {
class person {
Хуя дебил
Аноним 23/12/20 Срд 18:53:27 #997 №1888451 
>>1888438
>cout >>> listperson [0];
Уно
>https://ravesli.com/urok-133-peregruzka-operatorov-vvoda-i-vyvoda/
Дуо
>https://ravesli.com/urok-138-peregruzka-operatora-indeksatsii/
Трес
Аноним 23/12/20 Срд 18:53:57 #998 №1888453 
>>1888451
Пидорасы на макаках. Короче сделай так: cout << listperson [0];
Аноним 23/12/20 Срд 20:48:42 #999 №1888607 
Эх, чичас бы перекат.
Аноним 23/12/20 Срд 20:59:02 #1000 №1888618 
>>1888607
До 1500 хотя бы сидим, хули ноешь.
sageАноним 23/12/20 Срд 21:04:26 #1001 №1888625 
>>1888618
Я безумно хочу перекат.
Аноним 23/12/20 Срд 21:06:04 #1002 №1888628 
>>1888626 (OP)
>>1888626 (OP)
>>1888626 (OP)
>>1888626 (OP)
>>1888626 (OP)
>>1888626 (OP)
>>1888626 (OP)
>>1888626 (OP)
>>1888626 (OP)
>>1888626 (OP)
>>1888626 (OP)
>>1888626 (OP)
>>1888626 (OP)
>>1888626 (OP)
>>1888626 (OP)
>>1888626 (OP)
>>1888626 (OP)
Аноним 23/12/20 Срд 22:25:54 #1003 №1888757 
>>1888628
Дождался бы хоть 1024 поста
Аноним 23/12/20 Срд 22:29:41 #1004 №1888765 
>>1871183 (OP)
Щас в перший раз за несколько месяцев зашел на хабр и внезапно обнаружил, что мне с нихуя дали возможность пригласить одно тело. Не пойму за що. У меня всего одна статья с 29 голосами и рейтинг 8. Активность на хабре около нулевая последний год. У кого сейм?
Аноним 24/12/20 Чтв 05:52:29 #1005 №1888942 
shapka1cppfix.jpg
https://2ch.hk/pr/res/1888941.html
ПЕРКiT
https://2ch.hk/pr/res/1888941.html
ПЕРКiT
https://2ch.hk/pr/res/1888941.html
ПЕРКiT
https://2ch.hk/pr/res/1888941.html
ПЕРКiT
Аноним 24/12/20 Чтв 19:24:56 #1006 №1889652 
изображение.png
изображение.png
Помогите, как сделать текст читабельным? Ощущение, будто после каждой буквы пробел стоит. Заходил в свойства консоли отладки и менял шрифты, но "пробелы" все равно остаются.
Заодно зацените, это я сам написал (почти)
Аноним 24/12/20 Чтв 20:47:19 #1007 №1889752 
>>1887858
Не пушнется.

Проблема была в отсутствии move конструктора
Аноним 24/12/20 Чтв 20:52:28 #1008 №1889755 
Алле, легитимный перекат уже был

>>1888626 (OP)
>>1888626 (OP)
>>1888626 (OP)
>>1888626 (OP)
>>1888626 (OP)
>>1888626 (OP)
>>1888626 (OP)
>>1888626 (OP)
>>1888626 (OP)
>>1888626 (OP)
>>1888626 (OP)
>>1888626 (OP)
Аноним 25/12/20 Птн 00:03:31 #1009 №1889983 
>>1889652
Похоже у тебя шрифты системы ебнутые какие то. Это не к плюсам вопросы, а к винде
Аноним 25/12/20 Птн 17:12:27 #1010 №1890722 
Как посчитать минимальную асимптотику алгоритма? Ну или сколько действий чисто математически нужно совершить для решения задачи
Аноним 26/12/20 Суб 01:58:46 #1011 №1891064 
>>1890722
считай циклы, чем больше вложенных циклов, тем хуёвее
Аноним 10/03/21 Срд 02:22:52 #1012 №1962488 
>>1871463
>>1871503
Одна из немногих причин использовать goto:
https://gcc.gnu.org/onlinedocs/gcc/Labels-as-Values.html
https://eli.thegreenplace.net/2012/07/12/computed-goto-for-efficient-dispatch-tables
Аноним 10/03/21 Срд 21:47:22 #1013 №1963177 
>>1962488
А ты вовремя ответил
comments powered by Disqus

Отзывы и предложения