Главная Настройка Mobile Контакты NSFW Каталог Пожертвования Купить пасскод Pics Adult Pics API Архив Реквест доски Каталог стикеров Реклама
Доски


[Ответить в тред] Ответить в тред

Check this out!


[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 652 | 34 | 188
Назад Вниз Каталог Обновить

С++ #58 Аноним 16/08/17 Срд 16:05:55  1045411  
3ebb5cc99997833[...].jpg (32Кб, 308x308)
Вместо шапки - https://github.com/sosachbot/cppthreadhat/wiki
Ответы на все вопросы - http://en.cppreference.com/w/ http://www.cplusplus.com/reference/
Песенка - https://youtu.be/5EHPETP8lZ8
Прошлый - https://2ch.hk/pr/res/1036675.html
топ вопросов прошлого треда 16/08/17 Срд 16:08:07  1045414
14556372818310.png (147Кб, 604x604)
Во что компилится С++, что такое Си с классами и как вкатиться джуном на плюсы.
Аноним 16/08/17 Срд 17:35:45  1045453
https://www.quora.com/How-much-money-does-Bjarne-Stroustrup-make-in-Morgan-Stanley
пришел таки к успеху! (но на стрижку до сих пор жопит)
Аноним 16/08/17 Срд 18:13:12  1045473
>>1045414
>>как вкатиться джуном на плюсы.
Не мыть голову месяц
Аноним 16/08/17 Срд 18:44:21  1045496
>>1045473
а ножки можно?
Аноним 16/08/17 Срд 19:41:26  1045513
>>1045411 (OP)
Ну что ребят, запилим что нибудь годное? Может свой БолженОS или компилятор машинного кода?
Аноним 16/08/17 Срд 20:01:45  1045520
>>1045473
Не смешно, я правда вкатывался джуном на плюсы.
Аноним 16/08/17 Срд 20:19:10  1045532
>>1045411 (OP)
Опять какой-то петух высрал кириллическую С в заголовок.
>>1045343
>- Стабильного ABI
Бинарнопетух подъехал. Нахуй надо? Есть ещё один язык, кроме ассемблера и псевдоассемблера, у которого это есть?
>>1045350
Надо разделить всю программу на достаточно маленькие для тебя части и везде чекать наличие ошибки. Другого способа получить строго defined-поведение программы нет. Посему у std::thread нету никакого terminate.
>>1045369
Ты путаешь ретурн-значение с аварийным завершением.
>>1045513
>компилятор машинного кода?
У меня тут идея. Надо провести битву самодельных компиляторов для x86, тестируется:
- производительность собранных экзешников в разных задачах
- производительность экзешников, собранных другими компиляторами-участниками и транслированных в ассемблер.
каково блядь, кому только это надо?
Аноним 16/08/17 Срд 20:22:49  1045533
>>1045414
Ну это что то уровня
Питон это си с абстракциями
Аноним 16/08/17 Срд 20:48:44  1045545
>>1045532
> битву самодельных компиляторов для x86
Я только за анон, какие сроки выполнения, условия?
Если найдутся еще желающие, чтобы участников было хотя бы 3-4 то можно провести.
Аноним 16/08/17 Срд 21:09:40  1045560
>>1045545
Я пошутил, конечно, так как создание компилятора (с нуля?) - огромный труд. Просто спетросянил в ответ на петросянство.
Аноним 16/08/17 Срд 21:10:44  1045562
>>1045520
Чёлкой сможешь хлеб отрезать?
Аноним 16/08/17 Срд 21:13:30  1045564
>>1045545
Ну, я думаю где-то год минимум. Может полтора. Если компилить скажем сишку или питон. Если кресты - то я ебал его нога и идет оно нахуй.
Аноним 16/08/17 Срд 21:18:56  1045567
>>1045520
И как?
Аноним 16/08/17 Срд 21:39:40  1045576
Ссылка на базовый класс связана с производным: base& bRef = d, где d - объект производного класса. В производном классе есть метод e(), которого нет в базовом классе. Я делаю каст static_cast<derived&>(bRef).e() и вызываю метод e(). Какого хуя он вызывается, если в базовом классе его нет?

https://ideone.com/NzK90p
Аноним 16/08/17 Срд 21:40:15  1045577
Аноны, что здесь происходит?
int x[]= {3, 5, 8};
cout << (*x)["my string"+3];
Аноним 16/08/17 Срд 21:47:55  1045582
>>1045567
Вкатился, вот с вами тута
Аноним 16/08/17 Срд 21:56:40  1045588
>>1045577
Так понимаю, это эквивалентно этому:
int x[]= {3, 5, 8};
cout << ("my string")[*x+3];
Аноним 16/08/17 Срд 21:58:46  1045589
>>1045588
точно также, как x[2] = 2[x] = 8 в данном случае
Аноним 16/08/17 Срд 22:02:09  1045591
>>1045582
Сколько тебе здесь платят?
Аноним 16/08/17 Срд 22:05:16  1045592
>>1045588
Да, эквивалентно
Выводится i

Просто ньюфаная и не понимаю как это работает
Аноним 16/08/17 Срд 22:05:42  1045593
>>1045591
Пасскодами
Аноним 16/08/17 Срд 22:17:40  1045598
>>1045576
Какое-то странное поведение, если в производном классе создать поле с дефолтным значением и добавить в распечатке в e() его, то static_cast<derived&>(bRef).e() здесь он всегда вместо значения будет 0 пропечатывать.
Аноним 16/08/17 Срд 23:27:27  1045629
>>1045576
e() - невиртуальный метод. Компилятор просто взял и подставил вызов функции, без шароебли по vtable.
Давай с виртуальной попробуй.
А с нулями тебе просто повезло на пустую память по смещении от адреса указателя на объект
Аноним 16/08/17 Срд 23:34:39  1045635
>>1045564
Может, Схему? Парсить S-выражения может школьник, стандарт малюсенький, а оптимизировать можно дохрена.
Аноним 16/08/17 Срд 23:38:29  1045640
>>1045629
Скажи мне, как устроены объекты в крестах? Я так понимаю, ссылки на виртуальные методы лежат прямо в объекте? Как они отделены от данных? Почему бы просто не носить в объекте ссылку на тип?
Аноним 16/08/17 Срд 23:42:49  1045644
>>1045640
В vtable лежит ссылка на typeinfo. А если тип не полиморфный то typeinfo статически определяется на этапе компиляции. Больше, собственно, ничего характеризующего тип не лежит. Да и это опционально и отключабельно в компиляторе.
Аноним 16/08/17 Срд 23:45:13  1045645
>>1045644
Нет, я имею в виду, что все ссылки на методы класса могли бы лежатьтв одном месте, например, а не таскаться длинной бородой заткаждцм объектом
Аноним 16/08/17 Срд 23:47:20  1045647
>>1045640
Много писать, да и лень с телефона. Вот здесь с примерами и в целом можно разобраться - https://habrahabr.ru/post/51229/
Аноним 16/08/17 Срд 23:47:34  1045648
>>1045645
Так vtable и есть один на класс. В объекте только указатель.
Аноним 16/08/17 Срд 23:49:56  1045649
>>1045648
Ну ок тогда.
Аноним 16/08/17 Срд 23:54:49  1045653
>>1045645
Так и есть - vtable создаётся одна для класса, в объекте хранится лишь указатель на vtable. В конструкторе, указатель устанавливается на vtable класса, в деструктор к устанавливается в vtable родительского класса перед вызовом деструктора родителя.
Аноним 16/08/17 Срд 23:57:35  1045655
1.png (6Кб, 634x330)
2.png (9Кб, 659x436)
Новый ньюфаг в треде.

Пытаюсь написать функцию, которая находит наименьшее общее кратное. Иду простым лаконичным путем (пик 1) - нихуя не работает, судя по дебаггеру, луп просто игнорируется. Но do-while(true) луп с той же логикой (пик 2) отрабатывает нормально.

Что за чертовщина? Что я делаю не так?
Аноним 17/08/17 Чтв 00:02:55  1045659
>>1045655
В первом случае заменил && на ||
Аноним 17/08/17 Чтв 00:04:33  1045662
>>1045655
Не (А и б) равно (не а или не б).
Аноним 17/08/17 Чтв 00:08:16  1045664
>>1045659
>>1045662
Ох, действительно. А еще работает
>while (! (max % a == 0 && max % b == 0)) {}

Теперь буду сидеть и пытаться все это осознать.
Аноним 17/08/17 Чтв 01:58:39  1045698
>>1045576
На сколько мне известно, смотри:
Имеется ссылка класса Base.
Потом ссылка Base кастится в ссылку derived, но участок памяти до сих пор ссылается на объект Base.
Значит теперь у нас вместо вот этого: Base & bRef = b, вот это derived& bRef = b. А имена функций и члеов начинают искаться из области видимости типа(в нашем случае bRef - у него теперь тип derived, то есть ищется функция или имя в области видимости derived). Вот почему вызвалась e.
Аноним 17/08/17 Чтв 02:08:31  1045701
>>1045576
Я тот анон, который ответил выше. Ты сам в вопросе ошибся. bRef = b, а не d.
Аноним 17/08/17 Чтв 02:19:23  1045706
>>1045664
Вот тебе как понять. Пример твоего.
while(!(true && false)) - это пример как у тебя может получиться. Чтобы работал цикл, нужно чтобы в главных скобках был true. Так как true && false рано false, то отрицание (!) превращает из false в true. Если нужно подробнее, обращайтесь.
Аноним 17/08/17 Чтв 11:16:56  1045784
Как обновить g++ под Бубунтой до 17-ой версии?
Аноним 17/08/17 Чтв 12:22:31  1045798
>>1045784
sudo apt-get upgrade g++
Аноним 17/08/17 Чтв 13:25:55  1045822
>>1045576
> Какого хуя он вызывается, если в базовом классе его нет?
Статик каст не проверяет корректность преобразования, это в стандарте написано. Привет UB (или как там?). Используй dynamic_cast, тебе в рантайме это выплюнется.
>>1045598
ALO UB ETO TI
>>1045784
Нету у G++ такой версии, блядь (или ты про пакет из новой Убунты?).
Аноним 17/08/17 Чтв 14:02:59  1045839
>>1045784
Найди сторонний PPA репозиторий, если в официальном нет, или на крайняк сам сбилди, кроме --prefix можно вообще не заморачиваться и не указывать опции
Аноним 17/08/17 Чтв 14:38:37  1045864
Ребят, что почитать чтобы взяли джуном?
вышки нет.. сори
Аноним 17/08/17 Чтв 14:51:41  1045871
>>1045864
Абсолютно все книги в шапке и еще многое другое
Аноним 17/08/17 Чтв 14:54:22  1045875
>>1045864
И чтоб стандарт от зубов отскакивал.
Аноним 17/08/17 Чтв 14:59:51  1045877
>>1045576
https://wandbox.org/permlink/MO0KQlXvfO1aU9xm
Аноним 17/08/17 Чтв 15:22:19  1045881
>>1045864
Как понять, что я джун? Если год назад устраивался на работу как стажер и до сих пор работаю
Аноним 17/08/17 Чтв 16:26:18  1045899
>>1045881
Если паттерны используешь как ебалас
Аноним 17/08/17 Чтв 17:53:08  1045925
>>1045350
Олсо, специально для этого сделаны эксепшены: всё то, что ты считаешь ненадёжным, ты оборачиваешь в try-catch и ловишь, при этом перед каждым вызовом небезопасной функции твои объекты должны быть в валидном состоянии (т.е. у тебя не будет ошибок и утечек, если любая ненадёжная функция завершится). Это достигается абстрагированием.
Аноним 17/08/17 Чтв 17:59:04  1045926
>>1045899
А если вообще не использую?
Аноним 17/08/17 Чтв 18:42:21  1045936
>>1045926
Ты их используешь, но не до конца понимаешь этого. И я не в плохом смысле о них говорил, паттерны - они везде, как бы ты ни хотел от них избавиться. Правильный дизайн приложения обеспечивает надежность/быстродействие/модифицируемость/тестируемость/защищенность/масштабируемость/робастность/... (нужное подчеркнуть).
Некоторые местные петухи кукарекают по поводу экономии лишних байт и тактов процессора, но ты их лучше не слушай. Грамотно составленный скелет приложения (архитектура или конструкция) и правильно выбранные алгоритмы провернут на хую всю их работу над сдуванием пылинок с полированных яиц кота.
Аноним 17/08/17 Чтв 19:04:48  1045941
>>1045926
Паттерн - это вид взаимодействия между объектами. Ты чаще всего используешь ограниченный набор этих взаимодействий, то есть у тебя в голове какие-то паттены (шаблоны взаимодействия) есть. Где-то можно узнать, как они называются - почитать книгу какую-нибудь.
Аноним 17/08/17 Чтв 19:33:23  1045948
>>1045925
>всё то, что ты считаешь ненадёжным, ты оборачиваешь в try-catch
Это Java-macaque-style. В C++ есть RAII и если ты пишешь try-catch блоки, то значит ты что-то делаешь не так.
Аноним 17/08/17 Чтв 19:36:04  1045949
>>1045936
> паттерны - они везде, как бы ты ни хотел от них избавиться
Когда в руках молоток — всё вокруг кажется гвоздями.
Аноним 17/08/17 Чтв 19:39:48  1045951
>>1045948
>если ты пишешь try-catch блоки, то значит ты что-то делаешь не так
Разве RAII позволяет отказаться от try-catch
Аноним 17/08/17 Чтв 19:41:10  1045953
>>1045951
Практически полностью.
Аноним 17/08/17 Чтв 19:43:41  1045955
>>1045953
Что в промышленном коде используется обычно?
Аноним 17/08/17 Чтв 19:44:55  1045956
>>1045955
https://ru.wikipedia.org/wiki/G-code
Аноним 17/08/17 Чтв 20:17:10  1045965
>>1045948
Я подумал - ты прав. Если вся иерархия объектов и функций сделана так, что вызов любой ненадёжной функции оставляет их в валидном виде - да, трайкетч для строго определённого поведения не нужен.
Аноним 17/08/17 Чтв 20:51:05  1045974
>>1045948
Если я могу обосраться из-за того, что new бросит std::bad_alloc, то как мне обойтись без try-catch?
Аноним 17/08/17 Чтв 20:52:39  1045975
>>1045936
Правильно, блядь, пусть всё к хуям тормозит, зато обдрочимся на ебучий скелет, который нахуй никому не сдался
Аноним 17/08/17 Чтв 20:53:16  1045976
>>1045974
не использовать new, но это не делает концепцию исключений менее уебищной (если мы говорим о языке на котором пишем высоконагруженные и надежные системы)
Аноним 17/08/17 Чтв 20:54:45  1045978
>>1045976
чем плохи исключения?
Аноним 17/08/17 Чтв 21:02:27  1045980
Анон, как можно в двух словах объяснить разницу между указателями и ссылками, упомянув const?
Разница в том, что константные объекты не связываются с неконстантными ссылками?
Аноним 17/08/17 Чтв 21:02:52  1045981
>>1045978
1)слишком implicit. ты не можешь просто посмотрев на код понять где и что может пойти нет так, надо смотреть документацию. Из этого проблемы аля "тут чёто какойто экспшн выпал внезапно, а мы забыли трайкетч написать". В этом плане в Rust всё сделано просто прекрасно, монады, match, просто сказка а не язык.
2) Очень сильно зависит от RAII, а RAII применимо далеко не всегда, я даже элементарно не могу в деструкторе класса File написать close(fd); потому-что при попытке записи временного буфера на диск на этом диске может закончиться место, и что делать непонятно (можно кинуть экспшн из деструктора))))))))))
Сугубо личное мнение, может кому-то эта концепция и нравится
Аноним 17/08/17 Чтв 21:13:00  1045983
>>1045981
>монады
В расте нет Higher-Kinded Types.
Аноним 17/08/17 Чтв 21:30:31  1045990
>>1045974
Никак.
>>1045980
Константная ссылка - это петросянство. Привести указатель на конст у указателю не на конст без статик-каста или реинтерпрета какого-нибудь ты не сможешь. В этом отличия указателя от ссылки нет.
Аноним 17/08/17 Чтв 21:44:58  1045997
>>1045974
nothrow
Аноним 18/08/17 Птн 02:33:31  1046090
>>1045980
По идее, ссылки не должны менять то, на что они ссылаются. А вот указатель может менять то, на что он ссылается.
Аноним 18/08/17 Птн 03:56:28  1046096
>>1045980
Ссылки - для стековых объектов, указатели - для хиповых. Не константные - для выходных параметров (т.е. этот параметр изменяется в функции, см. out/ref C#), константные - для входных.
Аноним 18/08/17 Птн 05:13:10  1046106
>>1045980
ссылки - алиасы к переменным (еще одно имя), указатель - еще один объект, который модет указывать на другой объект. мы можем биндить конст ссылку к не конст переменной но не наоборот. по конст ссылке мы не можем вызывать не конст методы, но можем их вызывать непосредственно к неконст объекту. А вообще, это с практикой приходит
Аноним 18/08/17 Птн 05:28:25  1046107
>>1045980
Принципиальная разница одна - ссылка присваивается один раз при инициализации, и потому нельзя менять куда она ведет (без грязных трюков). В остальном разницы нет.
Аноним 18/08/17 Птн 05:34:07  1046111
>>1045980
>как можно в двух словах объяснить разницу между указателями и ссылками
Указатель — объект, а ссылка — нет.
Аноним 18/08/17 Птн 05:35:41  1046112
>>1045981
И как же Rust решает проблему закончившегося места на диске?
Аноним 18/08/17 Птн 05:42:08  1046113
>>1045974
Зачем тебе ловить bad_alloc, посмотреть на него?
Аноним 18/08/17 Птн 06:05:02  1046117
>>1046112
Он не дает тебе забыть о том, что что-то может пойти не так. Всё время приходится или матчить, или траить, или анврапить
Аноним 18/08/17 Птн 07:29:42  1046122
>>1046117
Ок. Получили Err(NOSPC) при закрытии. Что дальше?
Аноним 18/08/17 Птн 07:45:38  1046126
image.png (39Кб, 616x197)
>>1045981
>ты не можешь просто посмотрев на код понять где и что может пойти нет так, надо смотреть документацию.
Просто пиши так, чтобы код был exception-neutral.

> Из этого проблемы аля "тут чёто какойто экспшн выпал внезапно, а мы забыли трайкетч написать".
трайкетч везде писать не надо, C++ это не Java.

> Очень сильно зависит от RAII, а RAII применимо далеко не всегда, я даже элементарно не могу в деструкторе класса File написать close(fd); потому-что при попытке записи временного буфера на диск на этом диске может закончиться место, и что делать непонятно
> В этом плане в Rust всё сделано просто прекрасно
Охотно верю, что в Rust сделано прекрасно. На пике демонстрация этого «прекрасно».
https://github.com/rust-lang/rust/blob/6ccfe68076abc78392ab9e1d81b5c1a2123af657/src/libstd/sys/unix/fd.rs#L240
Аноним 18/08/17 Птн 08:13:39  1046132
>>1046122
> при закрытии. Что дальше?
>
А дальше месэдж бокс какой нибудь, или ещё что-то, зависит от логики, лал

>>1046126
Я и не говорил что в расте охуительная стандартная библиотека особенно мне нравится момент, когда ты говоришь Vec::push({}), а он паникует)). Имел ввиду, что в расте куда больше возможностей для реализации надежных приложений, чем в С++.
Разумеется и на плюсах прекрасно работают сервера, это лишь моя точка зрения)
Аноним 18/08/17 Птн 08:38:43  1046134
>>1046132
>А дальше месэдж бокс какой нибудь
Файл открывается/закрывается глубоко в кишках какой-то либы, которая о GUI ничего не знает (и знать не должна).
Откуда ей знать, что надо показать «месэдж бокс какой нибудь»?
Аноним 18/08/17 Птн 09:10:50  1046145
>>1046134

Я не понимаю в чем вопрос.
Как сообщить либе что делать если файл не закрылся? Колбэки, события и тд и тп.
Или я что-то не понял?
Аноним 18/08/17 Птн 09:20:06  1046146
>>1046145
>Колбэки
ЛОЛ! Можно перефразировать: «Из этого проблемы аля "тут чёто какая-то ошибка выпала внезапно, а мы забыли колбэк дёрнуть".»
Что насчёт асинхронности, реентерабельности и поддерживаемости такого кода?

> Или я что-то не понял?
Как писать поддерживаемый софт.
Аноним 18/08/17 Птн 09:27:22  1046147
>>1046146
не использовать дырявые абстракции и плохие архитектуры ¯ \ _ (ツ) _ / ¯
Аноним 18/08/17 Птн 10:04:44  1046166
>>1046147
Ну так зачем ты предлагаешь архитектуру на колбэках тогда?
Аноним 18/08/17 Птн 11:47:02  1046193
Как дебагать на линуксе в g++?
Аноним 18/08/17 Птн 12:07:06  1046199
>>1046193
G D B
D
B
Аноним 18/08/17 Птн 12:13:47  1046203
>>1046193
>Как дебагать на линуксе в g++?
>
собрать со специальным ключом для дебага-g вроде, и дебажить по заветам >>1046199
Аноним 18/08/17 Птн 12:23:02  1046206
>>1045951
>>1045953
хм, разве raii не является костылем для того чтобы использовать исключения?

Аноним 18/08/17 Птн 14:55:59  1046271
image.png (25Кб, 951x108)
image.png (20Кб, 192x680)
Помогите запустить qtCreator+Cmake+LLVM. Я уже ничего не понимаю в этом процессе сборки программ.

Связка qtCreator+Cmake+MinGW работает. Пытаюсь по аналогии запустить c LLVM. Меняю компилятор с/с++ на llvm, и он жалуется на какой-то сmake generator. Список возможных вариантов на второй картинке и ни один из них не работает и вообще ничерта не понятно что и где нужно прописать, куда что установить, чтоб оно заработало.
Что ещё за генератор такой и зачем оно нужно? Компилятор компилирует файлы, CMake говорит что и в какой последовательности этому компилятору компилировать. Разве там есть что-то ещё? Чёрт ногу сломит, что мне прочитать, что мне сделать, чтоб эта хрень стала понятнее?
Аноним 18/08/17 Птн 15:12:53  1046277
>>1046271
>CMake говорит что и в какой последовательности этому компилятору компилировать
Вот тут-то ты и проебался. Симейк никому ничего не говорит, он просто пилит мейкфайлы за тебя. То есть симейковый мейкфайл + генератор мейкфайлов = сгенерированный мейкфайл под конкретную платформу. Дальше сам разберешься.
Аноним 18/08/17 Птн 15:44:50  1046306
>>1046271
ЕМНИП, у LLVM для винды (?) нету make. LLVM на винду надо устанавливать вместе c MinGW, чтобы был make.
Аноним 18/08/17 Птн 16:15:52  1046322
>>1046306
Clang есть, он к MSVC каким-то образом липнет. Я так понимаю, он и pdb файлы мелкософтовские может жрать, вот это я понимаю совместимость.
Аноним 18/08/17 Птн 16:17:15  1046325
>>1046271
что, сучка, столкнулся с первыми реальными задачами и проблемами, отличными от "хелло ворлд" и уже заныл?
а? это, блядь, твоя работа, иди сука и копай вглубь
Аноним 18/08/17 Птн 16:20:18  1046327
>>1045997
Разве если где-то внутри nothrow функции возникнет исключение которое мы забыли заткнуть кечем, оно не сломает свертку стека, что закрашит программу?
Аноним 18/08/17 Птн 16:53:12  1046356
>>1046322
Clang можно использовать либо с MSVC, либо с MinGW, сам по себе clang не будет работать
Аноним 18/08/17 Птн 18:31:04  1046414
>>1046271
Какие же спермобляди дегенераты, пиздец просто.
Аноним 18/08/17 Птн 18:42:23  1046420
>>1046327
Ты наверное перепутал nothrow с noexcept.
nothrow можно передать как аргумент для new, например auto pVar = new (std::nothrow) Type. В случае ошибки new вернёт нулевой указатель.
Если указывать noexcept для ф-и, и внутри неё ты захочешь вызвать ф-ю, которая может бросить исключение, то компилятор должен об этом сообщить.
Аноним 18/08/17 Птн 19:05:21  1046430
>>1046199
Но ведь хуйня же.
Аноним 18/08/17 Птн 19:12:50  1046433
>>1046420
> компилятор должен об этом сообщить
Кажись я погорячился на этот счет.
Аноним 18/08/17 Птн 19:20:02  1046436
>>1046327
Нет, оно просто вызовет std::terminate и сразу завершит твою программу.
Аноним 18/08/17 Птн 19:22:32  1046437
>>1046420
Не должен. программисту лучше знать, что вот конкретно в этих условиях оно по-любому не бросит, отвечаю. Поэтому спокойно зови что угодно, но если что - сам виноват.
Аноним 18/08/17 Птн 20:02:00  1046464
>>1046327
Если вызывается std::terminate то никаких гарантий того, что стек будет разворачиваться в обратную сторону и будут вызываться деструкторы объектов нет, потому что это нахуй не нужно зачастую, ведь система подчистит ресурсы мертвого процесса сама. Веселуха будет, если ты кинешь исключение во время обработки другого исключения, например:
у класса a есть конструктор и деструктор, второй кидает исключение, есть также класс b, который наследуется от класса a и в конструкторе кидает исключение. Если ты поместишь объект b в область видимости try блока, то сначала вызовется конструктор а, потом вызовется конструктор b и бросит исключение. Стек начинает раскручиваться в обратную сторону, попутно вызывая деструкторы для всего, что успел инициализировать в try-блоке в порядке, обратном их появлению. И тут ... ннна нахуй ... деструктор b вызывает деструктор a и кидает еще одно исключение, вот это неожиданность. Конечно, фактически твоя программа вышла за пределы try блока и поэтому исключение перехвачено не будет, поэтому будет вызвана std::terminate со всеми вытекающими.
Так что вот поэтому не рекоммендуется кидать исключения в деструкторах, я еще ни разу не видел, чтобы так делалось.
Аноним 18/08/17 Птн 22:31:03  1046521
Если ли смысл вкатываться в асемблер и низкоуровневое программирование?
Аноним 18/08/17 Птн 22:47:37  1046537
>>1046521
зависит от твоего текущего бекграунда
Аноним 18/08/17 Птн 23:56:53  1046571
>>1046537
читал пару книг из шапки
Аноним 19/08/17 Суб 10:49:22  1046712
>>1046521
Смотря зачем. Если из личного любопытства, то есть. Если ты надеешься, что тебе это где-то пригодится, то это вряд ли
Аноним 19/08/17 Суб 13:14:41  1046799
>>1046571
ну, асм щас нужен реверсерам, в частности вирусным аналитикам, это не программирование, знаний надо дохуища (хотя на работе изо дня в день будешь заниматся монотонной заябывающей рутиной), платят меньше чем кодеру с++, а кодеру крестовику платят меньше чем пхп-обезяне
низкоуровневое программирование? это че? если микроконтроллены, то надо знать микроэлектронику, тоже вообще отдельный пласт знаний от программирования, знать надо опять дохуищи всего, чтобы при этом зарабатывать раза в 4 меньше все той же пхп обезяны
или низкоуровневое программирование - это драйверописание под линукс или винду? ну чтож, надо потратить 10 лет чтобы смочь написать небажной полноценный драйвер щас, и при том что подобной работы в мире все меньше и меньше, хуй куда устроишься
Аноним 19/08/17 Суб 13:43:22  1046811
>>1046799
>при том что подобной работы в мире все меньше и меньше
Почему такой работы становится меньше?
Аноним 19/08/17 Суб 14:09:03  1046829
>>1046811
Прежде всего не каковы причины его утверждения, а истинно ли оно вообще. Пусть тащит статистику.
На сколько я могу судить, количество железок с течением времени только растет, под каждую нужно написать софт. Да, он скорее всего будет повторяться, и процесс сведется до тривиального, но кто-то эту работу должен делать?
Аноним 19/08/17 Суб 14:17:22  1046836
>>1046811
потому что все написано
взять тех же системщиков на линуксе
сетевой стек более-менее написали, спиздив многое из bsb-систем
файловые системы тоже довели до нормального состояния, во многом позаимствовав идеи у солярки
после того как сделали аппаратную поддержку виртуализации на x86 процах (которая уже десятки лет до этого бала на мейнфреймах), сделали и всю инфраструктуру нужную для виртуализации на линуксах, поверх этого сделали инфраструктуру нужную для построения облаков, saas и paas сервисов
безопасность доже докрутили, спиздив многое опять же у майкрософт и у коммерческих реализаций юниксовых систем
что щас остается системникам? допилились виртуализацию на уровне оперативных систем, в общем докер и все что ниже его крутиться и инфраструктуру поверх
само собой, за эти два десятка лет писались драйвера под всяхие железки и щас в принципе почти подо все уже написано
и че получается? то что системники под линукс сделали свою работу и большинство может смело послано нахуй
а оставшаяся небольшая часть будет уныло дописывать драйверки на время от времени появляющееся новое оборудование
Аноним 19/08/17 Суб 14:19:17  1046839
>>1046521
Если ты спрашиваешь - нет.
Аноним 19/08/17 Суб 14:46:19  1046853
>>1046836
Ты так говоришь, как будто бы все уже сделали до нас, и нам уже ничего не остается. Все равно будут придумывать новые технологии и хуевины, под которые тоже надо писать драйвера
Аноним 19/08/17 Суб 15:29:03  1046879
>>1046799
>надо потратить 10 лет чтобы смочь написать небажной полноценный драйвер
Чему там 10 лет учиться, функции инициализации устройств наизусть выучивать?
Аноним 19/08/17 Суб 15:31:12  1046880
Киньте годный материал по DFS и BFS, где все нормально объясняется. Заранее спасибо!
Аноним 19/08/17 Суб 15:36:34  1046885
>>1046879
Ну хз, сложно как то. Пару лет назад видел гайд как написать драйвер, но у меня ошибки какие то полезли, в общем не скомпелировалося.
Может скинешь какие нибудь видосы по этой теме?
Аноним 19/08/17 Суб 15:46:05  1046896
>>1046879
те лично ты писал драйвера и не столкнулся с трудностями?
именно поэтому была влеплена сажа?
Аноним 19/08/17 Суб 15:47:22  1046899
>>1046885
>ошибки какие то полезли, в общем не скомпелировалося
>видосы по этой теме
ой, нет
наверное не стоит тебе тратить на это время
Аноним 19/08/17 Суб 15:55:51  1046909
>>1046853
в общем случае, нет
любая относительно новая технология имеет свой период в начале становления, когда ей нужны инженеры от которых требуется создавать, улучшать компоненты технологии, а потом уже такие специалисты не нужны становятся, когда уже технология становится зрелой, остается нужда по сути в надсмотрщиках и настройщиках
такое происходило с энергетикой, с железными дорогами, да с любой технологией
да что там, про это целые книги написаны типа "Блеск и нищета информационных технологий" Николас Карра
Аноним 19/08/17 Суб 16:36:51  1046947
>>1045411 (OP)
Сап, ищу информацию по функциям. Решил немного побольше изучить как работают функции. Такой вопрос, я правильно понимаю, что прототип функции, определение которой находится после main(), он помогает нам по адресу в момент вызова определить область памяти определения функции (исполняемого кода)? Для этого же нужны прототипы? И если да, то как я понял в данном случае будет происходить одновременно и вызов и само определение?
Аноним 19/08/17 Суб 16:51:47  1046959
>>1046947

Сигнатура функции прототип нужна компилятору, чтобы он мог следить за передаваемыми аргументами, и возвращаемым значением. про то, где именно располагается функция думает линкер. Сигнатура функции никак не связана с её конечным адресом в бинарнике, если я правильно понял вопроса
Аноним 19/08/17 Суб 16:52:55  1046961
>>1046959
и тут ты такой сразу подорвался отвечать нубасу
хорошая собачка
Аноним 19/08/17 Суб 16:55:28  1046965
>>1046961
пасиб:3
Аноним 19/08/17 Суб 17:06:08  1046969
>>1046430
Знаешь что-то лучше?
Аноним 19/08/17 Суб 18:30:31  1047004
>>1046969
Под линукс нет
Аноним 19/08/17 Суб 19:17:30  1047021
Ребята, есть гайды как вирусы писать на С?
Аноним 19/08/17 Суб 19:41:59  1047039
>>1047021
нет
Аноним 19/08/17 Суб 19:44:30  1047040
>>1047021
Был тут один такой...
Аноним 19/08/17 Суб 21:28:46  1047068
>>1047021
Гугли бля. Эту тему обсосали уже везде. Упоротые даже на Паскале их писали.
Аноним 19/08/17 Суб 22:03:03  1047078
2ch подскажи, из текстового файла получается нельзя удалять информацию, только полностью перезаписывать файл?
Аноним 20/08/17 Вск 00:57:49  1047134
У меня русские символы не выводятся, это нормально?
>>1047131
Винда нерусская, подозреваю проблема в этом.
Аноним 20/08/17 Вск 01:18:16  1047139
>>1047078
Можно удалить конец.
Аноним 20/08/17 Вск 01:44:59  1047144
>>1047021
Без задней мысли тащемта
Аноним 20/08/17 Вск 05:35:58  1047171
Может кто подсказать когда на gcc файловую систему вытащат из экспериментала? И как с этим дела обстоят на windows? Я пробовал её использовать и там, но что-то не получилось. Вроде файловая система была самой значительной особенностью нового стандарта, но она почему-то до сих пор в экспериментале.
Аноним 20/08/17 Вск 08:54:55  1047202
>>1047134
Спермоблгоспода должны страдать.
Аноним 20/08/17 Вск 08:57:11  1047203
>>1047134
Почитай про imbue для basic_ostream. Тебе нужно установить локаль в соответствии с кодировкой текущего файла.
Аноним 20/08/17 Вск 10:02:04  1047215
>>1047171
Потомучто компиляторы ещё не до конца поддерживают 17й стандарт. filesystem будет кросплатформенной, под виндой и пингвином будет работать одинаково
Аноним 20/08/17 Вск 13:25:29  1047281
>>1045411 (OP)
Анон, как препроцессор разворачивает такие макросы #define MAX(a, b) ((a) < (b) ? (b) : (a)) и почему, например, при вызове MAX(1, 2) параметры 1 и 2 подставляются вместо a и b, а не вместо MAX?
Аноним 20/08/17 Вск 14:06:45  1047314
>>1047281
ты хоть сам понял, что написал?!
Аноним 20/08/17 Вск 14:25:29  1047330
Делаю тетрис с библиотекой ncurses. Блоки делаются с помощью окон, но проблема в том, что когда вращаю окно, не сохраняется пропорция ширины/высоты. Обьект который был длинным, становится коротким, но широким при вращении при том, что значения высоты/ширины одни и те же просто поменяты местами. Как сделать пропорцию?
Аноним 20/08/17 Вск 15:45:47  1047393
>>1047314
Да.
Аноним 20/08/17 Вск 16:22:12  1047413
>>1047281
>как препроцессор разворачивает
>#define MAX(a, b) ((a) < (b) ? (b) : (a))
Так и разворачивает. Если после этого где-то в тексте будет int t = MAX(3,100), то перед компиляцией он туда поставит int t = ((3) < (100) ? (100) : (3)). Если будет в где-то MAX(sin(1.43xx),"saa2131_asd"), то так и подставит ((sin(1.43xx) < ("saa2131_asd") ? ("saa2131_asd") : (sin(1.43xx)) и выдаст там соответствующие ошибки (а ещё будет считать синус два раза в некоторых случаях).
Не совсем понимаю, как он может подставить 1 и 2 вместо MAX, а не вместо a и b. Какой в таком случае вид должно иметь MAX(1,2) после обработки препроцессором?
Аноним 20/08/17 Вск 17:26:49  1047454
>>1047078
С помощью STL ты можешь сделать только truncate. С помощью большинства других API ты сможешь сделать только то же самое.
>>1047281
>почему, например, при вызове MAX(1, 2) параметры 1 и 2 подставляются вместо a и b, а не вместо MAX?
Потому чт осинтаксис, блядь.
Аноним 20/08/17 Вск 20:58:53  1047610
ПереКОД
https://2ch.hk/dev/res/2031319.html
Аноним 20/08/17 Вск 22:12:56  1047673
Хорошие советы для сишных программистов выложены тут http://labor-union.wikia.com/wiki/Lifehacks

Заниматься исключительно вашими должностными обязанностями и не позволять навешивать на себя чужих. Если ваша должность - Software Engineer или Senior Software Engineer, то вы должны и обязаны заниматься разработкой софта. Никакое ручное или полуавтоматизированное тестирование, никакое обучение джуниоров, никакое преподавание в вузе, никакое замещение тимлида в течение двух недель (на время которых вам, кстати, не повысят вашу почасовую ставку), никакое проведение семинаров, никакая уборка помещений, никакие погрузочно-разгрузочные работы не входят в список ваших обязанностей. Современный технический специалист не должен позволять управленцам садиться ему на шею и ездить на нем. Занимайтесь только разработкой софта, делайте свою работу хорошо, становитесь отличным техническим специалистом и безгранично развивайтесь в этом направлении.

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

Легко менять компании, если вы почувствовали, что на текущем месте работы развитие вас как технического специалиста идет недостаточно быстро. Никогда не привязывайтесь ни к работе, ни к работодателю, ни к коллективу. Выходите из зоны комфорта раз и навсегда. Вообще не привязывайтесь ни к людям, ни к работе. Также не тратьте ваше время на женщин, особенно, если они не понимают важности ваших профессиональных интересов, тормозят ваше развитие, расхищают ваше время, внимание, деньги и прочие ресурсы или требуют от вас наличия каких-либо социальных статусов, особого положения в обществе, смены профессии, перехода на управленческие должности и так далее.
Аноним 20/08/17 Вск 23:09:24  1047703
>>1047673
>Профсоюзы должны объяснять программистам, что они не должны оказывать бесплатный профессиональный консалтинг на Stack Overflow.
>нужно коллективно осуждать тех, кто выкладывает на YouTube самоучители по диагностике и ремонту любых неисправностей материнских плат ноутбуков или диагностике жестких дисков, или профессиональному восстановлению данных, например

Что за бред. Пара хороших советов есть, но в основном какой-то идеалистический бред.
Аноним 20/08/17 Вск 23:24:13  1047709
>>1047673
>Вообще не привязывайтесь ни к людям, ни к работе.
Зачем жить то тогда? Мне не интересно без этого, в таком случае мотивации не то что на какое-то "развитие вас как технического специалиста" будет не хватать...
Аноним 20/08/17 Вск 23:39:57  1047714
>>1047330
Никак, это от пропорций литералов зависит. можешь попытаться найти квадратный шрифт для консоли
Аноним 20/08/17 Вск 23:49:39  1047719
Tetris1984.png (3Кб, 638x385)
>>1047330
>Как сделать пропорцию?
Как диды - из двух символов.
Аноним 20/08/17 Вск 23:51:05  1047720
>>1047719
Лучше даже так, скобочками.
Аноним 20/08/17 Вск 23:52:23  1047722
>>1047719
В аски или в расширении 8-битном есть еще полностью закрашенный треугольник и закрашенная верхняя и нижняя половины. Но один хрен, если соотношение сторон литерала не 1 к 2, квадратиков не получится.
Аноним 20/08/17 Вск 23:53:22  1047723
>>1047722
>полностью закрашенный треугольник и
прямоугольник конечно же
Аноним 21/08/17 Пнд 00:02:53  1047724
>>1047722
>если соотношение сторон литерала не 1 к 2, квадратиков не получится
А ровный квадратик и не нужен. Главное, чтобы пропорции примерно совпадали, глаз это нормально воспринимает.
Аноним 21/08/17 Пнд 00:04:14  1047725
>>1047724
Я как-то монохромный видос так в консоль выводил, сносно было.
Аноним 21/08/17 Пнд 02:21:42  1047761
>>1047673
Хуйню какую-то выдумал. Новую секту мутишь?
Аноним 21/08/17 Пнд 02:54:36  1047769
>>1047703
у меня даже что-то вроде испанского стыда за человека что написал эту пасту и за человека что ее постит постоянно
Аноним 21/08/17 Пнд 03:30:12  1047773
есть checkedlistbox1, туда добавляются номера, которые написали юзвери. как предотвратить добавление одинаковых номеров с разным началом? например:
+79xxxxxxxxx
79xxxxxxxxx
89xxxxxxxxx
Аноним 21/08/17 Пнд 03:30:49  1047774
>>1047773
блядь, дело не в checkedlistbox1, если что. просто нужен алгоритм
Аноним 21/08/17 Пнд 06:16:17  1047780
>>1047773
Парсить, да проверять кек
Аноним 21/08/17 Пнд 07:48:07  1047786
>>1045453
Что-то мне не верится. Base salary не бывает такой большой.
Аноним 21/08/17 Пнд 07:57:20  1047788
>>1047786
А, ну тогда 100к как в дс)))
Аноним 21/08/17 Пнд 08:07:56  1047795
>>1047788
Ну, не 100к, но и не $744k. Я думаю база где-то в районе $300k-$350k. Бонус может превышать базу. Поэтому $744k (в год) вылядит реалистично как полная зарплата.
Аноним 21/08/17 Пнд 10:34:11  1047814
Посоны, есть одна здоровая dll'ка и её исходники. Как исследовать то что занимает дофига места, и попытаться уменьшить её? Stack unwinding включён.
Аноним 21/08/17 Пнд 10:46:25  1047817
>>1047769
>за человека что написал эту пасту и за человека что ее постит постоянно
У меня такое странное чувство, что это один и тот же человек.
Аноним 21/08/17 Пнд 12:39:55  1047847
>>1047773
Хранить длинные номера в международном виде, международный вид подстраивается под локаль. Алгоритм для РФ:
если цифр 11 и плюса нет, то это международный формат без плюса
если цифр 11 и начинается с 8, то нутыпонел

если цифр 7, например, то хранить в таком же виде.
>>1047814
Пульнуть исходники в IDE и посмотреть на литералы/инициализации, например. Loop unrolling увеличивает размер кода, если что.
Аноним 21/08/17 Пнд 13:04:40  1047850
-78xuf9qu8k-dva[...].jpg (111Кб, 921x535)
>>1045411 (OP)
Так у меня тут важный вопрос (который попадет в топ вопросов прошлого треда):
Как узнать сколько измерений у массива?
Инби4: посмотреть в коде; а как ты инициализируешь массив?; тупой вопрос; ты наверное имел ввиду размер массива.
Аноним 21/08/17 Пнд 13:10:12  1047851
>>1047850
Как найти то, чего нет?
Аноним 21/08/17 Пнд 13:12:47  1047852
>>1047851
Мне цифру-количество надо:
Аррей[] - 1
Аррей[][] - 2
И т.д.
Аноним 21/08/17 Пнд 13:16:42  1047853
>>1047852

посмотри в объявление массива, чтобы узнать размерность ¯ \ _ (ツ) _ / ¯.
если нужна функция, то тут без шаблонов никак

а зачем тебе?
Аноним 21/08/17 Пнд 13:21:49  1047856
>>1047850
http://en.cppreference.com/w/cpp/types/rank
Аноним 21/08/17 Пнд 13:24:07  1047858
>>1047853
>инби4: посмотреть в коде
> без шаблонов никак
Да мне хоть методом/классом/конструктором.
Мне нужен просто понятный синтаксис/пример на крестах.
> а зачем тебе?
Задание такое стоит, значит надо (я не спорю про то что оно нужное/ненужное).
Нагуглил пока что полтора примера на mdsn но ничего не понял так как я совсем нюфаг в крестах.
Аноним 21/08/17 Пнд 13:31:24  1047862
>>1047856
Спасибо, но я не совсем понял как запихнуть массив который у меня в классе.
Можешь объяснить ньюфагу если есть время?
Аноним 21/08/17 Пнд 13:32:14  1047863
>>1047862
>я не совсем понял как запихнуть массив который у меня в классе.
Без задней мысли, как обычно.
Аноним 21/08/17 Пнд 13:38:30  1047865
>>1047863
По синтаксису в мейне.
Например есть class Klass {int *array = new int [size];}, и в main - int value.
Как в мейне правильно писать?
Аноним 21/08/17 Пнд 14:03:29  1047879
>>1047862
http://ideone.com/jBes8q
Аноним 21/08/17 Пнд 14:05:10  1047881
>>1047850
Реализуй свою функцию. Можешь даже рекурсией, так даже быстрее должно получиться - T(n) = Θ(n lg n)
Аноны за тебя думать что ли должны?
Аноним 21/08/17 Пнд 14:13:51  1047884
>>1047879
двачую
Аноним 21/08/17 Пнд 14:16:14  1047885
>>1047865
Ты должен сделать свой УКАЗАТЕЛЬ public, иначе его никому не видно.
>>1047881
>Можешь даже рекурсией, так даже быстрее должно получиться - T(n) = Θ(n lg n)
Это даже не смешно.
Аноним 21/08/17 Пнд 14:38:56  1047893
>>1047885
Разве это была шутка?
Аноним 21/08/17 Пнд 14:50:15  1047899
>>1047893
Блядь, а что, нет?
Аноним 21/08/17 Пнд 14:52:16  1047901
>>1047899

А что сложного? строк 30 от силы
Аноним 21/08/17 Пнд 14:55:17  1047904
>>1047899
В чем шутка? То что я примерную сложность алгоритма написал или про рекурсию?
И то, и другое было написано серьезно.
Аноним 21/08/17 Пнд 15:24:30  1047912
>>1047901>>1047904
Какая ещё сложнось алгоритма? Сколько по-вашему может быть звёзд у указателя / измерений у массива? Асимптотическая оценка подразумевает что-то охуительно большое, а не то, что измеряется пальцами одной руки в 99,99% случаев. Логарифм там откуда, блядь? n - это длина числа звёзд указателя в разрядах или само число разрядов? Какая операция является основой для определения сложности?

И самое главное - где хоть слово о шаблонном дерьме, в которое надо окунуться для того, чтобы это сделать без использования std::rank?
Аноним 21/08/17 Пнд 15:40:31  1047915
compiling2.png (51Кб, 413x360)
Аноним 21/08/17 Пнд 15:53:51  1047920
Привет, вкатываюсь к вам из жс, подскажите что почитать. Не хочется заново все муть читаться про типы данных, итерации и прочее.
Аноним 21/08/17 Пнд 15:53:55  1047921
>>1047879
Спасибо анонче, выручил
Аноним 21/08/17 Пнд 15:59:25  1047925
>>1047920
Стандарт почитай.
Аноним 21/08/17 Пнд 16:10:32  1047932
Напомните, как круче писать:
<< endl;
Или
<< '\n';
Аноним 21/08/17 Пнд 16:48:33  1047954
Я тот ньюфаг что спросил за измерения.
Оказалось оно не работает с динамическим массивом.
Можно как-то создать статический массив размера существующего динамического (компилятору не нравиться неконстантное значение) (это максимум что я пока придумал) или по другому обойти эту проблему?
Аноним 21/08/17 Пнд 17:07:59  1047966
>>1047920
>подскажите что почитать
"благоволительницы" литтелла - классная книжка, в списке моих любимых будет
Аноним 21/08/17 Пнд 17:15:45  1047974
>>1047932
><< '\n';
Аноним 21/08/17 Пнд 17:17:55  1047976
>>1047912
Тебе алгоритм надо как обойтись без rank? щяс
Аноним 21/08/17 Пнд 17:18:07  1047977
>>1047966
А мне Даниела Стил и Паоло Коельо нравятся.
Аноним 21/08/17 Пнд 17:20:01  1047979
>>1047954
Он на то и статический, что размер должен быть известен на этапе компиляции. Вообще можно пощекотать себе анус с использованием alloca, но тебе с таким уровнем рановато ещё.

Можно создать копию текущего динамического массива или просто статический с длинной которой с лихвой хватит на все возможные данные и руками следить за его длинной.
Аноним 21/08/17 Пнд 17:20:56  1047980
>>1047977
могу только посочувствовать
даже высокодуховные девы коэльо щас не котируют, так чтож вы сядете в лужу упомянув при них этого автора
Аноним 21/08/17 Пнд 17:25:34  1047986
>>1047912
https://ideone.com/KkXRm6
Надо окунуться в шаблоны, и частичные специализации
>>1047954
Полная ахинея, статический массив на то и статический, что его размер известен на момент компиляции, размер динамического массива познается лишь на этапе исполнения
Аноним 21/08/17 Пнд 17:26:36  1047988
>>1047979
>длинной которой с лихвой хватит на все возможные данные и руками следить за его длинной.
>
А еще можно использовать stl, это же тред про C++
Аноним 21/08/17 Пнд 17:29:43  1047995
>>1047986
>template<class T, unsigned I>
Я тут мимопроходил мимо этих шаблонов, но это же получается, что оно этот шаблон будет разворачивать для всех возможных длин массивов, которые встречаются в коде? Брр, ну и ужасы.
Аноним 21/08/17 Пнд 17:30:01  1047997
>>1047814
>здоровая dll'ка
>и попытаться уменьшить её?
хочешь ее отправить в прошлое? на компы с 95 виндой и 300 метровым жестким диском?
Аноним 21/08/17 Пнд 17:32:07  1047999
>>1047814
ну а вообще "жирные" дллки это обычно ресурсные дллки, там куча картинок, текста и прочего что нужно экзешнику
Аноним 21/08/17 Пнд 17:34:18  1048001
>>1047795
я вообще думал что страуструп на профессорском подсосе (тыщ 50-60 в год) сидит у себя в техасском технологическом (охуенный кстати универ из нераспиареных)
а тут вон оно как, бабло зашибает :D
Аноним 21/08/17 Пнд 17:37:13  1048002
>>1048001
>в техасском технологическом
хм, попутал с TAMU
Аноним 21/08/17 Пнд 17:37:41  1048003
>>1047995
Это же рекурсивное инстанциирование ¯ \ _ (ツ) _ / ¯. Если привыкнуть, то нормально)
Аноним 21/08/17 Пнд 17:45:28  1048012
>>1048003
угу, говорят, что уже на следующую неделю работы в морге перестаешь чувствовать какие-либо раздражающие запахи разложения
Аноним 21/08/17 Пнд 17:49:58  1048018
страуструпа вот обычно неуважают и хуесосят всякие молокососы, а но умеет себя пиарить
в частности, поддерживает очень давно свой сайт на отдельном домене, не забывает его обновлять всегда
все его достижения там указаны, все расписано
stroustrup.com
такие дела
Аноним 21/08/17 Пнд 17:52:47  1048021
>>1048012
На самом деле писать и понимать такие штуки - нихуевый квест, выполнив который можно свихнуться считать себя лучше других
Аноним 21/08/17 Пнд 18:08:10  1048034
>>1048018
еще и бабло, кстати, зарабатывать умеет
на книжках можно неплохо зарабатывать - оказывается это такой "удобный" доход, книгу написал, а она постоянно издается, переиздается, допечатывается, потом у англо-саксов все нормально с электронными площадками для торговли ебуками, а это еще удобней, с цифры денежки вообще каждый месяц капают
в общем, раз написал, а деньги идут всю жизнь, тем более у него там наверное в сумме миллионные тиражи, куча бабла
потом случайно попал на влог отдной тетки (реально тетки), уже в "баба ягодка опять" возрасте перекатившейся в америку жить, дак она в видео и проговорилась - типа, что ее все хуесосят в интернете, что у ней понаписано куча неграмотных книг в мягкой обложке типа "как выйти за американца", "разговорный английский для совсем не знающих и прочее", страшные разговорники типа фраза на русском - перевод этой фразы даже не транскрипцией, а в виде "хау ду ю ду", она на это заявила, что у ней они все выложены в амазон и их, блядь, покупают, и у ней каждый месяц денежка с них, баксов 600-700 набирается, и получается что это вроде как настоящее вложение - ты тратишь время, создаешь продукт-книгу, а потом уже получаешь денежку с этого
такие дела
а у страуструпа наверное гораздо больше денег с книг выходит
Аноним 22/08/17 Втр 08:09:47  1048432
>>1047997
Проблема в том что линковка при компиляции этой самой дллки дофига времени занимает.
>>1047999
В том то и дело что там только код.
Аноним 22/08/17 Втр 10:21:05  1048521
>>1048432
Обычно место занимает debug info.
Аноним 22/08/17 Втр 10:48:53  1048544
>>1047997
>хочешь ее отправить в прошлое? на компы с 95 виндой и 300 метровым жестким диском?
Не всякая .dll-ка влезет в 300-метровый жёсткий диск.
Аноним 22/08/17 Втр 15:33:00  1048682
Capture.PNG (3Кб, 312x176)
int i;
int N = 10;
int a = new int[N];
for (i = 0; i < N; i++)
a = 1000
(1.0*rand()/RAND_MAX);

Тестировал алгоритм сортировки, и каждый сука раз при заполнении рандом в самом начале идёт ёбанная единица. Чё за хуйня?
Аноним 22/08/17 Втр 16:10:55  1048699
>>1048682
Это ГПСЧ, тут нужно задавать seed перед началом генерации. Нубы обычно берут time() или что-то вроде такого.
Аноним 22/08/17 Втр 16:54:47  1048727
image.png (19Кб, 1300x98)
>>1048682
Кстати говоря, у меня rand генерирует псевдорандомную последовательность длиной всего 64к (вторая строчка). Даже если будешь заполнять изображение белым шумом, будет мусор повторяющийся. Это линейный конгруэнтный метод.
В делфях используется то же самое, но на 32 бита.

https://ideone.com/qk2bZN
А у ideone rand другой, он там тоже на 32 бита.
Аноним 22/08/17 Втр 17:09:43  1048733
>>1047932
Эндл - 4 клацка, портабельно (да я знаю про конверсии всякие), читаемо.
Слешэн - 6 клацков.
>>1047954
>Можно как-то создать статический массив размера существующего динамического
Размерность существующего динамического известна в компайлтайме, блядь. Как ты там написал это, если ты нихуя не знаешь? Кому ты пиздишь? Щас ты покажешь код, и мы все охнем.
Могу тебе класс с динамической размерностью накатать.
>>1047986
> размер динамического массива познается лишь на этапе исполнения
В том-то и дело, что поциенту нужна размерность (известная в компайлтайме). Он нас наёбывает, сейчас увидишь.
Аноним 22/08/17 Втр 20:37:37  1048814
Как корректно дать определение полиморфизма в C++?
Аноним 22/08/17 Втр 20:41:30  1048819
>>1048733
>Эндл - 4 клацка
И 9 если с std:: впереди.
> Слешэн - 6 клацков.
Откуда 6?

> портабельно
Что ты имеешь в виду?
Аноним 22/08/17 Втр 21:57:43  1048876
Привет. Начал вкатываться в плюсы, хотел скомпилировать простой хеллоу ворд в командной строке, скачал компилятор(g++), установил, в командной строке указал путь к нему в переменной path, затем пишу g++ program.cpp и мне выдает No such file or directory. Как это фиксить? С расположением файла все нормально, я закинул его на рабочий стол и в командной строке же указал путь до него. В чем причина такого поведения компилятора?
Аноним 22/08/17 Втр 22:01:16  1048880
>>1047932
std::endl
Что бы переносимость сходу просрать.
Аноним 22/08/17 Втр 22:09:14  1048890
>>1048876
> Как это фиксить?
Скачать студию на первых порах
мимо ньюфаг
Аноним 22/08/17 Втр 22:16:59  1048904
>>1048819
>Откуда 6?
Два раза шифт.
>>1048819
>Что ты имеешь в виду?
На маке - \r, на винде - \r\n. Хотя, там же, вроде ,везде конверсия, так что это неважно.
>>1048876
> С расположением файла все нормально, я закинул его на рабочий стол и в командной строке же указал путь до него.
Если ты раньше с командной строкой дела не имел, то проще всего сделать cd до папки с программой и оттуда уже запустить gcc с именем файла без пути.
Аноним 22/08/17 Втр 22:18:17  1048906
>>1048904
>Два раза шифт.
Ой, точно, не нужен. Занимательные обсуждения в плюсотреде.
Аноним 22/08/17 Втр 22:20:40  1048913
>>1048814
статический на шаблонах, динамический на вирт функциях, ad hoc через перегрузку функций
3 вида
изи
Аноним 22/08/17 Втр 22:21:44  1048914
>>1048913
кстати, эти знания никак не помогают мне найти работу и не сдохнуть от голода в будущем
Аноним 22/08/17 Втр 22:22:45  1048916
>>1048904
Я так и сделал, закинул файл с кодом на рабочий стол и в командной строке прописал путь до него
Аноним 22/08/17 Втр 22:23:50  1048917
>>1048890
Мне бы сначала cmd освоить, со студией успею разобраться.
Аноним 22/08/17 Втр 22:25:42  1048920
>>1048876
>>1048917
уже продумал на что будешь жить следующие 10 лет, тк работу на крестах ты никак раньше не найдешь?
богатые родители готовые кормить? может быть крупные суммы в банке, процент с которых позволяет жить? нет?
Аноним 22/08/17 Втр 22:31:10  1048933
>>1048920
Я плюсы в основном для универа осваиваю. А чтоб деньги были, подамся в бекенд, хоть и не нравится он мне.
Аноним 22/08/17 Втр 22:32:16  1048936
Как так получается, что стек находится в сегмента стека, куча может занимать хоть всю виртуальную память, стек и куча растут по направлению друг к другу и стек может переполниться?
Сколько места занимает стек и почему он может дорасти до границы кучи?
Где в памяти располагаются стек и куча?
Аноним 22/08/17 Втр 22:42:12  1048951
>>1048916
Я могу сказать тебе только то, что ты написал его неправильно. Как обойти необходимость в изучении кавычек я уже сказал, ты не послушал.
>>1048936
> стек может переполниться?
Ограничен десятком мегабайт в большинстве популярных ОС. А вообще это не про плюсы вопрос, в стандарте ничего про то, что ты спрашиваешь, нет.
Аноним 22/08/17 Втр 22:45:52  1048957
>>1048933
те тупи
просто делай все лабы на выбранном тобой языке - явка, js, в общем все что угодно кроме крестов
да, в универе любят на нем лабы давать
но как для специалиста это будет для тебя путь в никуда
Аноним 22/08/17 Втр 23:02:30  1048966
Напомните, есть ли async/await в последнем стандарте крестов?
Аноним 22/08/17 Втр 23:03:33  1048967
>>1048904
>На маке - \r
Там же UNIX, разве не \n?
Аноним 22/08/17 Втр 23:08:16  1048977
>>1048933
Ну и даун, тут в перезвоним-треде один крестовик устроился на работу с зп 250к.
На Java и C# (не говоря уже про PHP и прочее скриптоговно) у тебя таких денег никогда не будет.
А через 5 лет веб-разработки ты забудешь все алгоритмы и даже что означает буква O.
Аноним 22/08/17 Втр 23:10:20  1048980
>>1048977
Ну тут скорее исключение из правил.
Аноним 22/08/17 Втр 23:37:32  1049003
Какие особенности возврата класса по ссылке и для чего это нужно?
Аноним 22/08/17 Втр 23:42:05  1049006
>>1048977
>Ну и даун, тут в перезвоним-треде один крестовик устроился на работу с зп 250к.
Лол, а еще на бейсике работа есть от 80к
https://chelyabinsk.hh.ru/vacancy/21903239?query=basic
Даже в мухосранях типа челябинска! Давайте учить бейсик
Ты про статистическую выборку не слышал?
Аноним 22/08/17 Втр 23:55:04  1049012
>>1048977
>один крестовик устроился на работу с зп 250к
Чистые кресты никому не нужны, их и так все знают после универа. Нужны специфические узкие знания. Эмбед, драйвера, сетевой стек, потоковое видео - опыт. За это платят. Сферический Александреску в вакууме без знания предметки никому не нужен.
Аноним 23/08/17 Срд 00:20:37  1049037
>>1048966
Нету.
Аноним 23/08/17 Срд 10:25:59  1049275
>>1048977
>Ну и даун, тут в перезвоним-треде один крестовик устроился на работу с зп 250к.
Жопа_Хенка.txt
>>1049003
>Какие особенности возврата класса по ссылке
Особенность в том, что, возвращая по ссылке объект на стеке, ты возвращаешь dangling reference.
Аноним 23/08/17 Срд 10:35:24  1049285
>>1049012
> их и так все знают после универа
Си с классами знают или C++?
Аноним 23/08/17 Срд 11:09:34  1049306
>>1049006
За 250к вакансий вообще немного, в ДС 5 штук на C++:
https://chelyabinsk.hh.ru/vacancy/22237944?query=c%2B%2B
https://chelyabinsk.hh.ru/vacancy/22203976?query=c%2B%2B
https://chelyabinsk.hh.ru/vacancy/22359974?query=c%2B%2B
https://chelyabinsk.hh.ru/vacancy/22282829?query=c%2B%2B
https://chelyabinsk.hh.ru/vacancy/22292120?query=c%2B%2B
За 80к - навалом. Анон не говорил, что полно работы, он утверждал, якобы веб-разработка оплачивается выше, чем проекты на С++, что очевидно не так.

>>1049012
Ясное дело, джуна со знанием STL и Qt на такой оклад не возьмут.
Аноним 23/08/17 Срд 11:45:30  1049337
>>1049306
Нашел работу на крестах/qt джуном без опыта читай, на работе учил
Работаю уже полгода, зп пока 40к, скоро планируется повышение.
Аноним 23/08/17 Срд 11:45:50  1049338
>>1049337
заюлы добавить, ДС2
Аноним 23/08/17 Срд 11:46:10  1049339
>>1049338
>забыл
Аноним 23/08/17 Срд 13:56:54  1049415
Ребята думаю сделать прогу, которая будет расшифровывать пакеты. Например порт, входящий ip, информация о пакете и тд.
Но мне кажется что такое уже есть и я буду изобретать велосипед. А если нету, то думаете взлетит?
Аноним 23/08/17 Срд 14:01:00  1049418
>>1049415
Зачем?
Аноним 23/08/17 Срд 14:03:30  1049420
>>1049415
несомненно! это будет инновационное программное обеспечение, достойное занесения в "Единый реестр российский программ", например
ты, как автор, получишь уважение мирового комьюнити, сможешь организовать стартап, монетизирующий проект, выйти на ipo и с продажи опционов получить доходы, обеспечивающие тебя до глубокой старости!
Аноним 23/08/17 Срд 14:14:54  1049429
>>1049306
охуенно наверное из обоссаной челябы облизыватся на >250k вакухи в great mockow :D
Аноним 23/08/17 Срд 17:02:41  1049527
>>1048913
Вот только это не определение
Аноним 23/08/17 Срд 17:13:01  1049532
>>1045411 (OP)
Да, аноны, скажите, что примерно нужно знать ии уметь чтобы вкатиться джуном? Сейчас имею только одну лабу из шараги, там простая база данных в виде дерева, поиск добавление удаление вершин-ветвей. В стль почти ничего не знаю, кроме основных структур, в бусте и подавно.
Аноним 23/08/17 Срд 17:16:21  1049536
>>1049532
К тёте Васе в бухгалтерию можешь устраиваться уже.
Аноним 23/08/17 Срд 17:17:59  1049538
>>1049536
А зачем там C++?
Аноним 23/08/17 Срд 17:20:17  1049540
>>1049538
Вот именно.
Аноним 23/08/17 Срд 17:42:11  1049566
>>1049540
Вторая часть моего вопроса состояла в том, что подучить.
Аноним 23/08/17 Срд 18:20:20  1049590
>>1049566
Учить нужно то, что в конторе будет. Поскольку кресты не нашли себя в какой-то конкретной сфере, подсказать тяжело.
Аноним 23/08/17 Срд 18:34:29  1049596
>>1049590
Я джуниором хочу стать, должна же быть какая-то общая основа.
Сажа чет прилипла.
Аноним 23/08/17 Срд 18:35:55  1049598
>>1049596
Нету общей основы.
Аноним 23/08/17 Срд 18:36:23  1049599
>>1049598
Шаблоны, ООП, какие-то основные механизмы, я про это.
Аноним 23/08/17 Срд 18:43:43  1049605
Анон, какие есть средства синхронизации в C++ кроме std::mutex? Где там критические секции и семафоры?

Алсо, в STL есть способ синхронизировать потоки без примитивов синхронизации. Что это за способ?
Аноним 23/08/17 Срд 19:03:15  1049610
>>1049599
https://hh.ru/search/vacancy?text=c%2B%2B&enable_snippets=true&clusters=true&area=1&experience=noExperience&from=cluster_experience
Аноним 23/08/17 Срд 19:14:32  1049611
>>1049596
какие нахуй джуны на крестах в 2к17
ты че, совсем тю-тю
Аноним 23/08/17 Срд 19:15:33  1049612
>>1049611
Бля, а как тогда вкатываться в кресты?
Аноним 23/08/17 Срд 19:26:20  1049620
out.png (186Кб, 1366x768)
Анон, как это ебучее окошко output закрепить на днище?
Аноним 23/08/17 Срд 19:59:06  1049639
>>1049610
Там везде что-то в духе, начальные навыки c++, ни в одной вакансии я не увидел что именно они хотят. Неужели я прямо сейчас могу вписаться джуном?
Аноним 23/08/17 Срд 19:59:32  1049640
Безымянный.png (199Кб, 1366x768)
>>1049620
хуяк
Аноним 23/08/17 Срд 20:11:31  1049652
>>1049639
За еду кем хочешь можно устроиться. Гей-шлюхам ещё платят, я слышал.
Я начинал работать в банке, вакансия что-то вроде такой была:
https://career.ru/vacancy/22470998?query=c%2B%2B

В основном хранимки на SQL писал, C++/Delphi 50/50. Платили нихуя, только что люди там хорошие работали.

Перекатываюсь на пыху в итоге. Вот такой суксесс стори.
Аноним 23/08/17 Срд 20:14:45  1049655
>>1049652
Да, я бы в такое вкатился, но не могу 40 часов в неделю пока работать.
Аноним 23/08/17 Срд 20:17:28  1049661
>>1049418
Затем что иногда это бывает нужным.Хотя функционала уже реализована в вайршаке, в общем хз
>>1049420
Ох(
Аноним 23/08/17 Срд 20:58:37  1049697
>>1049605
Бамп.
Аноним 23/08/17 Срд 21:09:40  1049717
Безымянный.png (41Кб, 484x559)
>>1049697
Там особо ничего такого нет.
http://en.cppreference.com/w/cpp/thread/lock_guard

У винды есть свои реализации.
Ещё есть Boost.Interprocess со всеми нужными тебе структурами и даже больше.
Аноним 24/08/17 Чтв 03:32:54  1049919
>>1049605
std::condition_variable есть как способ заблокировать один или несколько потоков до срабатывания какого-то условия в другом потоке, к примеру. Используется все так же с мьютексом, потому что так надо и во всех системах так.
Критических секций нихуя нету, так что используй мьютекс с std::lock_guard и тебе не придется потом ебаться по поводу того, какого хуя у тебя все залипло в один момент (кинуло исключение, мьютекс залочен и все ... пиздос)
Можешь попробовать неблокирующие методы там используются атомики. Суть, в общем, состоит в том, что треды пытаются в постоянном цикле "захватить" атомарную переременную, записав туда свой идентификатор через compare_exchange, и потом на короткое время выхватить кусок из общего ресурса и высвободить атомарную переменную. Тема хорошая, но не для всего на самом деле. Если собираешься делать какой-нибудь реактор или проактор (на stl хахаха блять, удачки), то лучше пользоваться системными примитивами синхронизациями и condition_variable.
Аноним 24/08/17 Чтв 10:15:45  1049971
>>1049612
Сразу сеньором.
Аноним 24/08/17 Чтв 11:34:16  1049998
>>1048904
>>Откуда 6?
>Два раза шифт.
Для '\n' ни разу шифт нажимать не надо.

>>Что ты имеешь в виду?
>На маке - \r, на винде - \r\n. Хотя, там же, вроде ,везде конверсия, так что это неважно.
Вот именно. std::endl это просто '\n' плюс flush.
Так что чем он портабельнее — непонятно.
Аноним 24/08/17 Чтв 12:51:32  1050042
>>1048904
>На маке - \r
Как там, в 95-м?
Аноним 24/08/17 Чтв 12:54:12  1050044
>>1049620
>const std::string&
>2k17
Аноним 24/08/17 Чтв 13:42:46  1050068
>>1050044
А что ещё делать?
Аноним 24/08/17 Чтв 14:05:15  1050075
>>1050068
писать на JS
Аноним 24/08/17 Чтв 16:26:11  1050164
Ананасы. Поясните мне за биномиальную кучу. Понять нихуя не могу, как там вставляется этот самый единственный элемент.
Вот есть такое описание:
https://rsdn.org/article/submit/heap/heaps.xml#EFBAE
>> Данная операция полностью повторяет логику единичного инкремента. Пусть исходная биномиальная куча состоит из 11 элементов. ... какой-то пример на довичных числах, алгоритма нет нихуя ...
Как это работает? Насколько я понял, когда в биномиальную кучу добавляется элемент, он представляется вырожденным случаем биномиального дерева, имеющего только корень. Только вот так если подумать, если сращивать узлы в уже отсортированном порядке, тогда они должны выстроиться в одну длинную цепочку, разве нет?! Что за хуйня?!
Аноним 24/08/17 Чтв 16:37:27  1050175
>>1050068
string_view.
Аноним 24/08/17 Чтв 17:21:03  1050199
У вас есть контейнер кучи? Чтобы можно было например корневой элемент получить, родительский или пару потомков. Без костыля типа make_heap.
Аноним 24/08/17 Чтв 17:26:01  1050201
>>1050164
https://neerc.ifmo.ru/wiki/index.php?title=Биномиальная_куча
>>1050199
http://ru.cppreference.com/w/cpp/container/priority_queue
Аноним 24/08/17 Чтв 17:32:29  1050202
>>1050201
>http://ru.cppreference.com/w/cpp/container/priority_queue
Он не позволяет во внутренности смотреть. Предка и потомков не узнать.
Аноним 24/08/17 Чтв 17:41:56  1050208
>>1050202
Стандартных реализаций нету. В бусте почти наверняка есть, но не там, где ожидаешь. В Boost.Heap нету кучи с таким функционалом, например.

Можешь в Интернете поискать. Например:
https://gist.github.com/truncs/1810804
Аноним 24/08/17 Чтв 18:44:29  1050262
>>1050175
Его ещё не везде есть
Аноним 24/08/17 Чтв 19:11:40  1050285
>>1050199
В куче же родитель легко находится. Битовый сдвиг вправо на один бит (то есть целочисленное деление на 2) даст тебе индекс родительской ноды.
С потомками сложнее, нужно смотреть смещения, хотя там все подчиняется тому же закону.
Аноним 24/08/17 Чтв 19:36:56  1050307
>>1050175
зачем
Аноним 24/08/17 Чтв 19:40:28  1050310
>>1050175
Иди нахуй, хипстер ебаный. В стандарт завезут, тогда и буду пользоваться
Аноним 24/08/17 Чтв 20:11:42  1050329
>>1050307

Это охуенный класс, быстро, удобно, без копирования!
Аноним 24/08/17 Чтв 20:14:02  1050332
>>1050329
Что нового он дает относительно итераторов?
Аноним 24/08/17 Чтв 20:28:46  1050348
>>1050332
> быстро, удобно
Аноним 24/08/17 Чтв 20:32:44  1050353
>>1050348
А конкретнее?
Аноним 24/08/17 Чтв 20:39:16  1050358
>>1047915
Я как-то хотел лямбда-исчисление на темплейтах сделать, но руки не дошли. Может, на выходных.
Аноним 24/08/17 Чтв 20:52:08  1050368
>все миллионы способов инициализации (value initialization, direct initialization, copy initialization, list initialization, aggregate initialization, reference initialization, default initialization, static initialization, dynamic initialization и наверное ещё куча)
>callable
>r/l/x/gl/pr-values
>SFINAE
>ADL
>Most Vexing Parse
>как инферятся типы в лямдах и просто в функциях
>RTTI
>std::allocator
>perfect forwarding, decay и правила переводов референсов на референсы
>даже простые move semantics
Я тут подумал, и понял. Блин, реально сложный язык, в которого понапихано слишком много. Как-то не доходило раньше. Зато джоб секьюрити.
Аноним 24/08/17 Чтв 20:57:27  1050373
>>1050368
>много
>перечислил 5%
>имплаинг в аналогичных языках меньше
Аноним 24/08/17 Чтв 21:13:49  1050384
>>1050373
>аналогичных языках
Это каких
Аноним 24/08/17 Чтв 21:16:28  1050385
>>1050262
Он везде есть, просто нужно проверять __cpp_lib_experimental_string_view или __cpp_lib_string_view и инжектить алиас string_view в std в первом случае. Если совсем старый стандарт — буст/eastl/sgi stl/хуйнянейм все равно тащить придется. Ну или навелосипедить свое, там делов-то на 15 строк.
>>1050310
Дык уже давно.
>>1050307
Это намного быстрее и гибче. Как минимум именно в качестве параметра вместо строки всегда нужно принимать string_view — ибо это простой слайс (поинтер+длинна), и ты полностью контроллируешь аллокации. В твоём текущем коде при передаче вообще чего угодно у тебя будут создаваться временные объекты, которые твой код повторно аллоцирует и копирует. Олсо, для того же нужен emplace_back() у стдшных контейнеров и perfect forwarding (а еще интрузивные контейнеры) но тебе ещё рано, лол.
>>1050332
При чём тут итераторы-то, поехавший?
Аноним 24/08/17 Чтв 21:20:13  1050390
>>1050385
>Как минимум именно в качестве параметра вместо строки всегда нужно принимать string_view — ибо это простой слайс (поинтер+длинна)
Длинна в каких единицах? Давно кресты utf8 поддерживать начали?
Аноним 24/08/17 Чтв 21:20:20  1050391
>>1050368
>>Most Vexing Parse
>>как инферятся типы в лямдах и просто в функциях
Остальое понятно, но вот это нахуя знать-то?
Аноним 24/08/17 Чтв 21:28:50  1050396
>>1050391
>Most Vexing Parse
Все с этим сталкивались, когда-нибудь написав new T().
>как инферятся типы в лямдах и просто в функциях
Да просто так, честно, запэддить лист
Аноним 24/08/17 Чтв 21:33:00  1050400
>>1050390
>Длинна в каких единицах?
В байтах, в чём ещё в плюсах меряют длинну? Просто так уж сложилось что char = 1 байту, и теперь пойди объясни кто тут верблюд.
>Давно кресты utf8 поддерживать начали?
Смотря что ты имеешь в виду.
Если строковые литералы — u8"דיק" ещё в 11-х завезли.
Если просто строки в которые пользователь сможет срать что на иврите, что на китайском — в плюсах, опять же, все измеряется в байтах, так что абсолютно похуй что туда пихать. std::string — обычный вектор с опциональным SSO и рефкаунтом. Другое дело как ты эту хуйню обработаешь.
И нахуя с ты перескочил с невладеющих строк к юникоду — ЯННП.
Аноним 24/08/17 Чтв 21:36:18  1050405
>>1050396
>Все с этим сталкивались, когда-нибудь написав new T()
Я понимаю, что мы живём в 18 веке, у нас медведи по улице ходят, но нет, нихуя.
Аноним 24/08/17 Чтв 21:36:27  1050406
>>1050396
>>Most Vexing Parse
>Все с этим сталкивались, когда-нибудь написав new T()
new T() под это правило как раз не попадает.
Аноним 24/08/17 Чтв 22:02:18  1050426
>>1050400
>В байтах
И нахуя оно тогда нужно? Чтобы работать с данными все равно нужно 3rd party представление. Твоя хуитка поможет только в случае не-nullterminated строк.
Аноним 24/08/17 Чтв 22:06:36  1050429
>>1050426
При чём тут юникод и владеющие и невладеющие строки, поехавший. Ты меня доебал уже блядь. Одна история ахуеннее другой.

Я ему про временные объекты и перформанс, он мне про нуль терминатор, ахуеть теперь.
Аноним 24/08/17 Чтв 23:15:00  1050447
>>1050406
Всмысле T t();
Ну вы поняли.
Аноним 24/08/17 Чтв 23:17:42  1050448
NwNPU.png (695Кб, 720x1863)
>>1050329
Сразу вспомнился комикс про старый C++.
Аноним 24/08/17 Чтв 23:41:15  1050458
>>1050429
>Я ему про временные объекты и перформанс
Так передавай const wchar_t* size_t
Аноним 25/08/17 Птн 07:43:08  1050602
>>1050201
А все, допер по поводу биномиальной кучи. Почему-то мне казалось, что деревья там плоские, как в куче, но потом стал рисовать по объяснению и понял, что все слегка иначе.
Аноним 25/08/17 Птн 10:55:02  1050641
>>1050400
>std::string — обычный вектор с опциональным SSO и рефкаунтом.
Рефкаунт не соответствует стандарту.
Аноним 25/08/17 Птн 12:14:49  1050674
>>1050458
>Так передавай const wchar_t* size_t
Пиздец просто.
Переменная длина utf8 нас не устраивает значит, а вот переменная длина utf16 это совсем другое дело, да? Не хочу совместимую с ASCII кодирование, хочу использовать windows-only решение. Пиздец ты даун. И да, напоминаю, в юникоде один символ может состоять из нескольких знаков, удачи в ковырянии вилкой всего этого добра.


>>1050426
>Чтобы работать с данными все равно нужно 3rd party представление.
В 95% случаев вся работа заключается в достал-передал дальше. На самом деле, не так часто нужно что-то со строками ручками делать.
Аноним 25/08/17 Птн 12:57:19  1050693
qtcreator-overv[...].png (57Кб, 558x492)
про Qt поясните позязя.

Надо прогу с гуем сделать. Чтение с последовательного порта (виртуального, который с USB, ну да пох), рисование графиков, запись log-файлы и в базу маленько.

Раньше все на дельфи7 делал - на форму мышкой-хуяк-хуяк, компонент нагуглил для com-порта, чтение списка портов с реестра, графики - еще один компонент нагуглил, базы данных - компонент интербейс-коннект и к firebird без установки серверов (портативная версия). Еще и в Excel отчетики если надо. Всё заебись за считанные часы выполняется, всё вместе пять мегабайт.
Но дельфи7 же умер, это ведь говно мамонта 2002 года, без юникода, без антиалиасинга, да и вообще, сейчас опенсорс, кросс-платформа, C++14 и прочая хуйня, к тому же мне уже за 30, и пора бы уже вместо меня в этой шаражке взять малолетнего пиздюка, а они про дельфи и не знают небось.

На да ладно.
Сперва беру C# конечно же. Ну заебись, разобрался мало-мальски, правда в ini-файлы он что-то не умеет. Но сейчас уже 21 век, xml-костыль конечно же есть. Но, ебана, я ведь скачал Community Edition, а все равно регистрацию просит и посылает нахуй, да и при установке так систему засирает, что не по себе становится.

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


Итак, беру труЪ-опенсорсный CodeLite, wxWidget, ну потрахался (какой же там уебищный GUI-дизайнер), последовательный порт через WinAPI, всё, сука, в ручную, автоподставновка через раз работает, как графики добавить, так и не понял. Хуита какая-то. Сколько гуглишь - На форумах древнее говно мамонта. Стопицот костылей, ничего простого. Либо не рисует, либо криво, либо не понять как ставить на эту версию.
Еще напрягает, что установка wxWidget охуеть долгая - библиотеку то компилить надо.
Радует хоть, что приложение статически собирается и весит мегайбат 7.

Дальше вот нагуглил, все нормальные пацаны обоссали этот wxWidget и делают на Qt.
Окей, качаю последний, 5.9.1 версия.
Гуй-дизайнер заебись, редактор кода заебись, сразу есть компоненты последовательно порта и графики, которые через жопу, но вполне юзабельно. Как перенести на другой комп? О_о Ладно есть там windeployqt приблуда. Вот она мне копирнула 45 мб библиотек, кучку из 23 штук (минус папку translations) епта. Да и то три штуки пропустила (которые к mingw). На вин10 работает, на вин7 работает, а на винХР не работает, ёбана. Да, вы тут все модные продвинуетые, на core i7 и прочее. А у меня в цехе несколько десятков компов и обновлять винду там нельзя, т.к. к ним идет оборудования забугорного на миллионы денег и, вообще блядь, лучше не там ничего трогать.

Что-то про статическую сборку пишут. Типа и DLL все в исполняемом файле - так то охуеть конечно, екзешник на писят метров, но зато, должно тогда на winXP запуститься.
Третий день читаю форумы - всюду есть тема про старые версии Qt, а про 5.9 нихера. И так пробую, и так - на выходе какие-то компиляции целый час, а толку все равно нет - в сборках пишешь, а оно не работает. Какого хуя это не из коробки? Зачем я должен пердолится с этим?
Аноним 25/08/17 Птн 13:19:42  1050701
>>1050693
>Зачем я должен пердолится с этим?
Любители ХР должны страдать, да...
В новых студиях для компиляции под ХР у компилятора отдельный тулсет есть. Если используешь другой компилятор - хз, попробуй настройки потеребить, может там тоже есть отдельная опция для этого.
Еще один вариант, взять dependency walker и просто посмотреть чего бинарнику не хватает под ХР.
Аноним 25/08/17 Птн 13:20:50  1050702
>>1050641
Как и SSO, только вот его ещё не везде выпилили, лол.
Аноним 25/08/17 Птн 13:54:13  1050718
>>1050693
статическая сборка +10мб к твоему хеловорду, ужмешь upx до 5мб. орну в голосину, если xp у тебя 32битный, а собирал под 64.
Аноним 25/08/17 Птн 14:00:07  1050721
>>1050693
>Community Edition, а все равно регистрацию просит
Она потому и коммьюнити, что майкрософт получает твой адрес для спама.
>CodeLite
Он немного забагованный, хоть в целом и работоспособен.
> Как перенести на другой комп?
Скомпилировать статически. Согласно LGPL ты можешь это сделать, тебе лишь нужно распространять вместе с программой объектные файлы и инструкцию о компиляции.
Работа на XP связана не с видом компиляции - статика или нет. Если ты заюзаешь несовместимую функцию, у тебя не либа не подгрузится, а экзешник целиком, или баг где-то вылезет. Чтобы XP поддержать, тебе нужна какая-нибудь полубородатая версия. Последняя версия для висты - 5.6.2, например.
https://wiki.qt.io/PlatformSupport
И КСТАТИ, ты можешь поставить этот 5.5.* и последний кутыкреактор, и оно будет работать.
>>1050701
>Еще один вариант, взять dependency walker и просто посмотреть чего бинарнику не хватает под ХР.
Бинарнику под XP не хватает того, что Qt Oy не тестила Qt под XP, импортов не хватает и прочее.
Аноним 25/08/17 Птн 14:12:19  1050727
>>1050674
>Пиздец просто.
Ебаный дебил, замени на свою любимый char, но смысл ты понял. Нахуй разводить этот троллинг тупостью? пиздец wchar_t у него windows-only, передавай бате что надо было юзать гандоны

>В 95% случаев вся работа заключается в достал-передал дальше.
Ты просто нахуй конченный. Как и вся та орда дебилов которая тащит свое говно в стандарт, уже собрались CGI и curses тащить, ага блять.

мимоаллигатор
Аноним 25/08/17 Птн 15:07:26  1050760
>>1050727
>пиздец wchar_t у него windows-only
А что это не так? Или может быть есть какие-то достоинства использования UTF16 не на windows? С удовольствием послушаю эти охуительные истории
>>1050727
>Ты просто нахуй конченный.
Ты членораздельно можешь сказать с чем ты не согласен? Нахуя тебе отдельные символы? Что ты с ними собрался делать?
>Как и вся та орда дебилов которая тащит свое говно в стандарт, уже собрались CGI и curses тащить, ага блять.
В стандарт ничего не тащат - попопок хуевая стандартная библиотека, ни как в дотнете/жабе, покпокпок, могли бы и в стандарт добавить либу чтобы жопу вытирала/окошки рисовала, покпокпок
В стандарт добавляют новые либы - покпокпок, они что поехали все это в стандарт тащить, горшочек не вари, спасите-помогите, убивают.
Полностью с тобой согласен, братишка, ТОЛЬКО ПРОИГРАЛИ
Аноним 25/08/17 Птн 15:15:18  1050767
>>1050760
>UTF16
>wchar_t
Охуительные истории.

>Нахуя тебе отдельные символы?
Ну я блять даже не знаю нахуй как тебе и объяснить. Это походу особый клинический случай. Если тебе символы не нужны таскай все в voidptr.

все тот же аллигатор
Аноним 25/08/17 Птн 15:55:49  1050788
>>1050693
Хули ты не смог то там. Для твоего случая, хватит с лихвой WxWidgets или fltk какой. Если ты не хочешь тянуть всего мамонта в лице Qt, придется тебе использовать эти либы.
Естественно, нужно хотя бы понимать, как устроен интерфейс. Ведь по сути, генератор форм Qt на выхлопе делает класс виджета с набором объектов, ничего больше. Таким же образом и ты должен создать гуй.
Если ты не понимешь ООП и что из себя представляет окно или форма, то тебе надо возвращаться в свой делфи, чтобы там мышкой программировать или все же осилить как создавать виды.
Аноним 25/08/17 Птн 17:50:14  1050853
Как ответить на вопрос "в чем самая суть полиморфизма"?
Я сказал вот что:
- про реализацию различного поведения одной и той же функции у обектов разных типов
- про удобство работы с иерархией классов через указатель или ссылку на базовый класс
- про рефакторинг: замена условной логики полиморфизмом

Но оказалось, что я не сказал самую СУТЬ.
Аноним 25/08/17 Птн 17:57:24  1050859
>>1050693
Не связывайся со статической линковкой, для проворачивания этого фокуса кьют понадобится собирать руками.
Аноним 25/08/17 Птн 17:59:51  1050860
>>1050859
Так, падажжи, но вот у меня стоит Qt из установщика, внутри либы, что не так?
Аноним 25/08/17 Птн 18:05:58  1050863
>>1050693
И еще, тебя ждет веселье со старыми дровами для твоего драйвера виртуального порта. Когда я работал с CP2101 пришлось специально для ХР отключать автоопределение подключения через винапишные сигналы, глючило дико. Особенно мне нравилось выскакивающее окошко "Устройство не готово; Открыта дверца" при отсоединении кабеля. Кстати, делал такие штуки и на .NET, и на Qt, на первом больше гемора с портом было.
Аноним 25/08/17 Птн 18:11:12  1050866
>>1050860
Статически они не слинкуются. Для этого тебе понадобится скачать сорцы, вызвать configure со --static и собрать. Ман http://doc.qt.io/qt-5/windows-deployment.html говорит, что держать две версии в одном месте одновременно не выйдет.
Аноним 25/08/17 Птн 18:22:26  1050871
>>1050866
Только за коммерческую копию кути заплатить не забудь, статическая линковка это тебе не хуй собачий.
Аноним 25/08/17 Птн 19:08:57  1050904
>>1050702
>Как и SSO
Схера ли это?
Аноним 25/08/17 Птн 19:35:45  1050925
>>1050871
Qt под LGPL, а LGPL позволяет линковаться статически и распространять только объектные файлы, без сорцев.
https://www.gnu.org/licenses/gpl-faq.en.html#LGPLStaticVsDynamic
Аноним 25/08/17 Птн 19:41:07  1050931
>>1050925
Зайди на сайт кути и прочитай условия. Она бесплатна пока юзер может выковырять и поменять её исполняемые файлы, что при статической линковке без исходников не очень хорошо получается.
>>1050904
В одном из прошлых тредов даже кидали выдержку из стандарта, поищи.
Аноним 25/08/17 Птн 20:04:18  1050937
>>1050931
>Зайди на сайт кути и прочитай условия. Она бесплатна пока юзер может выковырять и поменять её исполняемые файлы, что при статической линковке без исходников не очень хорошо получается.
Сто раз обсосано на форуме qt.io, линковать статически и распространять объектники МОЖНО.
Аноним 25/08/17 Птн 20:05:10  1050938
>>1050937
>Сто раз обсосано на форуме qt.io
Пруфы где?
Аноним 25/08/17 Птн 20:19:41  1050943
>>1050931
>Зайди на сайт кути и прочитай условия.
Как действует LGPL определяют не Qt-шники.

> Она бесплатна пока юзер может выковырять и поменять её исполняемые файлы, что при статической линковке без исходников не очень хорошо получается.
Для линковки с другой версией библиотеки достаточно распространять только объектные файлы.
Аноним 25/08/17 Птн 20:20:03  1050944
>>1050931
>В одном из прошлых тредов даже кидали выдержку из стандарта, поищи.
Ты скозал — ты тащи пруфы.
Аноним 25/08/17 Птн 21:06:53  1050968
>>1050853
Бамп.
Аноним 25/08/17 Птн 21:18:07  1050976
>>1050968
Что ты хочешь услышать? Это философский вопрос на который есть тысячи ответов и все правильные.
Аноним 25/08/17 Птн 21:59:38  1051002
>>1050944
Тебе интересно — ты и ищи их, мне чота влом.

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

>>1050853
Скажи интервьюеру что он абстрактный пидарас, либо просто ответь что это дохуя гибко. Что это значит — пусть сам думает с такими вопросами.
Аноним 25/08/17 Птн 22:47:57  1051024
>>1051002
>Тебе интересно — ты и ищи их, мне чота влом.
В общем, слив защитан.

>Линковаться статически чтобы тащить с собой
Ничего тащить с собой не надо. GPL не заставляет распространять исходники с программой, а только предъявлять их по требованию (высылать диск с ними или ссылку давать на то, где они лежат). LGPL, думаю, так же.
А ценно или бесценно — похуй, главное ясно, что для статической линковки коммерческая лицензия на Qt не обязательна.
Аноним 25/08/17 Птн 22:52:00  1051025
>>1050853
Ты всё о динамическом полиморфизме, подумай о статическом.
Полиморфизм - инструмент единоразового описания алгоритмов в отрыве от конкретных применений.
Аноним 25/08/17 Птн 22:54:39  1051026
>>1051025
Меня спрашивают про динамический.
Аноним 25/08/17 Птн 23:45:36  1051040
>>1051024
>В общем, слив защитан.
С такой логикой ты это, давай или откопай параграф стандарта, где обязуют гарантировать sso.
Аноним 26/08/17 Суб 00:18:47  1051044
>>1051040
При чём тут обязуют, дебил?
Аноним 26/08/17 Суб 00:21:44  1051045
>>1051044
Давай-ка для начала прочитай сообщение на которое триггернулся.
Аноним 26/08/17 Суб 00:35:42  1051050
>>1051045
Дебил, ты покажешь, где SSO не соответствует стандарту, наконец?
Аноним 26/08/17 Суб 00:49:11  1051053
>>1051050
>>1051045
>>1051044
Не знаю в чем суть вашей спецолимпиады, но очевидно:

>Every object of type basic_string<charT,
traits, Allocator> shall use an object of type Allocator to allocate and free storage for the contained
charT objects as needed. The Allocator object used shall be obtained as described in 23.2.1.

Использование статически аллоцированного объекта для оптимизации нарушает гарантию выделения всех строк в переданном аллокаторе.
Аноним 26/08/17 Суб 00:54:45  1051056
>>1051053
>Использование статически аллоцированного объекта для оптимизации нарушает гарантию выделения всех строк в переданном аллокаторе.

Неуважаемый дебил №2, про "всех" там ни слова не написано. Там написано "as needed". Перевод сам найдёшь или тебе принести?
Аноним 26/08/17 Суб 01:01:49  1051059
>>1051056
>Every object of type basic_string<charT,
traits, Allocator shall use an object of type Allocator to allocate and free storage

Передай своей учительнице английского что она падшая женщина.
Аноним 26/08/17 Суб 01:03:13  1051061
Да, сорри, я наверно слишком сложно для тебя написал, давай по проще, трактуется это так: не может существовать такого объекта std::string данные которого не находятся в пуле предоставленного аллокатора.
Аноним 26/08/17 Суб 01:05:08  1051062
>>1051061
Там такого не написано, не пизди.
Написано, что аллокатором нужно выделять память при необходимости (as needed). Пока необходимости нет — выделять не надо.
Аноним 26/08/17 Суб 01:06:57  1051063
>>1051062
Я же тебе жирным выделил что every, shall use. Если у объекта есть данные во владении - они needed. Зачем ты продолжаешь защищать свою ошибку?
Аноним 26/08/17 Суб 01:14:21  1051065
>>1051063
>Я же тебе жирным выделил что every, shall use.
Ну да, каждый basic_string<charT, traits, Allocator> должен использовать аллокатор для выделения и освобождения памяти для charT, при необходимости.

Про "для выделения всех строк", как ты написал в >>1051053 , там не написано. Единственное слово, которое можно было бы перевести как "все" это Every, но оно переводится здесь как "каждый" и относится к объектам типа basic_string<...>, а не к хранимым в них charT.

> Если у объекта есть данные во владении - они needed. Зачем ты продолжаешь защищать свою ошибку?

Зачем ты продолжаешь вырывать фразы и слова из контекста и фантазировать? Написано, что память надо выделять при необходимости (as needed). А не то, что хранимые charT внутри needed.
Аноним 26/08/17 Суб 01:15:54  1051066
>>1051065
>но оно переводится здесь как "каждый"
Да даже если ты переведёшь как "Все объекты типа basic_string<...>", то по-прежнему "все" будет относиться к basic_string<...>, а не к хранимым там charT.
Аноним 26/08/17 Суб 01:22:21  1051067
>>1051066
Естественно, относится к basic_string, которые должны по требованию должны выделять пул предоставленным аллокатором.

А, возможно ты не очень понимаешь какой мета контекст у аллокатора в стандарте:

Containers are objects that store other objects. They control allocation and deallocation of these objects
through constructors, destructors, insert and erase operations.

For the components affected by this subclause that declare an allocator_type, objects stored in these
components shall be constructed using the allocator_traits<allocator_type>::construct function and
destroyed using the allocator_traits<allocator_type>::destroy function (20.8.8.2). These functions
are called only for the container’s element type, not for internal types used by the container. [ Note: This
means, for example, that a node-based container might need to construct nodes containing aligned buffers
and call construct to place the element into the buffer. — end note ]

Unless otherwise specified, all containers defined in this clause obtain memory using an allocator

Попробуй воспринять в этом контексте то что тебе пытались выше объяснить, возможно ты поймешь.
Аноним 26/08/17 Суб 01:36:13  1051070
image.png (46Кб, 637x380)
>>1051067
В процитированном тобой [container.requirements.general]/3 говорится про construct и destroy. Что-то запрещает делать construct и destroy в SSO-буфере?

> Unless otherwise specified, all containers defined in this clause obtain memory using an allocator

Список "all containers defined in this clause" прикладываю картинкой. Да даже если бы <string> сюда относился, то тут написано, что получать память нужно с использованием аллокатора. Использовать память внутри объекта это никак не запрещает.

> Попробуй воспринять в этом контексте то что тебе пытались выше объяснить

Не собираюсь воспринимать <string> в контексте, который к <string> не относится.
Аноним 26/08/17 Суб 01:39:50  1051071
>>1051070
>Не собираюсь воспринимать <string> в контексте, который к <string> не относится.
Твои проблемы. Сколько я понимаю выше по треду ты спрашивал почему нет SSO в мейнстримных имплементациях, пусть останется тайной лол.
Аноним 26/08/17 Суб 01:42:53  1051072
>>1051070
Алсо, чтобы у тебя еще остался шанс:
>The Allocator object used shall be obtained as described in 23.2.1.
Строка не является контейнером (наркоманы, лол), но во всех своих аспектах ссылается на клаузы контейнеров.
Аноним 26/08/17 Суб 01:46:04  1051074
>>1051071
>>Не собираюсь воспринимать <string> в контексте, который к <string> не относится.
>Твои проблемы.
Да нет, твои. Это ты полез тыкать меня в правила, которые относятся к контейнерам в таблице. Где нет <string>.

> Сколько я понимаю выше по треду ты спрашивал почему нет SSO в мейнстримных имплементациях
Лолчто? В libstdc++ (GCC) SSO, в libc++ (clang) SSO, в MSVC SSO.

>>1051072
>Строка не является контейнером (наркоманы, лол), но во всех своих аспектах ссылается на клаузы контейнеров.
Где необходимо — пусть ссылается. Главное, что глава Containers не ссылается на <string> в таблице контейнеров.
Аноним 26/08/17 Суб 02:49:43  1051088
Java боярин itt. Поясните за статический анализ кода на c++, почему в различных ide для c++ нет таких же мощных анализатор как для java/c#? Что думаете насчёт rust?
Аноним 26/08/17 Суб 05:00:02  1051106
>>1051088
Так кучи же их, начиная от clang tidy и cppcheck до PVS. Кстати, о каких различных IDE ты говоришь, небось об Idea и VS, так первые с давних времен свою IDE под жабу пилили, так что времени добавить анализатор было предостаточно, а вторые делает майкрософт, который и создавал язык c#, так что неудивительно, что поддержка этого и там есть. А что ты хотел услышать?!
Аноним 26/08/17 Суб 07:12:09  1051124
>>1051088

Потомучто анализировать шаблонный а\параметр шаблона - увлекательное занятие без концептов
Аноним 26/08/17 Суб 08:13:53  1051131
>>1051088
>статический анализ кода
При чем тут он?
Аноним 26/08/17 Суб 13:57:05  1051236
>>1051106
Я пробовал CLion для hello world. Так вот, анализатор там пиздец какой скудный. После java - будто перекрыли кислород.
Аноним 26/08/17 Суб 14:16:07  1051242
>>1051088
>Что думаете насчёт rust?
Там вообще никаких иде нет.
Может быть жетбраинс когда нибудь выпустит свою иде для него, если он взлетит
Аноним 26/08/17 Суб 14:18:19  1051244
>>1051242
Плагин есть.
Аноним 26/08/17 Суб 14:35:11  1051248
>>1051244
Плагин != иде.
Вот когда полноценную иде выпустят, тогда и поговорим.
Аноним 26/08/17 Суб 15:32:06  1051282
>>1051236
Свой там слабенький да. clang tidy тоже не очень, нужно по коду гонять сторонними утилитами, заточенными специально под это дело, если уж на то пошло.
Аноним 26/08/17 Суб 18:24:57  1051381
>>1050938
В пизде, уёбок.
https://forum.qt.io/search?term=lgpl%20static%20linking&in=posts&sortBy=relevance&sortDirection=&showAs=posts
>>1051063
>Если у объекта есть данные во владении - они needed.
Какой упёртый! Если данные можно разместить в объекте, то выделение памяти не needed.
>>1051070
>Что-то запрещает делать construct и destroy в SSO-буфере?
Какбе объект сам-то знает о том, что строка в нём находится. Это всего лишь деталь реализации, а не гарантированный UB.
>>1051088
>Поясните за статический анализ кода на c++
Часть задач анализатора выполняется компилятором и стандартом языка.
Аноним 26/08/17 Суб 18:46:12  1051395
>>1051248
Эм. Та же андроид студия - просто набор плагинов. Что изменится если запилить standalone-сборку с Rust-плагином?
И как раз в начале августа JetBrains объявила официальную поддержку Rust-плагина (до этого это был типа pet-проект пары чуваков из JB).
Аноним 26/08/17 Суб 19:38:48  1051434
Как собрать статическую библиотеку pdcurses при помощи VS2015? Запускаю nmake -f vcwin32.mak и нихуя: nmake не найден. В переменной окружения прописываю путь к nmake, но теперь при компиляции не найдены заголовочники. Редактирую makefile и прописываю пути к папкам include, однако теперь не находится stddef.h. Что за хуйня?
Аноним 26/08/17 Суб 22:05:39  1051533
>>1051381
>Если данные можно разместить в объекте, то выделение памяти не needed.
В приличных языках за такое ебут раскаленной кочергой пока до кукаретеков не дойдет. Но это кресты, тут всем похуй лол, на фоне общего пиздеца никто и не заметит.
Аноним 27/08/17 Вск 00:01:15  1051651
>>1050853
Ну, я не знаю. Оно мокируется и это можно тестить? Кто-то юнит-тестит плюсные проекты?
Аноним 27/08/17 Вск 00:04:59  1051654
whens mahvel.jpg (39Кб, 1280x720)
>>1051124
>без концептов
Концепты когда
Аноним 27/08/17 Вск 00:08:22  1051656
vs.png (51Кб, 341x550)
>>1051434
Нужно открыть консоль через ярлык в папке студии, он туда все пути загонит.
Аноним 27/08/17 Вск 04:15:38  1051735
Как из под линукса задеплоить экзешник через g++?
Аноним 27/08/17 Вск 16:01:15  1052047
>>1051735
Там mingw тулчейн должен быть. Все, дальше сам. Надеюсь про CFLAGS, CXXFLAGS, CC, CXX, LDFLAGS ты уже знаешь
Аноним 27/08/17 Вск 17:11:37  1052108
>>1051735
http://forums.codeblocks.org/index.php?topic=3343.0
Аноним 27/08/17 Вск 17:41:29  1052127
>>1051654
Стандарте так в 23-м или 26-м.

>>1051651
>Кто-то юнит-тестит плюсные проекты?
Да все. Это же такая бюджетная защита от дебила, и кодревьюить надо втрижды меньше.
Аноним 27/08/17 Вск 17:51:59  1052135
>>1051248
Лолшто? Иди посмотри на плагин для какой нибудь скалы или котлина — там фич больше чем для шарпа у какой нибудь студии, без шюток. И вообще открой, сука, доку по архитектуре идеи — это одна большая платформа для плагинов, в которой даже жаву уже вынесли в плагин, что как бы намекает.

Отдельные иде они выпускают только когда есть конторы которые будут закупать лицензии сотнями и тысячами, чтобы потом выпускать мажорные релизы по 3 раза в год и предлагать обновлять лицензии с 20% скидкой как они это регулярно делают, эти же похуеитрожопее челиков из PVS.
Аноним 27/08/17 Вск 18:13:32  1052152
>>1052127
>Стандарте так в 23-м или 26-м.
Из драфта 20-го их уже удалили? Ведь только что добавили.
Аноним 27/08/17 Вск 18:33:26  1052168
>>1052152
Нету ещё никакого драфта 20-го стандарта, коммитет только 17-й закончил. Есть кучка пропозалов которые хуй знает ещё сколько мусолить будут.

Они там пол века решают экспортировать макросы или нет, дальше сам можешь закончить мою прошлую мысль.
Аноним 27/08/17 Вск 18:34:47  1052170
image.png (23Кб, 741x95)
>>1052168
>Нету ещё никакого драфта 20-го стандарта
?!
Аноним 27/08/17 Вск 18:49:12  1052182
>>1052170
Лол, скинь ссылку.
Недавно же только финальное собрание коммитета было и принятие 17-х плюсов.

Хотя энивей — даже наличие в драфте ничего не меняет.
Аноним 27/08/17 Вск 19:13:08  1052191
>>1052182
https://herbsutter.com/2017/07/15/trip-report-summer-iso-c-standards-meeting-toronto/
Аноним 27/08/17 Вск 23:01:41  1052300
>>1052047
Благодарю
Аноним 28/08/17 Пнд 07:02:11  1052442
>>1051533
Это называется "абстракция". У объекта есть члены и аллокатор, а что он с ними делает - тебя ебать не должно, если ты не опираешься на UB и ID.
Аноним 28/08/17 Пнд 13:35:28  1052571
Двач, есть ли тут такие-же говноеды как я и знает ли кто как в gdb параше посмотреть значение глобальной переменной?
Аноним 28/08/17 Пнд 15:24:48  1052636
>>1045411 (OP)
Решил чуть чуть подкопнуть в сторону ассемблера, чтобы более менее понять как работают функции. Хотел спросить, указатель из записи стека ( второе имя для кадра стека ) и base pointer это одно и тоже?
Аноним 28/08/17 Пнд 22:51:09  1052985
>>1045411 (OP)
Посоветуйте на ведро ньюфагу чтобы код писать, можно даже без компиляции наверное, главное чтобы подсветка была.
Мне бы на досуге код писать, а не капчи вводить, или это плохая затея?
Ведро 4.4, рут есть
Аноним 28/08/17 Пнд 23:19:11  1053000
>>1052571
pochemu ty takoy ueban i ne mozhesh poogoogleet'?

> filename.cpp
int x; // global'naya peremennaya, obyavlennaya v filerelated

> p 'filename.cpp'::x
Аноним 29/08/17 Втр 01:19:19  1053045
>>1052442
>крестодаун не может даже примерно предсказать размер своих объектов
>абстракция, пацаны, вы че)))
Аноним 29/08/17 Втр 10:38:57  1053175
>>1053045
зачем тебе нужны примерные размеры твоих объектов? тебе нужны размеры объектов - объектов, или размер данных которые он попросил у аллокатора?

что не так с needed? про small string optimization не слышали? или если строчка пустая, то она всё-равно должна выделить ровно 1 байт под зиротерминатор?
Аноним 29/08/17 Втр 12:14:40  1053206
>>1052985
фгугл
олсо ideone.com и куча других.
>>1053045
Погуглил за тебя.
https://stackoverflow.com/questions/21694302/what-are-the-mechanics-of-short-string-optimization-in-libc
Аноним 29/08/17 Втр 13:03:36  1053229
>>1053206
Спасибо за пруф, никогда не думал что в крестах все настолько хуево.

мимо-си-боярин
Аноним 29/08/17 Втр 13:19:52  1053237
>>1053175
Ну, давай рассмотрим типовую задачу которая обычная успешная крестомакака может пилить, если она не QT-говноед. Есть очередная биткоин/хуеин или просто биржа где-нибудь в штатах и ты галеришь для нее бек. Тебе надо обеспечить защиту строковых данных от любой коррупции памяти, переполнения и прочего, при условии что ты ее отдаешь в третьи руки, возможно даже в объектник, или того хуже интерпретатор другого языка. Расскажи мне как ты это сделаешь без строкового пула.
Аноним 29/08/17 Втр 13:40:55  1053252
>>1053237
Велосипедить ¯ \ _ (ツ) _ / ¯.
Или std::string должна решать вообще все задачи, которые только могут быть в мире?
Аноним 29/08/17 Втр 13:43:40  1053254
>>1053252
А какие вообще задачи ты решаешь с помощью std::string в таком случае? Моя задача более чем типовая судя по StackOverflow и собственному опыту, лол. Мне казалось что кроме обработки данных на крестах/сях писать что-либо уже настолько моветон что и проектов таких нет.
Аноним 29/08/17 Втр 14:20:01  1053275
>>1053254
Ну, std::string s;
std::cin >> s;
std::cout << "Hello " << s << std::endl;
например)
Аноним 29/08/17 Втр 14:26:40  1053281
Куда идти за туториалом, чтобы сделать так, чтобы компьютер печатал сам текст? То есть сам нажимал кнопки и шиндоус реагировал.
Аноним 29/08/17 Втр 14:34:56  1053284
>>1053237
Никакой метод std::string не предусматривает то, что тебе нужно знать про SSO. Задачку рассмотрели, ты опять соснул.
>>1053281
>сделать так, чтобы компьютер печатал сам текст? То есть сам нажимал кнопки и шиндоус реагировал.
Какой ты мимимишный, абрикосик прям.
Аноним 29/08/17 Втр 14:36:34  1053286
>>1053284
Ты на стартап то ( >>1053275 ) инвесторов уже нашел? Первое сентября скоро, можешь не успеть!

Аноним 29/08/17 Втр 14:38:21  1053288
>>1053284
>>1053281
Ок, уже загуглил keybd_event(Буква, 0,0,0);
Аноним 29/08/17 Втр 14:52:13  1053294
>>1053286
на кикстартере уже $0,3 собрал!
Аноним 29/08/17 Втр 15:34:49  1053316
>>1053286
SSO абсолютно прозрачна и соответствует стандарту. Если ты можешь найти пример использования string без UB и ID, в котором SSO что-то ломает - заноси.
Аноним 29/08/17 Втр 19:32:17  1053445
>>1053229
Сибоярин хоть когда-нибудь смотрел на вывод компилятора в ассмблере и все те охуительные трюки, которые используются для ускорения программ на C? SSO - это название техники, которую применяют компиляторы, и тебе, как пользователю языка, ВООБЩЕ похуй на неё.
Аноним 29/08/17 Втр 19:42:39  1053456
>>1053237
Блять, неужели даже коррапт стека не так критичен, как коррапт памяти в которой лежат строчки?
Аноним 29/08/17 Втр 19:42:51  1053457
>>1053445
Да, я замечал такую хуйню что нонешним макакам вообще на всё похуй. Потом полны треды жопной боли что опять дали пинка под зад.
Аноним 29/08/17 Втр 19:45:03  1053459
>>1053445
>SSO - это название техники, которую применяют компиляторы
Ты совсем долбоёб или прикалываешься?
Аноним 29/08/17 Втр 19:53:06  1053467
>>1053254
>Моя задача более чем типовая судя по StackOverflow и собственному опыту, лол.
Охотно тебе верю. А у тех кто программирует графику совсем другие типовые задачи. И у тех кто драйвера для железок. И у тех кто UI. В каждой предметной области есть свои типовые задачи. Какой сюрприз да? Твоя ошибка в том что ты свой опыт распостраняешь на всю индустрию. Это во-первых.
Во-вторых, какай у языка лозунг? Не платишь за то что не используешь. Так почему все должны отказаться от удобной оптимизации ради тебя?
Ну и в-третьих, даже в твоем случае, это нужно только для части строк, так ведь? Т.Е. по хорошему для часть строк - свой самописный класс с пулом. А другая часть стандартная которой все это не нужно, и которая работает быстрее благодаря SSO.
Аноним 29/08/17 Втр 19:57:38  1053471
>>1053456
Все критично, вообще любое повреждение данных. И тебе надо об этом орать в общую шину, что макака сидящая дальше данные портит, иначе тебе пиздец.

Просто память ты можешь отследить (примерно так же как обычный CrtMemoryCheck() в винде), а стек - хуй.

>>1053467
Нет, не для части - для всех. Кстати из всех кого ты перечислил работать с пользовательскими строковыми данными будут и только в дебаге... а хуй знает, может игроделы, в теории, но это должна быть какая то совсем уж унылая шарага где такие вещи в ресурсах не хронятся.
Аноним 29/08/17 Втр 20:15:50  1053491
>>1053457
КОНЕЧНО ЖЕ ты можешь показать пример того, как SSO приводит к ошибке в программе, не использующей UB и ID, верно?
>>1053459
Сделай утверждение, правильность которого можно проверить, не задавай мне пустые вопросы. Слабо?
Аноним 29/08/17 Втр 20:23:49  1053498
>>1053491
>ты совсем долбоеб
>не задавай мне тупые вопросы!!!!
Ебать у вас тут весело, давно я в тематике так не проигрывал.
Аноним 29/08/17 Втр 20:26:34  1053501
>>1053491
Ок, видимо, ты долбоёб.

"SSO применяют компиляторы" — надо же такую хуйню сказануть.
Аноним 29/08/17 Втр 20:35:56  1053511
>>1053491
>ID
Это что за покемон?
Аноним 29/08/17 Втр 22:41:45  1053644
>>1053511
Implementation Defined (behaviour)
Аноним 30/08/17 Срд 13:11:19  1053961

Привет анон я дотянул конца за яйца лабы до конца лета и у меня наебнулся ноут, нет возможности поставить VS
Анон предлагаю 2000 рублей за 2лабы и 1 игру C++/CLI ООП.
Вот сами задания:
-------------------
1. Разработать класс «Множество» на основе массива с полной системой функций, включая интерфейсную функцию просмотра содержимого множества.
2. Используя множество как структуру хранения данных, решить прикладную задачу.
Дана последовательность символов. Сформировать множество, представляющее собой частотный алфавит указанной последовательности.
---------------------------------------------------
Прикладная задача (использовать хэш-таблицы)
Кот Матроскин владеет стадом коров, а также организовал производство молока, сметаны, творога, масла. Ежедневно он учитывает дневной сбыт каждого вида продукции, причем цены товара у Матроскина могут изменяться, и цены ему приходится тоже ежедневно записывать.
В конце месяца необходимо подвести итог по результатам торговли, чтобы выяснить, какая продукция пользуется наибольшим и наименьшим спросом, а также какая продукция приносит наибольшую и наименьшую прибыль.
В конце года необходимо решить ту же задачу для подведения итогов года.
Задание
1. Разработать сущности для сохранения необходимой информации, реализовать необходимые методы.
2. Организовать список записей на основе одного из контейнерных типов Net.Framework, реализовать интерфейс для добавления и отображения записей. Сохранить список в текстовом файле.
3. Реализовать интерфейс для ежедневного ввода данных.
Реализовать механизм подведения итогов и вывод результатов, результаты сохранить в текстовом файле
--------------------------
Написать программу — игру тренажер клавиатуры «Гонки за хвостом».
С нормальным ООП, использовать структуры данных


Кто у умеет писать хороший код на c++/cli и хочет заработать пишите в телегу @totlds
нужно как можно быстрее, дедлайн 2 сентября.
Аноним 30/08/17 Срд 13:25:48  1053969
>>1053961
> c++/cli
>2 к
10к за все и поговорим.
Аноним 30/08/17 Срд 14:21:06  1053993
>>1053961
>«Гонки за хвостом»
Гугл не знает, что это.
Аноним 30/08/17 Срд 14:50:42  1054021
>>1053961
Тебе рановато отсылать тестовые задания, когда ты даже нихуя не понимаешь о чём пишешь.
Аноним 30/08/17 Срд 16:07:40  1054119
>>1053961
>c++/cli
Найс лабы, где учишься?
Аноним 30/08/17 Срд 19:25:26  1054280
>>1053501
STL в большнистве случаев специфична для компилятора, и на совместимость ABI сгружены болты. Да, я назвал оптимизацию, которая должна быть частью STL, оптимизацией компилятора, я жестоко ошибся. Да, ты долбоёб.
>>1053961
> c++/cli
Нахуй и в пизду.
Аноним 30/08/17 Срд 19:37:17  1054290
>>1054280
Обосрался — обтекай.
Аноним 30/08/17 Срд 20:18:31  1054333
>>1053961
Никто это говно за 2к делать не будет, это смешно.
Аноним 30/08/17 Срд 21:20:50  1054387
Что за унылый тред? Хоть бы за memory model посрались.
Аноним 30/08/17 Срд 23:43:57  1054457
>>1053961
За 2к ты можешь купить час моего внерабочего времени. За этот час, ты не сможешь даже описать чего именно от тебя хотят. Потому что хуйня вроде "гонки за хвостом" - какая-то местечковая параша в голове твоего препода.
Аноним 31/08/17 Чтв 00:12:19  1054465
>>1054387
Зачем это в треде понимает 1.5 человека, еще 1.5 делает вид что понимает итого выйдет унылый срач полный маняфантазий.
Аноним 31/08/17 Чтв 02:55:42  1054569
>>1054465
>это в треде понимает 1.5 человека
Почему? Это же база.
Аноним 31/08/17 Чтв 03:00:38  1054571
А знаете, что я заметил
В остальных тредах прикладные задачи решают, а в этом в основном борятся с языком и проблемами с памятью
Аноним 31/08/17 Чтв 10:08:49  1054629
>>1054571
Ну всё правильно. Ведь кресты - язык без задач.
Аноним 31/08/17 Чтв 10:51:10  1054647
1478216531005[1].jpg (88Кб, 900x900)
Ананасы, помоите советом.
Мне надо написать GUI с ползунком, значение с этого ползунка будут передаваться в консоль игры.
нужно, чтобы эта хуйня была в форме экзешника, и при запуске экзешника запускался еще и экзешник игры.
Какую либу использовать для гуи, как замутить экзешник? Не обоссывайте, суки
Аноним 31/08/17 Чтв 12:39:27  1054671
>>1054629
> Ведь кресты - язык без задач.
ты хотел сказать что пад него нет специально выдуманных задач, как для других языкоф
Аноним 31/08/17 Чтв 13:46:08  1054726
>>1054647
Я знаю, как сделать это в Qt. Как сделать ползунок - сам догадаешься, а как передать:
http://doc.qt.io/qt-5/qprocess.html#communicating-via-channels
http://doc.qt.io/qt-5/qprocess.html#setInputChannelMode
http://doc.qt.io/qt-5/qprocess.html#writeData
Олсо, там традиционно есть еботня с текстовыми кодировками - нужно писать в той же кодировке, в которой читает программа. Самый простой способ сделать это - не менять локаль ни в одной программе, ни в другой.

Либо, если игре не нужно принимать текстовые команды вообще, ты можешь поменять режим записи и чтения на бинарный в обоих программах (чтобы \r и \n никогда нигде не конвертировалось) и писать числа по какому-нибудь простому протоколу:
https://stackoverflow.com/questions/1598985/c-read-binary-stdin
cin и cout получают свои данные через stdin и stdout, поэтому нужно поменять режим в stdin и stdout. Читать из cin надо с помощью cin.read(), писать - с помощью cout.write(), использовать sizeof() в обоих случаях.
>>1054387
http://en.cppreference.com/w/cpp/language/memory_model
Прочитал. Зачем сраться? Есть модель памяти, которой все придерживаются, и модель параллельного взаимодействия, применение которой минимизирует оверхед, не вижу никакой проблемы в этом. Есть задачи, в которых это неоптимально?
Аноним 31/08/17 Чтв 16:56:34  1054895
>>1054726
>Прочитал. Зачем сраться?
Я имел в виду срач не о самой модели памяти, а о том, чтобы пришёл какой-нибудь ньюфаг с её непониманием и начал молоть ерунду. Было бы весело покормить его г-ном.
Аноним 31/08/17 Чтв 17:27:51  1054918
>>1054895
зачем в std контейнерах потокобезопасность? почему нельзя сказать "если вы std string в разных потоках используете, это UB, если вы в потоках используете atomic<string> то всё ок"?
Аноним 31/08/17 Чтв 17:34:41  1054921
>>1054918
Ты типа решил нарочно прикинуться тупым ньюфагом? Нарочно — это не интересно.
Аноним 31/08/17 Чтв 17:35:33  1054923
>>1054918
>> если вы в потоках используете atomic<string>
>> atomic<string>
Приехали...
Аноним 31/08/17 Чтв 17:40:27  1054928
>>1054918
>atomic<string>
>std::atomic may be instantiated with any TriviallyCopyable type T:
Аноним 31/08/17 Чтв 17:43:21  1054930
>>1054928
Как-то этот may be слишком неуверенно звучит. Вот так лучше:
The template argument for T shall be trivially copyable
-- http://eel.is/c++draft/atomics.types.generic#1
Аноним 31/08/17 Чтв 18:23:18  1054961
>>1054921
Нет, я правда не знаю ничего про многопоточность в с++
Аноним 31/08/17 Чтв 22:47:01  1055149
>>1054961
Тогда рассказываю.
0) Не бывает абстрактной thread-безопасности для контейнера, может быть лишь конкреный набор безопасных операций с предсказуемым результатом.
1) std::atomic - это инструмент для ускорения параллельных программ. Мьютексы - довольно дорогая операция, и в некоторых случаях ты можешь сделать алгоритм взаимодействия без мьютексов вообще, используя atomic. При этом atomic не использует мьютексы не во всех случаях, а только тогда, когда это возможно. То есть, если ты захочешь сделать atomic<array<char,90001>load(), то внутри будет использован мьютекс почти на всех ЦП.
2) std::atomic<string> - это фингербокс, так как единственная полезная операция, которая становится безопасной по сравнению со string - это swap (exchange). У atomic есть лишь ограниченный набор операций, которые становятся безопасными, читай:
http://en.cppreference.com/w/cpp/atomic/
Конкатенация строк? Получаешь UB - перемещается область данных из-за реаллока, за тебя никто это проверять не будет. Хочешь search&replace - получаешь data race, если другой тред пишет в строку. Когда ты пишешь atomic<string>.load(), ты получаешь обычную копию строки, которая использует ту же динамическую область данных.
3) как я уже сказал, просто потокобезности не бывает, есть определённый набор безопасных операций. Потокобезопасность контейнеров максимально примитивна - она означает то, что если разные треды используют строго разные элементы, то нету data race.
http://eel.is/c++draft/container.requirements.dataraces#2
Ну и ещё некоторые требования:
http://eel.is/c++draft/res.on.data.races
которые обозначают самую милипиздрическую потокобезопасность - то есть, ты гарантированно не отстрелишь ногу, пока ты ничего не делаешь.

Аноним 31/08/17 Чтв 23:06:28  1055182
.PNG (1Кб, 408x44)
Анон, такой вот вопрос про наследование.
Имеется базовый класс и несколько наследуемых от него.
В базовом классе есть функция Touch которая принимает указатель на базовый класс пикрелейтед.
В наследниках эта функция как-то определяется по своему.
Для кого-то функция не будет делать ничего, например.

Так вот суть вопроса.
Можно ли как-нибудь сделать идентификацию типа чтобы избежать динамик_каста?
Ну или сделать виртуальную функцию которая бы возвращала имя класса.

То есть сделать что-то такое https://pastebin.com/qYASThE5 ?

Аноним 31/08/17 Чтв 23:16:41  1055188
>>1055149
> это инструмент для ускорения параллельных
Это инструмент для написания параллельных программ, вот обчитаются такой хуйни и потом городят.

>>1055182
Нет. Вернее можно, но проще и быстрее не станет. Гугли multidispatch.

Аноним 01/09/17 Птн 11:55:54  1055437
>>1055188
>Это инструмент для написания параллельных программ, вот обчитаются такой хуйни и потом городят.
Там дальше в посте объяснение этого утверждения, так что иди нахуй.
>>1055182
>чтобы избежать динамик_каста?
Нахуя? Если ты уже проверил динамический тип, ты можешь использовать статический каст, так как динамический - это проверка RTTI и статический каст. И даже в этом случае - нахуя?
>Можно ли как-нибудь сделать идентификацию типа
enum class в каждой корневой базе сделай, только компилятор делает примерно то же самое для RTTI, так что ты только свой велосипед городишь.
Аноним 01/09/17 Птн 16:19:18  1055572
>>1055437
>enum class в каждой корневой базе сделай, только компилятор делает примерно то же самое для RTTI, так что ты только свой велосипед городишь.
Загугли llvm style rtti, у них была статья об этом в их доках в которой рассказывается что и как, и почему ты хуйню сморозил.
Аноним 01/09/17 Птн 16:19:55  1055574
Какая же уёбищная с точки зрения UI новая капча...
Аноним 01/09/17 Птн 17:33:04  1055618
>>1055182
Спустя сутки я так и не понял, что ты хочешь сделать. То, что ты говоришь - один в один причина для использования виртуальных функций, где там у тебя динамик-каст-то? Ты хочешь избежать милипиздрического оверхеда виртуальных функций?
>>1055572
>Загугли llvm style rtti
Загуглил - ёбаная каша для создания багов с максимальной производительностью. Ты хочешь сказать, что то, что я предложил - это оно? Ну и ладно, посыл тот же - вопрос ОПа нихуя не понятен.
Аноним 01/09/17 Птн 18:34:42  1055663
>>1055618
Да, это оно.
И если разработчики одного из главных (в мире ойти гигиантов — главного) компилятора считают что это может чувствительно просадить перформанс и ради этого месят подобную лапшу (и запрещают в своём кодстайле использовать RTTI c dynamic_сast и прочим, как и гугловцы) — мне кажется они что-то да знают.

Бля, я с этой капчей скоро снова считать без калькулятора научусь, лул.
Аноним 01/09/17 Птн 18:41:35  1055669
>>1055574
Я бы сказал хуёвая...
Аноним 01/09/17 Птн 19:25:02  1055703
>>1055149
>std::atomic - это инструмент для ускорения параллельных программ.
>>1055188
>Это инструмент для написания параллельных программ
Два долбоеба подряд.
Аноним 01/09/17 Птн 20:36:02  1055769
>>1055663
>что это может чувствительно просадить перформанс
Что угодно может просадить перформанс.
>мне кажется
Тебе кажется, а в статье конкретно написано, что нужно это для быстрого динамик_каста, для специализации функций под разные динамические типы аргумента это нах не нужно, достаточно свитча по hash_code из type_info и reinterpret_cast (видимо, ОПу вопроса это и нужно, но хуй дождёшься его).

Что там у них за юзкейс, в котором обязательно нужно использовать кучу кода с огромными возможностями для багов (инбифо есть тулза) - хуй знает, рыть исходники я не буду.
>>1055703
И тут ты рассказываешь о том, зачем тебе нужны атомарные операции с объектами, которые используются в одном потоке.
Аноним 02/09/17 Суб 01:25:28  1055967
>>1055769
>Что там у них за юзкейс, в котором обязательно нужно использовать кучу кода с огромными возможностями для багов (инбифо есть тулза) - хуй знает, рыть исходники я не буду
Ну тогда я тебе, гению, подскажу. Они пишут компиляторы, и им нужно AST составлять, причём по которому нужно очень быстро бегать. Когда у тебя только от одного ебаного <iostream> 40+ к нод (попробуй шланг с -ast-dump на хэловорд натравить) — дохуя весело наверно это дело обходить по 5 раз (надеюсь зачем это делать сам догадаешься?).

Хуй знает какие тут могут быть баги. Допустить опечатку в названии енума?

А вообще, я сейчас 5 раз перечитал вопрос того пацан и понял что он ебётся со стеной и ему тупо нужно почитать про паттерн посетитель (благо в плюсах на шаблонах его можно сделать без виртуальных функций, привет буст, гы).
Аноним 02/09/17 Суб 10:07:26  1056013
>>1055967
>Хуй знает какие тут могут быть баги. Допустить опечатку в названии енума?
Ты сам-то читал статью, блядь?
https://llvm.org/docs/HowToSetUpLLVMStyleRTTI.html
>Ну тогда я тебе, гению, подскажу. Они пишут компиляторы, и им нужно AST составлять, причём по которому нужно очень быстро бегать. Когда у тебя только от одного ебаного <iostream> 40+ к нод (попробуй шланг с -ast-dump на хэловорд натравить) — дохуя весело наверно это дело обходить по 5 раз (надеюсь зачем это делать сам догадаешься?).
О, совсем забыл, я хотел сегодня компилятор написать!
Аноним 02/09/17 Суб 10:59:13  1056027
>>1056013
Читал, и не понял нахуя сравнивать с какими-то усреднёнными значениями из енума. Единственный непонятный и спорный момент.
>О, совсем забыл, я хотел сегодня компилятор написать!
Ну вот ты сам сказал — что ты безграмотное хуйло, ни разу не сталкивавшееся с необходимостью построения кучи древовидного говна, которое встречается почти везде в том или ином виде кроме гуй-кружошлёпства мб. Ведь мало оверхеда от того что эту парашу нельзя ужать в единый массив, и она в памяти растекается как жир итт и примерно никогда не попадает в кэш, нужно ещё виртуальных вызовов и динамик каста насобачить.
Аноним 02/09/17 Суб 13:10:26  1056066
>>1055769
Это называется примитивом синхронизации, неуч. Многие параллельные операции можно делать и без синхронизации.
Про инструмент и ускорение это какое-нибудь Intel Parallel Studio.
Аноним 02/09/17 Суб 16:02:19  1056154
>c+17
>static const inline std::string kek{“lul”};
Дожили до шарпа, блэт.
Аноним 02/09/17 Суб 16:41:13  1056170
>>1056154
Скоро (через год) во всех (на самом деле нет) компиляторах мира (на самом деле только Земли)
Аноним 02/09/17 Суб 16:51:18  1056171
>>1056170
Это уже во всех кроме отсталой хуиты вроде оракловского и интеловского компилеров которые в своих вселенных живут.
Аноним 02/09/17 Суб 16:55:48  1056175
Поясните пожалуйста кто-нибудь залетному, зачем нужно писать везде using namespace std? Я пытался гуглить, но все хором пишут ыыы эээ ето пространство имен. Блядь, пиздос, да оно понятно из названия что это пространство имен, мне уже даже похуй что такое пространство имен, скажите мне что делает конкретно std?
Аноним 02/09/17 Суб 17:29:14  1056191
>>1056175
это объявление импортирует объявления (имена) из пространства имен std. Все.
Аноним 02/09/17 Суб 17:44:42  1056199
>>1056191
Пиздос, блядь. Ну не траль плез.
Аноним 02/09/17 Суб 17:55:49  1056206
>>1056199
Ну, проще говоря, это делается для того, чтобы можно было выполнить unqualified name lookup. Так лучше?
http://en.cppreference.com/w/cpp/language/unqualified_lookup
Аноним 02/09/17 Суб 17:57:05  1056211
>>1056175
Ну ебана, а как тебе объяснить что оно делает, если ты не понимаешь ничего из того, с чем оно это делает? Пока не пройдешь неймспейсы просто забей хуй и прими как должное - "надо писать это шоб та функция работала, почему - пока хз".
Аноним 02/09/17 Суб 18:03:48  1056214
>>1056175
А если совсем грубо объяснять:
Вот ты написал класс class Huy, и хочешь, чтобы другие, когда подключали твою йоба-либу, не получали кучу ошибок из-за того, что твой класс конфликтует с их классом, который тоже называется Huy. Поэтому ты используешь неймспейс - namespace HuyLib { class Huy };

Теперь, когда другие подключат твою либу, они не смогут просто сразу писать a = new Huy, потому что там, где они это пишут, нет такого имени - оно в другом пространстве имен. Чтобы оно было, надо либо явно указывать неймспейс каждый раз - HuyLib::Huy (так же, как ты можешь явно писать везде std:: для стандартных функций вместо using), либо просто написать один раз using namespace HuyLib, и теперь все имена из неймспейса становятся видны (если ты уверен, что в твоем файле нет конфликтующих имен и можно просто юзать как есть).
Аноним 02/09/17 Суб 19:00:16  1056253
>>1056206
>Так лучше?
Да.
Аноним 02/09/17 Суб 19:02:14  1056254
Как теперь в 17 студии создать пустой проект?
Аноним 02/09/17 Суб 20:03:02  1056275
>>1056027
>Читал, и не понял нахуя сравнивать с какими-то усреднёнными значениями из енума. Единственный непонятный и спорный момент.
Динамик каст узнаёт, является ли объект запрошенным типом или имеет ли предка запрошенного типа. Числа элементам энума присваиваются строго в порядке следования. Дерево наследования с единственным наследованием ложится на шкалу значений ( порядок определяется обходом в глубину), после этого все производные типы для динамик_каста оказываются в отрезке от базы до последнего наследника, и когда запрашивается динамик_каст в некоторый класса, то статический метод этого класса проверяет, находится ли Kind конвертируемого класса в нужном отрезке.

Если наследование множественное, начинается пиздец - надо сравнивать с несколькими отрезками.
>>1056066
Иди-ка ты нахуй, дебил. Примитив синхронизации - мьютекс. atomic можно целиком сделать через мьютексы и не определять никаких специальных операций для объектов вида сложения, инкремента, подмены или ещё чего, они определены только потому, что они довольно часто используются и на некоторых ЦП они МОГУТ быть выполнены без мьютекса. Примитивом атомик не является.
>>1056254
фгугл
Аноним 02/09/17 Суб 22:59:54  1056313
Двач, делаю для себя небольшой кросплатформенный фреймворк, с помощью него я создаю окно и мне нужно получать от окна состояние нажатых клавиш, состояние этого окна и прочую информацию о состоянии чего либо, как я понимаю в большинстве других фреймворков система хранения и считывания этой информации реализована через события (евенты), не подскажете можно ли мне реализовать что-то другое помимо событий, или лучше просто скопировать эту систему?
Аноним 02/09/17 Суб 23:38:02  1056324
>>1056275
>Примитив синхронизации - мьютекс.
А это где-то сказано в стандарте или это так, твоё МНЕНИЕ?
Аноним 02/09/17 Суб 23:49:02  1056328
>>1056313
>не подскажете можно ли мне реализовать что-то другое помимо событий
Можно. Гугли в сторону functional reactive programming.
Аноним 03/09/17 Вск 00:08:05  1056335
>>1056275
> atomic можно целиком сделать через мьютексы
Что, даже atomic_flag?
Аноним 03/09/17 Вск 01:00:08  1056341
>>1056275
>Если наследование множественное, начинается пиздец - надо сравнивать с несколькими отрезками.
Вот оно что, михалыч. Спасибо что выше столько капитанской фигни написал, графоман, я ж не осилил бы.
Аноним 03/09/17 Вск 07:32:22  1056373
Аноны, это константный указатель на константу?

foo (const int const m);

Принимать должке двумерный массив созданный неизвестным образом
Аноним 03/09/17 Вск 07:33:54  1056374
32131.jpg (10Кб, 394x97)
>>1056373
А куда звёздочки делись-то?
Аноним 03/09/17 Вск 09:11:39  1056381
>>1056335
Да.
>>1056324
Показываешь место в стандарте, где написано, что atomic - это примитив - покажу, где написано, что mutex - это примитив.
>>1056373
Это неконстантный указатель на константный указатель на константный инт.
>Принимать должке двумерный массив созданный неизвестным образом
Нахуй тогда указатели, делай template.
template<typename T>
foo(T n)
Вот так ты вообще любой массив примешь, включая ассоциативный контейнер (а не только кусок памяти).
Аноним 03/09/17 Вск 09:35:03  1056385
>>1056381
>>делай
Это задачка
у меня есть только объявление функции которую надо реализовать
Аноним 03/09/17 Вск 09:35:44  1056386
>>1056381
Спасибо

>>1056385-кун
Аноним 03/09/17 Вск 11:09:22  1056409
Хочу вкатиться на одну вакансию, где занимаются мультимедиа. Как мне за полгода освоить следующее:

- работа с мультимедиа (видео, игры)
- Java и андроид
- отличное знание C++

Что читать?
Аноним 03/09/17 Вск 12:15:44  1056424
>>1056409
За пол года это не особо реально.
Аноним 03/09/17 Вск 12:18:40  1056425
978-5-8459-1825[...].jpg (74Кб, 341x500)
>>1056409
Аноним 03/09/17 Вск 16:18:40  1056576
>>1056381
>Да.
Нет.
Аноним 03/09/17 Вск 16:21:39  1056579
>>1056576
Минет. Не можешь написать буль с атомарными операциями на мьютексах - вон из профессии.
Аноним 03/09/17 Вск 16:24:15  1056582
>>1056579
Вон из профессии, дебил
Operations on an object of type atomic_­flag shall be lock-free.
http://eel.is/c++draft/atomics.flag#2
Аноним 03/09/17 Вск 16:27:39  1056586
>>1056582
То есть, всё-таки atomic нужен для улучшения производительности? То есть, всё-таки, он не является примитивом?
Аноним 03/09/17 Вск 16:34:23  1056590
>>1056586
Я влез в вашу дебильную беседу только после того, как ты начал пиздеть, что любой атомик можно реализовать на мьютексах. Причём ты не остановился даже после того, когда я явно спросил про atomic_flag. Который должен быть lock-free.

Кто там у вас примитив — это ты выясняй со своими дебильными собеседниками.
Аноним 03/09/17 Вск 16:41:04  1056597
>>1056590
>Который должен быть lock-free.
У lock-free есть какое-то другое свойство, кроме производительности? Примитив - это то, через что можно сделать всё остальное, атомик флаг пишется на мьютексах и примитивом не является, отличие будет только в производительности.
Аноним 03/09/17 Вск 16:42:37  1056598
>>1056597
>атомик флаг пишется на мьютексах
Дебил, как ты на мьютексах удовлетворишь требованию lock-free?
Аноним 03/09/17 Вск 16:48:28  1056603
>>1056598
У lock-free есть какое-то другое свойство, кроме производительности?
Аноним 03/09/17 Вск 16:49:01  1056604
>>1056598
Как ты вообще удовлетворишь это требование на ЦП, на котором нужной инструкции нет?
Аноним 03/09/17 Вск 16:56:53  1056614
бачмо.jpg (9Кб, 200x290)
>>1056579
>буль
Зиг бульк!
Аноним 03/09/17 Вск 17:03:34  1056618
>>1056604
Никак. А что?
Аноним 03/09/17 Вск 17:14:34  1056625
>>1056597
>другое свойство, кроме производительности
У него одно свойство - операции (некоторые) с ним выполняются за один такт. К производительности это никаким краем.
Аноним 03/09/17 Вск 17:23:35  1056629
>>1056625
>У него одно свойство - операции (некоторые) с ним выполняются за один такт.
Ёбаное гонево.
1) Ты не можешь за один такт сказать всем ядрам процессора о том, что ты сейчас будешь менять один бит.
2) То, что оно сделано за один такт, не означает того, что нету data race.
>К производительности это никаким краем.
Тогда для чего нужно требование lock-free? Есть другие применения у lock-free-операций?
Аноним 03/09/17 Вск 17:25:47  1056630
>>1056629
>Тогда для чего нужно требование lock-free?
Они должны быть address-free.
Аноним 03/09/17 Вск 17:26:25  1056631
>>1056629
>Ты не можешь за один такт сказать всем ядрам процессора
Зачем мне им это говорить? Для того и ввели понятие "атомарных" операций, чтобы не было пересечений ни по кешам ни по пайплайну. см. >>1056630


>Тогда для чего нужно требование lock-free?
https://en.wikipedia.org/wiki/Linearizability
Аноним 03/09/17 Вск 20:35:40  1056726
>>1056630
>>1056631
О, отлично, попёр конструктив.
>>1056630
Никакое свойство mutex не препятствует исполнению atomic_flag через мьютекс (кроме самого требования не делать это через мьютекс). address-free - это о меняемом значении и о том, что оно должно обновиться во всех адресных пространствах сразу. Когда ты залочил буль и пишешь новый буль, это обеспечивается механизмами когерентности кэша физической памяти в ЦП. Когда ты делаешь это с помощью одной инструкции, происходит то же самое, просто очередью управляет процессор без мьютексов - если несколько потоков подряд решат записать в буль в одно время, они либо залочатся на разное время, либо залочатся на большОе время (достаточное для того, чтобы разрулить все ядра в самом худшем случае) - в зависимости от того, как процессор сделан.
>>1056631
>Зачем мне им это говорить?
>чтобы не было пересечений ни по кешам ни по пайплайну.
atomic_flag zalupa;
........
и тут такие 2 треда (которые не на одном ядре выполняются) одновременно решают сделать:
result=zalupa.test_and_set();

Что произойдёт дальше? Оба треда получают false?
Аноним 03/09/17 Вск 20:38:32  1056729
Если вы не видите причин для улучшения производительности, просто представьте себе, что тред, в котором залочен критический буль (всем нужен, все используют), исчерпал тик и ушёл спать. Пока остальные треды не решат, что этот буль всем им нужен, пройдёт до хрена тактов. Если в ЦП есть нужная атомарная операция с булем, такого никогда не будет.
Аноним 03/09/17 Вск 20:43:44  1056734
>>1056726
>Что произойдёт дальше?
Обе инструкции выполнятся последовательно в произвольном порядке.
Аноним 03/09/17 Вск 20:54:39  1056738
angrypepe.jpg (39Кб, 900x900)
От Clion-параши опять отвалилась вижуал студия. Блять сука две недели назад все работало. АААА!
Аноним 03/09/17 Вск 20:55:19  1056739
>>1056734
>Обе инструкции выполнятся последовательно
Как одно ядро узнает о том, что на втором ядре выполняется инструкция для того же адреса?
Аноним 03/09/17 Вск 21:09:33  1056754
>>1056726
>Никакое свойство mutex не препятствует исполнению atomic_flag через мьютекс
У mutex есть гарантия address-free?

>address-free - это о меняемом значении и о том, что оно должно обновиться во всех адресных пространствах сразу.
Цитату из стандарта, плиз.
Аноним 03/09/17 Вск 21:18:00  1056763
>>1056738
20 минут плясок с бубном и студия снова работает.

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

Заработало после того, как я поудалял все проекты, все cmake кэши попробовал создать проект заново.
Аноним 03/09/17 Вск 21:28:58  1056770
>>1056754
>У mutex есть гарантия address-free?
Мьютекс содержится в памяти - ясен пень, он address-free, это свойство памяти, расшаренной между процессами средствами ОС, блядь. Попробуй найти хоть одну ОС, в которой изменения в расшаренной памяти видны не всем процессам сразу, это естественное свойство расшаренной памяти, она только для этого и нужна. Попробуй найти хоть одну архитектуру ЦП, в которой видимость записи в память зависит от того, какая таблица виртуальной памяти была загружена.
>Цитату из стандарта, плиз.
http://eel.is/c++draft/atomics.lockfree#4
Аноним 03/09/17 Вск 21:41:24  1056779
>>1056770
>Мьютекс содержится в памяти - ясен пень, он address-free
Без пней, пожалуйста. Гарантию address-free принеси. На уровне стандарта.
Аноним 03/09/17 Вск 22:50:09  1056829
>>1056739
По мемори фенсу, очевидно.
Аноним 03/09/17 Вск 22:51:39  1056831
>>1056779
>На уровне стандарта.
Еще б стандарт знал об этом чего.
Аноним 04/09/17 Пнд 00:07:54  1056855
>>1056779
Щас у меня голова вскипит, ты заебал меня. Это ты так ведёшь меня к тому, что в плюсах мьютексы только для тредов, и что комитет вставил атомик_флаги, но до сих пор не сделал межпроцессные мьютексы обязательными, которые можно запросто написать на тех же инструкциях? Ладно, я всё понял. Да, действительно, с точки зрения STL атомик_флаг - незаменим в строгом смысле.
http://eel.is/c++draft/thread#req.lockable.general-1
>An execution agent is an entity such as a thread that may perform work in parallel with other execution agents. [ Note: Implementations or users may introduce other kinds of agents such as processes or thread-pool tasks. — end note  ] The calling agent is determined by context, e.g. the calling thread that contains the call, and so on.
Здесь говорится, что агент - это тред, процесс и т.д., но не говорится, что процесс должен быть агентом. Грубо говоря, заменимость атомик_флага мьютексом зависит от implementation.
>>1056829
Ага, и мемори-фенс у нас за один так выполняется, да? Я уже не говорю о том, что в большинстве процессоров за один такт вообще ничего не выполняется, так как гиперскалярность. В терминологии силён не особо, но этот твой мемори-фенс означает то, что одно ядро должно сказать всем остальным об изменении буля ДО ТОГО, как они тоже попытаются это сделать, сделают и уже выполнят другие инструкции с использованием полученного значения. В этом вы меня не наебёте - из атомарности операции следует не то, что она за такт выполняется, а чаще всего то, что она выполняется одной инструкцией.
Аноним 04/09/17 Пнд 00:22:50  1056857
>>1056855
>но этот твой мемори-фенс означает то,
Нет. Это просто инструкция, которая учитывается при наполнении пайплайна.

>В этом вы меня не наебёте - из атомарности операции следует не то, что она за такт выполняется, а чаще всего то, что она выполняется одной инструкцией.
Вопрос терминологии, не более. В ряде случаев обе формулировки верны.
Аноним 04/09/17 Пнд 01:23:15  1056868
>>1056855
Я вообще не пойму, чего ты так вцепился в мьютексы как примитивы. Ты это в какой-то книжке прочитал?

В общем случае атомики можно выразить через мьютексы, а мьютексы через атомики. (Но это в общем случае. Не в общем есть atomic_flag.) Почему одно примитивнее другого?
Аноним 04/09/17 Пнд 02:53:35  1056879
>>1056214
Сотни нефти тебе.
Аноним 04/09/17 Пнд 02:53:55  1056880
>>1047134
chcp 1251
Гугли настройку локалей и пару win api функций.
Аноним 04/09/17 Пнд 02:55:31  1056881
>>1047203
imbue для операторов std::wcout, std::wcin, std::cin, std::cout, и посмотри сразу какие там типы данных используются, чтобы потом меньше ебли было.
Аноним 04/09/17 Пнд 03:04:05  1056885
Как реализовать выпадающий список при вводе строки в консоли? Ну допустим регулярки + ассоциативный список, а внешне это можно как-то стильненько оформить? Типа как поисковая строка у Гугла. Без winapi...в теории можно питон подключить но такое.
Аноним 04/09/17 Пнд 07:21:25  1056910
Аноны, что с этим кодом не так? Почему при переборе с последнего элемента до первого и с первого до последнего получаются разные числа? Программа должна переводить из десятичной системы в двоичную, если что.
Аноним 04/09/17 Пнд 07:22:10  1056911
>>1056910
Самое главное забыл.
https://ideone.com/YTgn4r
Аноним 04/09/17 Пнд 07:46:43  1056914
>>1056868
>Почему одно примитивнее другого?
Изначально речь шла об std::atomic.
>>1056881
>imbue для операторов std::wcout, std::wcin
Во-первых это не операторы. Во-вторых wcout и wcin на винде мёртворождены, нету их там.
>>1056885
Какой ещё выпадающий список? Откуда выпадает хоть? Питон нахуя для этого?
Очевидное очевидно: возьми исходники mintty или другого терминала и прикрути. Без винапи ты это не осилишь, если сам не сделаешь терминал на Qt.
>>1056910
>Программа должна переводить из десятичной системы в двоичную,
Делается в две строчки с помощью модификаторов вывода.
>>1056910
>Почему при переборе с последнего элемента до первого и с первого до последнего получаются разные числа?
Потому что int i проходит разные значения, посмотри внимательно на свой for.
Аноним 04/09/17 Пнд 12:43:33  1056975
>>1056910
Используй оператор "стремится к нулю" — `--> 0`
https://ideone.com/x2OdKQ
Аноним 04/09/17 Пнд 15:24:13  1057023
>>1056914

bin == 0 при i = bin.size, верно? Последний символ равен нулю и все такое, да?
Аноним 04/09/17 Пнд 15:36:43  1057026
>>1057023
bin==0 я имел ввиду.
Аноним 04/09/17 Пнд 15:37:17  1057027
>>1057026
бин ИТЫЙ я имел ввиду, блядь.
Аноним 04/09/17 Пнд 16:05:24  1057036
>>1057023>>1057026>>1057027
bin[bin.size()] - это выстрел в ногу.
http://ru.cppreference.com/w/cpp/container/vector
Вот, ищи, где там написано, что там будет ноль.
Пройди с помощью бумажки все значения i в обоих for-ах. Если ты не знаешь, как это сделать - тряси препода.
Аноним 04/09/17 Пнд 20:04:29  1057138
Ананасы, как узнать, что тип аргумента шаблонной функции имеет поле ::value_type?
Аноним 04/09/17 Пнд 20:09:07  1057140
Где можно почитать про возможности MinGW? Я посмотрел, что там куча библиотек, но описания к ним нет.
Аноним 04/09/17 Пнд 20:19:22  1057145
>>1057138
гугли sfinae

P.S. чтобы было ещё веселее можно использовать вот такой макрос, но он работает только под визуалкой ждем концептов
https://ideone.com/YZazpy
Аноним 04/09/17 Пнд 20:43:21  1057163
>>1057145
>он работает только под визуалкой
Потому что нахуя Y::##_arg_type ?
https://ideone.com/od5Vxv
Аноним 04/09/17 Пнд 21:58:21  1057202
>>1057140
Он несколько староват.
Аноним 04/09/17 Пнд 22:02:50  1057204
image.png (26Кб, 627x151)
>>1057202
Аноним 04/09/17 Пнд 22:03:42  1057205
image.png (14Кб, 200x198)
>>1057202
>несколько староват
Аноним 05/09/17 Втр 06:15:33  1057300
>>1057163
ЕБАТЬ, ТЫ РАСКРЫЛ МНЕ ГЛАЗА, ГОСПОДИ, ТЫ ЛУЧШИЙ
Аноним 05/09/17 Втр 08:34:24  1057317
>>1057300
На вопрос отвечай.
Аноним 05/09/17 Втр 10:01:40  1057330
>>1057317
Какой вопрос то? зачем там ##? выяснилось что незачем ¯ \ _ (ツ) _ / ¯
Аноним 05/09/17 Втр 10:14:56  1057334
>>1057330
Ты зачем его туда вставил?
Аноним 05/09/17 Втр 10:35:41  1057340
>>1057334
Так я хотел склеить Y:: и аргумент, кто же знал что там можно и без склейки
да и под визуалкой работает, мне большего и не надо
Аноним 05/09/17 Втр 10:37:43  1057342
>>1057340
Ты вообще знаешь, зачем ## нужен?

> да и под визуалкой работает
Она известна своим кривым препроцессором. Чаще он не осиливает валидный код, но тут «осилил» (т.е. выдал ожидаемый результат) невалидный. Считать ли это плюсом? Не думаю.
Аноним 05/09/17 Втр 10:44:27  1057345
>>1057342
>Ты вообще знаешь, зачем ## нужен?

#define FOO(a, b) (a##b)

std::cout << FOO(2, ch);//"2ch"
Аноним 05/09/17 Втр 10:45:22  1057346
>>1057345
Нет, это не stringification.
Аноним 05/09/17 Втр 10:52:02  1057350
>>1057346
чуть-чуть не корректный пример привел

#define FOO(a, b) (a##b)
int c2h = 10;
std::cout << FOO(c2, h);//"10"

вот так вот
а # обрамляет лексему в двойные кавычки
Аноним 05/09/17 Втр 10:55:09  1057352
>>1057350
Ок.
И зачем слеплять :: и _arg_type в единый токен? Это 2 разных токена и должны быть ими.
Аноним 05/09/17 Втр 10:57:21  1057355
>>1057352
>Кто же знал
шо доебался то?
Аноним 05/09/17 Втр 13:12:57  1057393
>>1057355
>шо доебался то?
Есть за что.
Аноним 05/09/17 Втр 13:19:07  1057396
>>1057393
за что? за то, что я не очень силен в самой худшей части этого языка?
Аноним 05/09/17 Втр 13:35:56  1057400
>>1057396
>в самой худшей части этого языка?
Есть лучшие методы кодогенерации, чем макросы?
Аноним 05/09/17 Втр 14:27:46  1057418
>>1057400
Разве что MOC, да отдельные утилиты для кодогенерации. Но это не делает макросы менее отвратительными
Аноним 05/09/17 Втр 14:46:46  1057422
>>1057202
А какой тогда компилятор использовать?
Аноним 05/09/17 Втр 14:50:57  1057423
image.png (75Кб, 632x364)
>>1057422
MinGW и используй. Эта >>1057202 манька судит о новизне компилера по дате модификации топ-левел каталога. А если пройти внутрь этого каталога, то видим пикрелейтед.
Аноним 05/09/17 Втр 14:52:09  1057424
>>1057422
Можешь взять mingw-w64 хоть седьмой версии (см. >>1057205 ).
Аноним 05/09/17 Втр 14:55:35  1057425
Можно ли писать программы на OpenGL без библиотеки glut? Дело в том, что она не входит в комплект MinGW, а на официальном сайте архив только с h файлами без файлов самой библиотеки. Где её брать не понятно.
Аноним 05/09/17 Втр 14:58:44  1057427
>>1057425
http://www.transmissionzero.co.uk/software/freeglut-devel/
Аноним 05/09/17 Втр 15:23:44  1057445
Сисси-бои, как в Win32 API сделать так, что бы дочернее окно было привязано к нижней границе родительского (главного) окна и чтобы, когда главное окно было не в полном размере, дочернее окно всё равно было на нижней границе. Типа как у MSVS окно вывода ошибок. Спрашиваю не из-за лености, а от отчаяния.
Аноним 05/09/17 Втр 15:26:16  1057450
>>1057425
glfw или SDL, выбирай любое
Аноним 05/09/17 Втр 15:34:43  1057458
>>1057445
>как в Win32 API сделать
нахуй, решительно
Аноним 05/09/17 Втр 16:09:03  1057472
>>1057458
Что так категорично?
Аноним 05/09/17 Втр 17:23:05  1057495
>>1057450
SDL - не рабочая библиотека. Я всё аккуратно скопировал в папки MinGW, подключил библиотеку к проекта и он мне выдают, что в самой библиотеке не может найти функции:
c:/MinGW/i686-w64-mingw32/lib/libSDL2.a(SDL_systimer.o): In function `SDL_SetSystemTimerResolution':
/Users/slouken/release/SDL/SDL2-2.0.5-source/foo-x86/../src/timer/windows/SDL_systimer.c:57: undefined reference to `_imp__timeBeginPeriod@4'

и ещё 100500 аналогичных строчек...

Видимо выкладывают какие-то битые сборки и не проверяют их.
Аноним 05/09/17 Втр 18:14:32  1057526
>>1057495
https://github.com/spurious/SDL-mirror
Попробуй отсюда ее вытянуть и сбилдить на том же cmake, к примеру, самое простое, что можно придумать.
А вообще, если ты решил копошиться под MinGW, то советую лучше вытянуть MSYS2 или Cygwin (второй будет по-жирнее, но и по-лучше, вроде как). MSYS2 самый простой вариант для тебя, как мне кажется. Установишь его и потом pacman-ом поставишь еще sdl и всего-то делов.
Аноним 05/09/17 Втр 19:17:11  1057559
Ононы, нахуя нам "оператор ."?
Аноним 05/09/17 Втр 20:59:59  1057634
поясните за Седжвика, прочел страниц 100 и возникает вопрос, нет ли чего лучше по теме алгоритмов ?
Аноним 05/09/17 Втр 21:22:56  1057663
>>1057634
И что тебе не понравилось? Ну если ты скучающий аутист, то можешь Кнута навернуть.
Аноним 05/09/17 Втр 22:02:13  1057687
>>1057495
>и он мне выдают, что в самой библиотеке не может найти функции:
timeBeginPeriod - это функция из винды. Видимо, тебе нужно ручками подключить "Winmm.lib". Я не знаю, есть ли в GCC вообще это автоматическое подтягивание либ, я никогда не видел его. Судя по километрам "-lХУЙПИЗДА" в мефкфайлах, которые я видел - нет.
>>1057559
Это часть языка, что значит "нахуя"? От того, что он не может быть перегружен, он не перестаёт быть оператором.
Аноним 06/09/17 Срд 06:26:47  1057818
>>1057687
я дебил, соре, не так написал вопрос
нахуя в комитете идут разговоры о возможности перегрузки оператора точка? зачем нам перегружать ТОЧКУ БЛЯТЬ, чтобы ещё сильнее язык усложнить?
Аноним 06/09/17 Срд 06:29:04  1057819
>>1057425
Можно и нужно, glut устарел уже лет как 10.
SFML, GLFW, SDL, ну или писать напрямую без сторонних библиотек.
Аноним 06/09/17 Срд 07:23:06  1057829
>>1057818
Хотят сделать компилируемый LISP, небось. Хуй что выйдеет, впрочем. То, что разговоры идут, ничего не значит.
>>1057687
> не знаю, есть ли в GCC вообще это автоматическое подтягивание либ, я никогда не видел его. Судя по километрам "-lХУЙПИЗДА" в мефкфайлах, которые я видел - нет.
Только что проверил скачанный архив с SDL - там есть pkgconfig, в котором написано всё это:
>Libs.private: -lmingw32 -lSDL2main -lSDL2 -mwindows -Wl,--no-undefined -lm -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid -static-libgcc
То есть, всё должно линковаться. Куда ты распаковал архив? Нужно распаковывать так, чтобы папка i686-w64-mingw32 слилась с такой же папкой МинГВ.
Аноним 06/09/17 Срд 07:24:21  1057830
И вообще, какую систему сборки ты используешь?
Аноним 06/09/17 Срд 07:30:40  1057831
>>1057829
Можно чууууть-чуть поподробнее про лисп?
Аноним 06/09/17 Срд 09:18:25  1057849
>>1057831
Разве что совсем чуть-чуть, я только Схемку знаю немного (там ООП нету, вроде, но есть полноценные макропреобразования). Дело в том, что, имея интерпретатор (с JIT или без - вопрос производительности) можно писать некоторые специфичные вещи так коротко, что на плюсах ты заебёшься писать. Макро в ЛИСПе - это как препроцессинг, только его можно делать в любом месте и использовать состояние программы и все возможности языка, а не только всякие примитивы типа define, #, простой подстановки и так далее. Шаблоны - это то, что приближает C++ к ЛИСПу. Constexpr if, constexpr array и прочее - это перетягивание возможностей языка на сторону компилятора. Для того, чтобы сделать double dispatch - т.е. вызов метода соотв. динамическому типу и вызов метода, соотв. динам. типу аргумента - в плюсах надо городить стену кода из одинаковых методов, так как это единственный способ автоматического выбора перегруженной функции по типу, даже dynamic_cast тебя не может спасти. Некоторые вещи можно добавить в плюсы ПОЧТИ безболезненно (статики создаются в каждом инстансе generic lambda вместо одного на всех, http://coliru.stacked-crooked.com/a/ae480e8cfdf344d1, нахуй это надо?), некоторые - со страшной болью, как constexpr if.

Без встроенного компилятора и возможности записи кода в исполняемую память (привет защите от исполнения в большинстве современных ОС) C++ ЛИСПом не станет, и если это хоть когда-то случится, стандарт языка станет занимать шкаф, а ошибок в стандарте и компиляторах будет море.
Аноним 06/09/17 Срд 09:21:16  1057850
>>1057849
http://coliru.stacked-crooked.com/a/ae480e8cfdf344d1
Запятая лишняя.
Аноним 06/09/17 Срд 09:25:48  1057851
>>1057849
Ну про лисповые макросы, и изменения кода без перезагрузки программы я слышал, но каким боком тут "оператор точка"? :D
Аноним 06/09/17 Срд 09:27:53  1057852
>>1057849
Про инстансы статиков - логично, а вдруг
static decltype(hui) Ggurda;?
тогда без многих инстансов точно не обойтись, а городить проверки "зависит ли тип статической переменной от типа одного из аргументов?" было бы лишним, вот честно
Аноним 06/09/17 Срд 09:47:46  1057858
2ch, не могу понять, как в winapi отслеживать события вне окна?
Аноним 06/09/17 Срд 10:38:37  1057875
>>1057851
Почитал пропосал и понял, что это у меня синдром утёнка.
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/1990/WG21%201990/X3J16_90%20WG21%20Request%20for%20Consideration%20-%20Overloadable%20Unary%20operator.pdf
В целом неплохо написано. Это и есть ответ на твой вопрос о том, зачем это нужно. Но то, что из плюсов пытаются сделать ЛИСП - всё равно отчасти правда.
>>1057852
Собственно, это не только к лямбдам относится. Иногда по коду сразу не видно, будет инстанциирован тимплейт ещё раз или нет. Но практическихх примеров для иллюстрации у меня нет.
Аноним 06/09/17 Срд 10:39:06  1057876
>>1057858
Иди НА ХУЙ.
Аноним 06/09/17 Срд 10:40:14  1057878
>>1057876
А вот и быдлецо подъехало, почему не на заводе или не в школе?
Аноним 06/09/17 Срд 16:19:16  1058094
>>1057818
>нахуя в комитете идут разговоры о возможности перегрузки оператора точка?

Зачем задавать такие вопросы? Находишь пропозал о перегрузке оператора точка и читаешь мотивационную часть.
Аноним 06/09/17 Срд 19:43:46  1058234
Как запустить через асинк метод класса?

A a();
auto f = std::async(std::launch::async, a.do);

Ошибка invalid use of non-static member function, но должен же быть вариант запустить эту шляпу.
Аноним 06/09/17 Срд 19:44:35  1058238
>>1058234
В лямбду оберни.
Аноним 06/09/17 Срд 20:00:28  1058251
>>1058234
std::async(..., &A::do, std::ref(a))
Аноним 06/09/17 Срд 22:45:16  1058367
>>1057445
Придется ловить все сообщения об изменении родительского окна и двигать дочерние. Но лучше переосмыслить дизайн и сделать контейнеры.
Аноним 07/09/17 Чтв 01:37:42  1058406
https://wandbox.org/permlink/DfvdpVzk30b7QYo6
Кто объяснит поведение этого кода, тому нихуя

Посмотрим, что местные маньки знают о цепепе.
Аноним 07/09/17 Чтв 02:12:16  1058411
>>1058406
>Посмотрим, что местные маньки знают о цепепе.
При чем здесь язык? Видимо данный компилятор считает себя умнее тебя так и есть
Аноним 07/09/17 Чтв 02:33:01  1058415
>>1058411
Это что, объяснение?
Аноним 07/09/17 Чтв 06:13:06  1058427
image.png (47Кб, 853x504)
>>1058406
Здарова
Аноним 07/09/17 Чтв 09:31:37  1058463
>>1058406
компилятор выкинул цикл при включенной оптимизации, например потому что нет эффектов. Тоже мне загадка века
Аноним 07/09/17 Чтв 12:22:54  1058525
>>1058406
Сто раз обсосано.
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1528.htm
Аноним 07/09/17 Чтв 12:39:27  1058535
>>1058367
Благодарю
Аноним 07/09/17 Чтв 13:20:28  1058559
>>1058463
>>1058525
Этим нихуя.
Аноним 07/09/17 Чтв 14:32:08  1058592
>>1058427
Что ты этим хочешь сказать?
Аноним 07/09/17 Чтв 14:43:26  1058601
>>1058427
В Release запусти, маня
Аноним 07/09/17 Чтв 14:47:52  1058603
>>1056738
Уебанцы без нормального тулчейна, вот кто вы. Ваш тулчейн специально на плюсах написан чтобы вы страдали сильнее.
Аноним 07/09/17 Чтв 14:54:20  1058610
image.png (43Кб, 698x505)
>>1058601
релиз, -О3 у cl это называется /Ox
Аноним 07/09/17 Чтв 14:55:02  1058611
>>1058610
И какие выводы?
Аноним 07/09/17 Чтв 14:57:59  1058612
>>1058611
>данный компилятор считает себя умнее тебя
Аноним 07/09/17 Чтв 14:58:50  1058614
>>1058612
Это унылое петросянство, а не выводы.
Аноним 07/09/17 Чтв 15:03:07  1058615
>>1058614
Какие выводы то? аккуратнее с бесконечными циклами без побочных эффектов? юз онли волатайл перменные в вайлах? cl > clang? Не лучшие оптимизации меняют поведение программы? о каких выводах ты говоришь?
Аноним 07/09/17 Чтв 15:06:02  1058616
>>1058615
>аккуратнее с бесконечными циклами без побочных эффектов?
Да, ибо UB.

> юз онли волатайл перменные в вайлах?
Это ещё зачем?

> cl > clang?
Лол, нет.

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

> о каких выводах ты говоришь?
Которые ты должен сделать для себя.
Аноним 07/09/17 Чтв 20:10:08  1058774
>>1058251
Что-то я не понял.
http://coliru.stacked-crooked.com/a/8f5d0c3d27bcf38c
Почему на строчке 23 он сам дедусит, а на строчке 25 без тимплейт аргументов обламывается?
Аноним 07/09/17 Чтв 20:45:20  1058788
>>1058774
Может потому что std::async это шаблон функции, а std::function это шаблон класса?
Почему
std::vector v {1, 2, 3}
обламывается у тебя тоже вызывает вопросы?
Аноним 07/09/17 Чтв 20:47:49  1058791
>>1058788
>Может потому что std::async это шаблон функции, а std::function это шаблон класса?
Правда, в C++17 будут deduction guides, но для member function не завезли.
Аноним 07/09/17 Чтв 21:25:13  1058807
>>1058788
Вектор у меня не вызывает вопросы, там другое совсем.

>template< class Function, class... Args>
>std::future<std::result_of_t<std::decay_t<Function>(std::decay_t<Args>...)>>
async( Function&& f, Args&&... args );

Function - это что такое?
Аноним 07/09/17 Чтв 21:37:19  1058809
>>1058807
>Function - это что такое?
Параметр шаблона.
Аноним 07/09/17 Чтв 21:53:04  1058817
>>1058809
Почему он так называется и почему указатель на метод подходит под это название?
http://en.cppreference.com/w/cpp/language/function_template
Это он? Каким боком указатель на мембера подходит под это определение?
Аноним 08/09/17 Птн 00:26:44  1058864
>>1058817
Можешь переименовать его в T.
Аноним 08/09/17 Птн 06:24:47  1058912
>>1058864
Как async догадывается до того, что нужно делать с указателем на метод, и до того, что первый аргумент в списке - это lhs для .*?
Где в доках написано, что async принимает указатели на методы таким образом?
Аноним 08/09/17 Птн 06:57:48  1058914
>>1058912
some kind of magic
но лучше в лямбду оберни)
Аноним 08/09/17 Птн 07:04:06  1058915
>>1058912
Как-то так https://wandbox.org/permlink/M2fO1tLfqPnBQAZm
Аноним 08/09/17 Птн 07:10:04  1058917
>>1058807
Function - это тип удовлетворяющий требованиям Callable.
Что такое Callable написано здесь https://en.cppreference.com/w/cpp/concept/Callable
Аноним 08/09/17 Птн 13:17:19  1059016
>>1058914
>>1058915
>>1058917
Всё, я допедрил. Всего-то навсего комитет не добавил очевидные deduction guidelines, которые прямо следуют из определения Callable.
Аноним 08/09/17 Птн 13:20:46  1059017
При чём для бинда эти гайдлайны есть:
http://coliru.stacked-crooked.com/a/082c14891a5ad4f5
Аноним 08/09/17 Птн 16:15:05  1059087
>>1059017
>для бинда эти гайдлайны есть
Какие гайдлайны, поехавший? Это обычный шаблон функции. Deduction guides нужны для классов.
Аноним 08/09/17 Птн 16:17:15  1059088
>>1058915
Не совсем так, различие между разными видами callable наружу не торчит.
Аноним 08/09/17 Птн 18:26:39  1059124
>>1059087
Ах ты блет!
>>1058791
>Правда, в C++17 будут deduction guides, но для member function не завезли.
http://en.cppreference.com/w/cpp/language/class_template_argument_deduction
> If C is defined, for each constructor (or constructor template) Ci declared in the named primary template (if it is defined), a fictional function template Fi, is constructed, such that
> template parameters of Fi are the template parameters of C followed (if Ci is a constructor template) by the template parameters of Ci (default template arguments are included too)
> the function parameters of Fi are the constructor parameters
> the return type of Fi is C followed by the template parameters of the class template enclosed in <>
> If C is not defined or does not declare any constructors, an additional fictional function template is added, derived as above from a hypothetical constructor C()
> In any case, an additional fictional function template derived as above from a hypothetical constructor C(C) is added, called the copy deduction candidate.
Я правильно понял, что дедукшн для класса определён через дедукшн для функций? Тогда всё есть!
Аноним 08/09/17 Птн 18:31:22  1059128
>>1059124
>Я правильно понял, что дедукшн для класса определён через дедукшн для функций?
Автоматический — через вывод типов для конструктора.
user-defined через функцию спец. вида.

> Тогда всё есть!
Что есть? deduction guides для std::function при инициализации её с использованием member function нету. http://en.cppreference.com/w/cpp/utility/functional/function/deduction_guides
Аноним 08/09/17 Птн 18:40:13  1059133
>>1059128
Вот теперь точно допедрил.
Аноним 08/09/17 Птн 19:32:10  1059162
>>1059088
Ну код был не о том как оно там реально сделано, а о том как можно, например, отличить мембер функтцион от не мембер.
Аноним 08/09/17 Птн 19:33:11  1059163
>>1059162
Ок.
Аноним 09/09/17 Суб 03:51:48  1059335
Есть ли книги/статьи/уроки где бы всё внимание уделялось объектно-ориентированному программированию?
Аноним 09/09/17 Суб 11:03:06  1059382
>>1059335
Нет
Аноним 11/09/17 Пнд 01:54:18  1060074
>>1046880
Что там кидать?
В ширину: у тебя есть граф из спичек. Выбираешь наугад вершину и поджигаешь ее. Когда огонь потухнет, проверяешь, есть ли не загоревшиеся спички. Если есть, повторяешь операцию.
В глубину. У тебя есть граф-лабиринт. Идешь куда хочешь, на каждом ходу помечаешь пройденную вершину. Если некуда идти, возвращаешься назад до первой развилки и идешь в новую сторону. Продолжаешь до тех пор, пока не вернешься к самому началу. Проходишь таким образом каждую компоненту связности.
Код есть где угодно.
Аноним 12/09/17 Втр 04:57:22  1060563
Что не так с этим кодом, анон?
https://ideone.com/DakJUF
Почему у него m не равен m, что ему не нравится?
Аноним 12/09/17 Втр 08:59:06  1060588
>>1060563
>> str.size()-1
сам угадаешь?
Аноним 12/09/17 Втр 09:00:24  1060589
>>1060588
алсо, смысла нет сравнивать более половины символов.
Аноним 12/09/17 Втр 14:08:10  1060749
>>1060588
Не угадает он нихуя, он не умеет читать написанное.
Аноним 12/09/17 Втр 18:30:12  1060913
Есть класс в котором динамически аллоцируется буфер.
Память освобождается в дестракторе. Хочу передавать объект такого класса по значению, по цепочке, из внутренних вызовов во внешние и чтобы память освобождалась в деструкторе последнего внешнего объекта. Хочу тупо добавить bool owner
class C
{
...
buf ....
bool owner
~C() { if (owner) { free(buf); } }

}

и добавить copy constructor и assignment operator чтобы передавать оwnership
C (const C& copy)
{
this->owner = true;
copy.owner = false;
this->buf = copy.buf;
....
}
Проблема в const - его нужно дропнуть, но тогда не будет работать передача в верхние вызовы, так как будет создаваться временный объект типа reference и он обязан быть const.

Что делать?
Аноним 12/09/17 Втр 18:30:43  1060914
Когда уже перекатываться будем?
Аноним 12/09/17 Втр 18:36:03  1060917
>>1060563
>Что не так с этим кодом, анон?
Всё не так.
Аноним 12/09/17 Втр 18:48:57  1060928
Двач, есть ли хорошие способы как можно исследовать чужой код? Или хотя-бы подскажите как можно перекатываться по объявлениям и определениям. В данный момент я просто задрачиваю поиск, либо локально на компьютере, либо на гитхабе, в крупных проектах это делать очень долго и сложно.
Аноним 12/09/17 Втр 18:56:01  1060933
image.png (8Кб, 311x760)
>>1060913
инетересно. микрософт это хавает без проблем.
а гнусь ругается на отсутствие const в копи конструкторе.
Аноним 12/09/17 Втр 18:56:22  1060934
>>1060928
В любой нормальной иде есть функции go to definition/ declaration.
Аноним 12/09/17 Втр 18:59:15  1060936
>>1060934
Для этого в этой иде нужно создавать проект и муторно добавлять туда файлы, не считая других препятствий этих иде. Может быть есть софт, или способ как можно сходу начать исследовать код.
Аноним 12/09/17 Втр 19:02:39  1060939
>>1060913
>Что делать?
Нормальную move-семантику.
Аноним 12/09/17 Втр 19:16:26  1060954
>>1060913
>Хочу тупо добавить bool owner
А если owner сдохнет раньше не-owner'а('ов)?
Аноним 12/09/17 Втр 19:21:33  1060958
>>1060939
Это embedded, плюсовость должна быть минимальная, даже не с++98, просто C с классами. Нет никаких STL примочек не говоря уже о С++11 rvalue references и тп. А обойти мою проблему можно разными способами - делать deep сopy например и тд. Просто интересно есть ли другие альтернативы сделать вручную без примочек

>>1060954
тогда беда и нужно все усложнять. reference counting какой-нибудь. подразумеваю простой
пример где последний owner всегда переживает всех предыдущих>>1060933
Аноним 12/09/17 Втр 20:44:08  1060996
>>1060933
Микрософт хуй ложил на стандарт.
>>1060913
>Что делать?
Rvalue reference.
>>1060913
http://coliru.stacked-crooked.com/a/3b1c1f4a891fa9dc
>>1060936
>Для этого в этой иде нужно создавать проект и муторно добавлять туда файлы,
В кутыкреакторе - несколько кликов (import existing project).
>>1060958
>Это embedded, плюсовость должна быть минимальная, даже не с++98, просто C с классами.
Ох, блядь. Что у тебя за компилятор такой с поддержкой стадарта "си с классами"? Какой флаг хоть?
http://coliru.stacked-crooked.com/a/2e5a60b842cb35ea
Аноним 12/09/17 Втр 20:59:00  1061008
>>1060913
Можно при передаче передавать новый объект, что-то типа
foo(C(otherC, deep_copy{}})
И пытаться эмулировать так мувы.
Аноним 12/09/17 Втр 21:00:14  1061012
>>1061008
>deep_copy
Думал одно, написал другое. move или что-то подобное.
Аноним 12/09/17 Втр 21:07:21  1061019
>>1060996
да компилятор нормальный, свежий гнусь. я имею ввиду общий стиль заточен под "си с классами" чтобы размер кода минимизировать. никаких string STL, exceptions, даже new желательно избегать. твой пример работает нормально с флагом -std=c++11, спасибо.
Аноним 12/09/17 Втр 21:25:15  1061037
>>1061019
>чтобы размер кода минимизировать.
С unique_ptr тащится какой-то шмоток кода, который тебе не нужен. Ты можешь сделать свой вариант на буле ручками. Никакого другого оверхеда там нет. Ты просто так написал:
>Это embedded, плюсовость должна быть минимальная, даже не с++98, просто C с классами. Нет никаких STL примочек не говоря уже о С++11 rvalue references и тп.
как будто там у тебя рили си с классами. rvalue reference - это указатель с другой семантикой, почему ты отмахиваешься от него?
Аноним 13/09/17 Срд 00:25:45  1061131
>>1061037
Ну так то ты прав, раз оверхеда нет, надо попробовать. Отмахиваюсь инстинктивно так как привык по старинке. Байтоебство же в основном на голых сях и чуток плюсов для эстетики. В 99% случаях (прочитать сенсоры и кнопочки и включить пимпочку) вполне хватает. Здесь просто особый случай с кучей динамических буферов.
Аноним 13/09/17 Срд 10:07:31  1061206
>>1061131
Олсо, rtti и exceptions отключил флагом компилятора?
Аноним 13/09/17 Срд 15:52:46  1061344
>>1061037
>rvalue reference - это указатель
дибил
Аноним 13/09/17 Срд 18:13:46  1061417
Ананасы, поясните мне за parallelism ts или как его. Что то, похоже, я нашел только то, что замутили reduce с измененной политикой выполнения и добавили аргументы в методы алгоритмов, так? И похуя мне это, если есть OpenMP?!
Аноним 13/09/17 Срд 19:39:08  1061462
>>1060958
MyClass a;
get_MyClass().swap(a);

мув семантика в с++98
Аноним 14/09/17 Чтв 00:31:20  1061633
>>1045411 (OP)
Что делает флаг gcc -O0 ?
Аноним 14/09/17 Чтв 06:18:24  1061692
>>1061633
отключает любые оптимизации
Аноним 14/09/17 Чтв 17:17:48  1061914
>>1061692
Кроме NRVO, как я выяснил недавно.
Аноним 14/09/17 Чтв 17:46:12  1061920
>>1061914
Ну это не то, чтобы оптимизация...
Т.е. конечно это оптимизация, но не в том смысле чтобы луп раскрутить или функцию заинлайнить, а в том, что стандарт явно разрешает её делать.
Аноним 14/09/17 Чтв 19:22:06  1061985
image.png (20Кб, 678x166)
Пачаны, как запустить лямбду в компайл тайме? без этого 38-я строчка не компилируется по понятным причинам потомучто лямбду до с++17 нельзя пометить constexpr,
нужны воркараунды для 14ого стандарта
.
Аноним 14/09/17 Чтв 19:22:38  1061986
>>1061985
38-я это где статик ассерт
Аноним 14/09/17 Чтв 22:58:46  1062098
>>1061985
>Пачаны, как запустить лямбду в компайл тайме?
1) Никак.
2) GC_IS_HAS_METHOD - это что за хрень? Хули там лишняя запятая делает?
Аноним 15/09/17 Птн 03:34:02  1062135
>>1061985
Ты хоть покажи, что у тебя этот макрос должен делать. Если ты проверяешь наличие метода, то есть такая идиома, как Member Detection, подробно тут https://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Member_Detector
Аноним 15/09/17 Птн 06:35:43  1062147
>>1062135
дададдаадад, именно это, но там чтобы это работало - надо генерировать класс перед его использованием, у меня же всё без этого, не нужно никакого дополнительного кода перед использованием но в статик ассерт не засунешь без констэкспра
https://ideone.com/84nJkZ
Аноним 15/09/17 Птн 07:07:11  1062152
>>1062147
тебе нужно не возвращать true/false из лямбды, а делать возвращаемый тип std::false_type или std::true_type, тогда должно прокатить
Аноним 15/09/17 Птн 07:33:32  1062161
>>1062152
я тоже думал об этом, но decltype([](){}) не компилируется :(
Аноним 15/09/17 Птн 08:49:17  1062181
>>1062161
https://ideone.com/u43NlS
Я пытался, в общем. Может это сможет как-то помочь
Аноним 15/09/17 Птн 08:58:36  1062183
>>1062181
перед return надо typename написать)
Но всёравно до с++17 в статик ассерт не засунешь, обида(
Аноним 16/09/17 Суб 12:54:24  1062759
Как в этом ебучем qt-creator'е создать единый .qss файл, чтобы он линковался с ебучим GUI во всем проекте?
Аноним 16/09/17 Суб 16:32:51  1062876
>>1062759
Тебе нужно в ресурсы его запихать и после создания QApplication задать стиль из файла, хули ты как дурак?!
Аноним 17/09/17 Вск 04:01:34  1063079
>>1062147
https://ideone.com/mW8F0g
Аноним 17/09/17 Вск 09:33:38  1063108
ПЕРЕКАТ

https://2ch.hk/pr/res/1063107.html
https://2ch.hk/pr/res/1063107.html
https://2ch.hk/pr/res/1063107.html
https://2ch.hk/pr/res/1063107.html
https://2ch.hk/pr/res/1063107.html
https://2ch.hk/pr/res/1063107.html
https://2ch.hk/pr/res/1063107.html

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 652 | 34 | 188
Назад Вверх Каталог Обновить

Топ тредов
Избранное