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



[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 732 | 31 | 141
Назад Вниз Каталог Обновить

C++ #49 Аноним 27/03/17 Пнд 16:05:00  961839  
cppmap2017.png (2995Кб, 2300x1530)
Вместо шапки - https://github.com/sosachbot/cppthreadhat/wiki
Ответы на все вопросы - http://en.cppreference.com/w/ http://www.cplusplus.com/reference/


Прошлый - https://2ch.hk/pr/res/947007.html
Аноним 27/03/17 Пнд 16:16:24  961847
Зачем в 2к17 нужны плюсы, когда есть раст?
Аноним 27/03/17 Пнд 16:21:31  961851
>>961847
Легаси
Аноним 27/03/17 Пнд 16:28:18  961857
>>961847
>Зачем в 2к17 нужны какие-то недоязыки, когда есть проверенный временем с++?
Аноним 27/03/17 Пнд 17:15:10  961912
>>961905
Помнится, недавно он то ли хачкелем, то ли лишпом обмазывался.
Аноним 27/03/17 Пнд 17:18:57  961919
>>961905
А то ты WEB-GUI под крестами собрался писать, кловн. Ничто не мешает использовать кресты для бэкенда и яваскрипт для фронтенда (где ему и самое место), другое дело, что на крестах это будет огромный велосипед (еще и неизвестно какой), вместо использования уже обкатанных java или asp.net.
Каждый язык занимает свою нишу.
Аноним 27/03/17 Пнд 17:21:45  961924
>>961905
Работающего в фейсбуке Кармака заставили использовать фейсбучное поделие. Ну ок, чо.
Аноним 27/03/17 Пнд 17:24:39  961931
>>961905
>осознал бесполезность C++
Хуйню несешь, там ни слова о крестах
Аноним 27/03/17 Пнд 17:27:48  961935
>>961857
Пока что временем проверено только то, что он говно.
Аноним 27/03/17 Пнд 18:23:10  961970
>>961847
4 слова:
ios, android, PS, XBOX.
На всех этих платформах Раста просто нет. С++ на них чувствует себя превосходно.
Аноним 27/03/17 Пнд 18:40:23  961975
u8uy7XYxzRQ.jpg (38Кб, 1168x258)
>>961905
Мигание курсора уже оптимизировали?
Аноним 27/03/17 Пнд 18:48:23  961977
>>961919
Javascript нет места нигде. С одной стороны новое поколение гуманитариев, которые рвутся в кодинг и не могут осилить ничего кроме JS и пытаюстся написать на нём небо и аллаха, с другой стороны программисты, которые годами пытаются выйти за грань реальности в попытках оптимизировать интерпретаторы этого говна, и ничего хорошего из этого всего не выходит.
Аноним 27/03/17 Пнд 18:59:53  961980
>>961977
Но он свою нишу занял ведь и конкурентов у него нет, насколько я понимаю (или я слишком отстал от жизни). Опять же, навряд ли от него будут оказываться, по крайней мере, в ближайшем будущем, хоть он кому-то и не нравится. Кроме того, чтобы найти замену JS, его необходимо конкретно распиарить и перетащить опять же на него сообщество разработчиков/говнокодеров/пользователей и прочей шелупони, что также требует большой работы.
Тот же Go, наверно, никому в хуй бы не уперся, если бы в свое время google не стала его пропихивать куда ни лень. Ту же самую науку провернула Microsoft со своим C#, только раньше.
А у всех отростков или языков, которые внезапно появляются, и так же быстро умирают, без должной поддержки будущего нет, несмотря на то, какие бы пиздатые концепции в них не были заложены или с какой простотой и эффективностью реализовывались бы программы на них. Они так и будут игрушкой для хипстеров и прочих рукоблудов.
Аноним 27/03/17 Пнд 19:14:45  961990
>>961980
>Но он свою нишу занял ведь и конкурентов у него нет
Да, к сожалению так сложилось. Но это не повод перетаскивать это говно во все сферы.
Аноним 27/03/17 Пнд 19:42:17  962004
>>961905
> ui на js
> или какой нибудь луа, питон и пр.
Как вообще совместить в одной программе 2 языка?
Аноним 27/03/17 Пнд 19:44:54  962005
>>962004
Через FFI какой-нибудь.
Аноним 27/03/17 Пнд 19:48:03  962007
>>962005
Ну дернуть удаленный метод чтобы он вернул мне строку huipizda это я еще могу понять. Но как отрисовать интерфейс написанный на другом языке нет.
Аноним 27/03/17 Пнд 20:08:52  962016
>>961980
>конкурентов у него нет
VBScript
Аноним 27/03/17 Пнд 20:10:11  962018
>>962007
>интерфейс
>написанный на языке
Аноним 27/03/17 Пнд 20:12:22  962020
>>961970
На первых двух есть и прекрасно живёт. На остальных — не в курсе, но вроде как у них жи закрытый сдк, хз короч.
Аноним 27/03/17 Пнд 20:19:22  962026
>>962007
Дернуть из другого языка функцию отрисовки и закинуть адреса своих ф-й обработчиков гуя, в чём проблема-то?
Аноним 27/03/17 Пнд 21:24:16  962052
>>962020
это ты прекрасно живешь в своем манямирке, а на Расте надо будет постоянно биндинги пердолить (или брать хрен знает насколько проверенные на стороне) и трахаться со сборкой.
Аноним 27/03/17 Пнд 23:05:52  962119
09.png (126Кб, 1366x768)
Помогите, пожалуйста. Почему он берет и прыгает на строку выше? нужно поменять местами половинки массива
Аноним 27/03/17 Пнд 23:36:43  962134
>>962119
>>int a[][4];
>>int count2 = 4;
>>int temp = a[count1][count2];
Знаешь, что четверка означает?
Аноним 27/03/17 Пнд 23:50:12  962145
>>962119
Потому что ты программу так написал.
https://ideone.com/qrs3pP
Аноним 28/03/17 Втр 00:06:59  962167
>>962052
Есть генераторы биндингов (это настолько сложная хуйня, что она должна быть проаерена, кек, ты прям жявамакакен только и делаешь что фреймворки скрепляешь друг с другом), а про еблю со сборкой в плюсотреде слышать даже не смешно.
Аноним 28/03/17 Втр 00:11:15  962172
>>962134
Очень жаль но нет
>>962145
Спасибо большое добрый человек
Аноним 28/03/17 Втр 08:03:08  962246
Няши, помогите, не врубаюсь что не так.
Писал программу под opengl (sdl) на маке, там в конфигурационный файл для qmake вписал:
INCLUDEPATH += /Library/Frameworks/SDL2.framework/Headers
А сейчас переношу на линукс, и непонятно какой путь включать.
Аноним 28/03/17 Втр 09:16:45  962252
>>962246
pkg-config
Аноним 28/03/17 Втр 09:18:50  962253
>>962246
спрашивай у менеджера пакетов или гугли sdl2 + название твоего дистрибутива. еще можно find / | grep SDL2 -i
Аноним 28/03/17 Втр 10:16:19  962268
Нигде не могу найти инфу про fork(), как использовать, зачем оно надо и что делает. Есть описание в терминах процессов и все. Книгу может посоветовать может кто?
Аноним 28/03/17 Втр 11:25:21  962295
>>962246
>2k17
>хардкодить пути
Съеби, не шкварь тред
Аноним 28/03/17 Втр 11:50:35  962308
>>962295
>2к17
>даун всё ещё не может в докер
Аноним 28/03/17 Втр 12:06:05  962316
Как в плюсах вернуть некий тип от enum?
Образно говоря, есть
enum numbers {
one;
two};
Я вызываю функцию из другого класса которая делает return one;
Как вызывающий класс понимает что это? Надо и в нём делать такой же enum?
Аноним 28/03/17 Втр 12:09:19  962318
>>962308
Ёбаный даун, при чём тут вообще докер?
Аноним 28/03/17 Втр 16:23:32  962390
Котаны, есть ли инфа, собираются ли вообще в коммитете хотя бы мусолить тему или мб уже даже черновик на эту тему есть? о стандартизации ABI?
Аноним 28/03/17 Втр 16:45:26  962393
>>962390
>стандартизации ABI
Как ты себе это представляешь, даун?
Долбоёб 28/03/17 Втр 16:50:47  962398
Котаны, есть ли инфа, собираются ли вообще в коммитете хотя бы мусолить тему или мб уже даже черновик на эту тему есть? о стандартизации опций компиляторов?
Аноним 28/03/17 Втр 16:59:15  962402
>>962316
У enum только один возвращаемый тип - unsigned int
Аноним 28/03/17 Втр 17:00:01  962403
14118044249430.png (175Кб, 500x480)
>>962402
Лучше заткнись
Аноним 28/03/17 Втр 17:00:17  962404
>>962398
Ахуенная шуточка. Самое весёлое что все, кроме спермокомпилера поддерживают как минимум один основной базовый набор команд и используют гнутый стиль CLI.

>>962393
Описать стандартом правила манглинга, стандартное соглашение о вызовах и прочую хуйню. Модель памяти же стандартизировали как-то.
Аноним 28/03/17 Втр 17:03:43  962407
>>962404
> все, кроме спермокомпилера
gcc, clang и icc. Остальные не поддерживают.

>Описать стандартом правила манглинга
Зачем?
> стандартное соглашение о вызовах
И что делать на ARM, если стандартизуют, что первый аргумент передаётся в RDX?
> Модель памяти же стандартизировали
Для абстрактной машины.
Аноним 28/03/17 Втр 17:07:53  962410
>>962402
Это так значит шутка что ли?
Это он на твоей x86/x86-64 машине в 32 битное значение устанавливается, потому что его доставать оттуда проще будет. Ничего не мешает тебе объявить enum с заданным размером значения (цэ 11):
http://en.cppreference.com/w/cpp/language/enum
Аноним 28/03/17 Втр 17:14:51  962418
>>962407
>gcc, clang и icc. Остальные не поддерживают.
Прибавь к ним msvc - и получишь все живые компиляторы, у остальных распространение на уровне хачкеля (если не учитывать всякую закрытую залупу для соснолек прочего, хотя мне кажется там сплошные форки гцц как и в мире мк).
>Зачем?
Потому что закрытый софт и регулярное обновление компиляторов - это анальная боль. Да, для с точки зрения программиста конечно тупая ситуация, но бизнесу похуй.
>И что делать на ARM, если стандартизуют, что первый аргумент передаётся в RDX?
а) Класть хуй на стандарт;
б) Стандартизировать на распространенные архитектуры отдельно (их всего-то грубо говоря 3-4 штуки).
>Для абстрактной машины.
Учитывая сколько говна лилось и сколько ее пилили в той же жаве, кажется мне, что она тоже говно, хорошо что мне не приходилось с ней работать, лол.
Аноним 28/03/17 Втр 17:17:16  962419
>>962418
Я понял. Ты местный клоун-дурачок.
Аноним 28/03/17 Втр 17:24:57  962427
>>962419
Ну как сказать.
Я вот сегодня послушал челика, который рассказывал что был на вчерашнем ивенте яндекса, и в 17-м стандарте вместо 128 и 256-битных интов как в гцц будут просто автоматически растущие в ^2 инты, а так же классы с апкастом в компайлтайме при переполнении разрядной сетки и прочего, а так же в constexpr будет свой std::vector и у меня возникло ощущение, что клоуны в коммитете сидят.
Аноним 28/03/17 Втр 17:34:39  962431
>>962427
А че там самое главное, когда эти пидоры введут статическую рефлексию, мне уж очень интересна эта тема, потому что уже использование protobuf'а и прочих, без вранья, костылей, доебало, когда можно было бы применять свои типы с ленивой загрузкой, COW и прочими ништяками.
Аноним 28/03/17 Втр 17:42:04  962436
>>962431
> мне уж очень интересна эта тема
Да всем блеать интересна.

Но долбоёбы возятся с какими-то модулями.
Аноним 28/03/17 Втр 17:48:47  962442
>>962431
Лет через 10. А ты пока держись там, наслаждайся новыми интами и оператором <=>, всего доброго и хорошего настроения.
>>962436
Зато фс в стд завезли, радуйся барской щедрости!
Аноним 28/03/17 Втр 18:24:12  962467
>>962442
Ну пока генераторы схем есть итак неплохо. В принципе, думаю под себя для работы наковырять один небольшой, чтобы можно было определять пользовательские типы, да вот только все это костыли, как ни крути, хочется нативной поддержки от языка таких трюков.

>> <=>
Че ето такои? Это пришло на замену триграфам?
Аноним 28/03/17 Втр 18:31:38  962470
>>962467
Это хуитка чтобы заставить компилятор сгенерировать дефолтные <, = и > за тебя. Хз правда нахуя, но видимо надо.
Аноним 28/03/17 Втр 19:37:50  962518
>>962436
>Но долбоёбы возятся с какими-то модулями.
Ты охуел
Аноним 28/03/17 Втр 19:42:39  962523
>>962518
Нет ты.

Модули это тупо оптимизация времени компиляции. А статической рефлексии нет вообще.
Аноним 28/03/17 Втр 19:48:47  962526
Анонасы, хочу сделать сигнал в одном классе а слот в другом. Просто лютый бред писать например реакцию на клавиши в классе отображения.
Это вообще реализуемо?
Попытался пойти напрямик -
QObject::connect: Cannot connect (null)::pressedButton() to (null)::receiveKey()
Аноним 28/03/17 Втр 19:53:54  962530
>>962523
Не только. Возможно, менеджеры пакетов на плюсы завезут или хотя бы можно будет как в жабе подключать либы (или около того). Профит все получат и сразу.
Аноним 28/03/17 Втр 19:57:53  962535
>>962530
apt-get хватит всем, а спермоблядей даже модули от DLL-hell не спасут.
Аноним 28/03/17 Втр 19:59:44  962536
>>962526
Просто берёшь и соединяешь.
Аноним 28/03/17 Втр 20:03:33  962541
>>962535
Я надеюсь на лучшее.
Аноним 28/03/17 Втр 20:14:02  962550
>>962535
Самоутверждаться используемой операционной системой на дваче
Аноним 28/03/17 Втр 20:50:33  962592
>>962550
Я слыхал VS2017 научилась в неабсолютные пути. Это правда или спермомирок продолжает героически сопротивляться прогрессу?
Аноним 28/03/17 Втр 20:58:03  962601
>>962592
В не-абсолютные пути точно умели в 2010 студии. Раньше - не знаю. Так что не какай жиденько, а делай уроки, завтра в школу. Расскажешь всем как ты круто линукс устанавливаешь.
Аноним 28/03/17 Втр 21:40:22  962638
>>962601
Спермоблядь обиделась за наезд на её любимый спермокостыль и пошла грудью вперёд в атаку.
Аноним 28/03/17 Втр 21:42:10  962644
9.png (40Кб, 1164x430)
>>962145
найс траленг
Аноним 28/03/17 Втр 22:27:10  962683
>>962644
У вас STACK OVERFLOW
Аноним 28/03/17 Втр 22:29:04  962687
>>962638
Я даже не знаю, как ответить на эту убогую попытку "траленка". Подрастешь - может поубавится юношеского максимализма.
Аноним 28/03/17 Втр 22:38:26  962696
>>962687
Спермоблядь ещё страдает эйджизмом.
Аноним 29/03/17 Срд 00:03:29  962757
Всем привет. Вот хочу я найти библиотеку для работы с деревьями не могу этого сделать, гугл по запросу c++ деревья, выдает только детские рассуждения с хабра. Научите.
Аноним 29/03/17 Срд 00:09:49  962762
>>962757
в бусте точно ничего нету?
Аноним 29/03/17 Срд 07:04:31  962830
>>961905
>>961847
Существует мнение, что кресты ругают те, кто не смог в него
Аноним 29/03/17 Срд 07:14:27  962833
>>962757
> не могу этого сделать
Попробуй на английском запрос составить.
Аноним 29/03/17 Срд 09:02:11  962849
>>962830
Осиливают говно. А нормальный язык приятен и понятен любому.
Аноним 29/03/17 Срд 09:46:52  962867
>>962762
В бусте точно что-то есть, я не знаю как это искать.
Аноним 29/03/17 Срд 11:16:41  962890
Как в qt сделать QEventLoop бесконечным? Чтоб прерывалось только с выходом из приложения?
Схема
QEventLoop name;
printf("LOOP")
name.exec();

Работает только 1 раз. Как выводить Printf раз в некотрое время?
Аноним 29/03/17 Срд 12:50:32  962947
помогите с методом зейделя пожалуйста:
мейн: https://pastebin.com/gA0411vF
заголовочный: https://pastebin.com/pNvcCRJ3
файл с матрицей: https://pastebin.com/dj6q7R8u
правильный ответ:
X1 := 4
X2 := 0
X3 := -1
моя проблема скорее всего находится в функции zeydel, которую я скопипастил с википедии, однако я мог там что-то накосячить(но я проверял). Помогите исправить пожалуйста программу.
Аноним 29/03/17 Срд 14:03:42  962994
>>962947
что за хуйне учат в этих универах...
Аноним 29/03/17 Срд 17:22:58  963140
>>962994
я разобрался: вышел за пределы массива - умер
Аноним 29/03/17 Срд 17:28:21  963143
>>962849
Искренне не понимаю, что в нем неприятного
Аноним 29/03/17 Срд 17:48:55  963161
>>962849
Ну так в крестах ничего сложного нет, по сути, а с приходом c++11 (или сторонних либ еще ранее), тебе даже не нужно ебать всем мозги по поводу автоматического высвобождения ресурсов, потому что для этих дел есть unique_ptr и shared_ptr.
Аноним 29/03/17 Срд 17:55:55  963164
>>962757
http://www.boost.org/doc/libs/1_63_0/libs/graph/doc/index.html
Аноним 29/03/17 Срд 19:18:01  963206
>>963143
Твоя фраза должна звучать так: "я тупо не видел ничего другого в глаза, вот и ебусь в них".
>>963161
Если писать всё на подсчёте ссылок, то получится тормозное говно как на яве (единственный плюс — быстрый стартап, но в когда объекты начнут дохнуть получим вообще петон).
Аноним 29/03/17 Срд 19:48:27  963219
15440.jpg (49Кб, 600x439)
>>963206
>Если писать всё на подсчёте ссылок, то получится тормозное говно как на яве
Аноним 29/03/17 Срд 19:49:17  963220
>>963206
ты знаешь чем юник_птр от шареда отличается, подсчитыватель ссылок?
Аноним 29/03/17 Срд 20:00:14  963225
Как узнать, что программа win32 запущена через дебаггер не в IDE, а в софте типа ollydbg ?
Аноним 29/03/17 Срд 20:02:46  963227
>>961847
Миша, иди нахуй отсюда.
Аноним 29/03/17 Срд 20:27:03  963247
>>963225
Нашел. IsDebuggerPresent().
Аноним 29/03/17 Срд 20:29:12  963249
>>963220
Давай начинай свою песню про бесплатность юников, дружочек. Сразу с бенчмарками и ассемблерными листингами, по-хорошему.
Аноним 29/03/17 Срд 20:48:53  963261
>>963249
У меня был такой чувак на прошлой работе, все хуярил обычными указателями, память у него текла пиздец, зато БЫСТРО (ну, он так думал, профайлер он не запускал ниразу). И еще он в 93ьем написал свою уебищную STL и до сих пор ее использует. Это не ты случаем?

https://godbolt.org/g/96YQfA
https://godbolt.org/g/IUiWmk

Три с половиной ассемблерные инструкции мне не очень жалко потратить на гарантированное отсутсвие утечки.
Аноним 29/03/17 Срд 20:55:55  963264
>>963261
>https://godbolt.org/g/96YQfA
>https://godbolt.org/g/IUiWmk
Лол, GCC sucks bollcks

Попробуй clang-ом.
Аноним 29/03/17 Срд 20:57:01  963266
>>963264
>bollcks
bollocks
Аноним 29/03/17 Срд 20:59:19  963267
>>963264
Попробовал на 3.9.0, поржал. Я так понимаю, >>963249 официально соснул хуев.
Аноним 29/03/17 Срд 21:00:17  963268
Я пришел к вам из C# иди нахуй отсюда чмо. Посоветуйте актуальных ресурсов (желательно сайты) с введением в многопоточность в C++. А то что-то тут совсем не Thread'ы и Task'и у вас, или я ничего не нашёл.
Аноним 29/03/17 Срд 21:00:52  963269
>>963268
inb4 иди нахуй отсюда чмо*
Аноним 29/03/17 Срд 21:01:43  963271
>>963268
Книга Эндрю Вильямса
Аноним 29/03/17 Срд 21:01:59  963272
>>963271
или Энтони... нипомню
Аноним 29/03/17 Срд 21:49:39  963304
>>963268
man openmp
OpenMP
penMP
enMP
nMP
MP
P
Аноним 29/03/17 Срд 22:03:34  963313
>>963164
Спасибо.
Я кстати обдумал чего же я хочу от этой библиотеки и понял, что правильнее будет самому реализовать дерево.
Аноним 29/03/17 Срд 23:31:54  963342
>>963304
Это крайне узкоспециализированное применение многопоточности
Аноним 30/03/17 Чтв 00:59:50  963375
>>963267
>>963261
А теперь немножечко более живой пример, с парой хуиток которые компилятор не может просто взять и выкинуть (я конечно понимаю, что местным похуй, и самое главное статичные данные известные на этапе компиляции обернуть в смартпоинтер, но всё же попробую достучаться):

http://godbolt.org/g/MYKEIl
http://godbolt.org/g/DdfGm4

Разница по количеству инструкций всего-то в... 2 раза.
Аноним 30/03/17 Чтв 01:06:53  963377
>>963261
>И еще он в 93ьем написал свою уебищную STL и до сих пор ее использует. Это не ты случаем?
Не, братан, я вообще STL в рот ебал. Хотя в чём-то с этим стариком солидарен — лучше уж свой костыль, в действиях которого хотя бы можно быть уверенным и который спокойно будет рефакторится и отлаживаться без ебли в сральник.
Аноним 30/03/17 Чтв 01:12:24  963381
>>963375
Ловите поехавшего, он на пушах экономит. Пуш занимает 1 цикл, как и add. ОДИН БЛЯТЬ ЦИКЛ.

У меня 15 лет назад компьютер триллион циклов в секунду выполнял и не парился.
Аноним 30/03/17 Чтв 01:18:36  963384
>>963381
Когда твоя залупа в кэш пролезать перестанет — расскажешь, нахуя вообще подобные настолько низкоуровенные языки.

Вот серьёзно — в твоей ситуации видимо можно сразу на го хуячить, там сборщик почти без задержек, чо бы и нет-то?
Аноним 30/03/17 Чтв 01:34:42  963394
>>963384
Если колл стек твоего приложения не вмещается в l3 кеш - ты занимаешься каким-то пиздецом (еще и с нестандартными настройками кнопилятора). Если это компулсори мисс, то и ты и я будем ждать 300 циклов в любом случае пока твоя и моя залупы загрузятся из памяти.
Аноним 30/03/17 Чтв 02:37:25  963415
>>963261
> он в 93ьем написал свою уебищную STL и до сих пор ее использует.
Все правильно сделал. В любой более-менее нормальной конторе пользуются собственной библиотекой шаблонов.
Аноним 30/03/17 Чтв 09:46:57  963462
Почему в этом коде возникает ошибка?

#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
string s = "word";
string t = s + s[s.size() -1] == 's' ? "" : "S";
}
Аноним 30/03/17 Чтв 10:24:40  963476
>>963462
Наверни скобок
http://en.cppreference.com/w/cpp/language/operator_precedence?ref=theblueish.com/web
Аноним 30/03/17 Чтв 10:26:02  963477
>>963415
>Все правильно сделал. В любой более-менее нормальной конторе пользуются собственной библиотекой шаблонов.
Вся суть крестов: нахуй нам нормальная стандартная библиотека, мы лучше будем велосипеды делать.
Аноним 30/03/17 Чтв 10:39:15  963488
>>963415
Назови еще парочку, кроме фейсбука и блумберга?
Аноним 30/03/17 Чтв 10:44:57  963490
>>963488
Весь гейдев, например. Гуглани EA stl
Аноним 30/03/17 Чтв 10:52:46  963496
>>963375
>Разница по количеству инструкций всего-то в... 2 раза.
С unique_ptr 22 инструкции
C голым указателем 18
22/18 = 11/9 = 1.(2)
Даже близко не в 2 раза.
Или ты, дебил, в случае unique_ptr с 25-й по 47-ю строки тоже считал?
Аноним 30/03/17 Чтв 11:00:47  963499
>>963375
>Разница по количеству инструкций всего-то в... 2 раза.
Как оказалось, разница даже не в 1.25 раза и это при том, что код с unique_ptr не течёт при эксепшенах.

Приведи немножечко более живой пример, где экспепшены могут быть и гарантируй то же отсутствие утечек для голого указателя с помощью try-catch блоков. После этого попробуем посчитать инструкции, ха-ха.
Аноним 30/03/17 Чтв 11:28:29  963516
>>963488
>>963490
Двачую этого. Даже Кармак для своей id свои шаблоны написал, можешь погуглить
Аноним 30/03/17 Чтв 11:29:56  963517
>>963516
10 лет назад то?
Аноним 30/03/17 Чтв 12:24:29  963538
>>963476
Где и какие?
Аноним 30/03/17 Чтв 14:29:04  963605
Какого хера clion не может показать содержимое умных указателей сижу на винде, вдруг это важно?
Аноним 30/03/17 Чтв 17:15:20  963709
>>963605
Баг им забей
Аноним 30/03/17 Чтв 18:10:57  963732
>>963709
Уже есть такое предложение. Остается только ждать. Я лично думаю, что хотя бы дебаггер для MSVC было бы неплохо заиметь для начала, но с другой стороны у меня треть кода в проектах красная.
Аноним 30/03/17 Чтв 18:24:06  963741
Хочу вкатиться в Boost/Asio но не знаю, что написать, какие есть идеи? (Http-сервер не предлагать)
Аноним 30/03/17 Чтв 18:29:07  963746
>>963741
Ну сделай тогда другой сервер. Не обязательно же веб. Запили брокер, прокси или еще что.
Аноним 30/03/17 Чтв 18:43:14  963749
>>963741
сделай чатик с поддержкой регистрации, комнаток и приватов.
Аноним 30/03/17 Чтв 19:28:43  963772
Где можно найти кроссплатформенный макрос для эскспорта из динамической библиотеке? Хочу собирать .so и .dll с помощью GCC
Писать
__attribute__ ((visibility ("default")))
и
__attribute__ ((dllexport))
перед каждым классом или перед публичными методами тоже?
Аноним 30/03/17 Чтв 19:37:46  963776
>>963772
И вот ещё в догонку вопрос, как в cmake сделать подпапку как цель сборки? То есть когда пишешь
make test
cmake запускает
subdirs(tests/)
tests/test_executable

В tests/ лежит другой CMakeLists.txt, который собирает test_executable

Сейчас я просто написал subdirs(tests/) и тесты собираются вместе с основным проектом, это нехорошо
Аноним 30/03/17 Чтв 20:19:46  963803
>>963772
http://www.boost.org/doc/libs/1_62_0/libs/config/doc/html/boost_config/boost_macro_reference.html
BOOST_SYMBOL_EXPORT
Аноним 30/03/17 Чтв 20:25:05  963809
Почему на QSslSocket получилось натянуть только HttpProxy?
"Connection to proxy closed prematurely" -- Socks5Proxy
Аноним 30/03/17 Чтв 23:03:06  963924
>std::__cxx11::basic_string
В новых версиях GCC выхлоп темплейтов стал ещё грязнее, теперь так всегда будет?
Аноним 30/03/17 Чтв 23:25:02  963934
>>963924
ты поехавший чтоле?
Чем тебе неймспейс не угодил?
Аноним 31/03/17 Птн 00:25:15  963974
>>963924
ШтО?
Аноним 31/03/17 Птн 01:12:58  963992
s.png (43Кб, 693x227)
>>963803
Вот так сойдёт?
Аноним 31/03/17 Птн 08:06:36  964038
>>963271
Энтони Уильямс
Параллельное программирование на С++ в действии
https://www.ozon.ru/context/detail/id/135511867/
Аноним 31/03/17 Птн 14:47:20  964237
Двощ, 17 студию научили отображать юникод?
Аноним 31/03/17 Птн 15:11:01  964265
>>964237
У меня и 15 отлично отображает.
Аноним 31/03/17 Птн 15:22:19  964276
>>964237
>>964265
Что ты имеешь в виду?
Аноним 31/03/17 Птн 17:56:50  964375
Двач, что-то не гуглится нубский вопрос, подскажи, можно ли явно удалить локальный объект?
{
Или единственный вариант это только загонять его в область видимости?
}
Аноним 31/03/17 Птн 19:04:51  964419
>>964375
Обьект на стэке умирает по выходу из стэке.
Т.е. да, уебанские фигурные скобки, и ничего больше. Возможно, разделить куски кода на лямбды и их дергать, что, практически, тоже самое
Аноним 31/03/17 Птн 19:14:55  964423
>>964419
С лямбдами это будет смотреться еще паршивее, ИМХО.
Аноним 31/03/17 Птн 19:51:24  964447
>>964375
Yoba ж yoba = new Yoba;
delete yoba;

Yoba yoba;
yoba.~yoba();
Аноним 31/03/17 Птн 19:53:38  964449
>>964447
Идиот, это удаление объекта на куче а не удаление локального объекта.
Аноним 31/03/17 Птн 20:00:43  964455
>>964447
>yoba.~yoba();
ub
Аноним 31/03/17 Птн 21:38:07  964498
>>964375
А смысл, если место на стэке всё равно не освободится. Ты хочешь постоянно создавать и удалять объект в одной области видимости? Или освободить ресурс?
Аноним 31/03/17 Птн 22:13:17  964524
>>964375
Не гуглится потому, что некорректный вопрос. Что ты имеешь ввиду под локальным объектом?
То, что имеет смысл "удалять", на стеке не хранят.
C+=1 + ASM Аноним 31/03/17 Птн 22:14:34  964526
Всем здарова. Где-то год назад видел, но потерял. Толстенький pdf, где разные куски кода С++ дизассемблили и разбирали, что получается. Получилась такая специфическая книга по реверсу, си++ и оптимизации. Мб кто-нибудь видел такое
Аноним 31/03/17 Птн 22:34:30  964543
>>964526
Гугл говорит, что это может быть:
"Использование ассемблера для оптимизации программ на С++", Юрий Магда, 2004
Аноним 31/03/17 Птн 23:18:12  964563
>>964543
Точно не это. Не помню, на каком языке была книга, но это был raw pdf, не скан. Излагалось все живо, не академично.
Аноним 01/04/17 Суб 01:00:23  964591
Untitled-1.png (549Кб, 3870x1360)
>>962830
>>962004
>>961975
>>961931
>>961924
>>961919
>>961912
>>961905
Все до одного в глаза ебётесь. Сейчас я enhance эту картинку для вас, уебанов.
Аноним 01/04/17 Суб 01:02:15  964593
>>964591
>enhance
Это называется zoom, уебан.
Аноним 01/04/17 Суб 01:03:18  964594
>>964593
>zoom
В крайнем случае magnify
Аноним 01/04/17 Суб 01:06:57  964596
>>962316
>Как вызывающий класс понимает что это?

Если классу не видно объявление энума - никак.
Аноним 01/04/17 Суб 01:08:38  964599
>>962393

Запросто: обязать всех авторов ОС делать ABI. "Мусолить" не означает "сочинить ABI".
Аноним 01/04/17 Суб 01:11:04  964600
>>964599
> "Мусолить" не означает "сочинить ABI".
Не сочинять, а чтобы у каждого был свой ABI?
> обязать всех авторов ОС делать ABI.
Да их и обязывать не надо, они сделали каждый свой ABI. Короче, проблемы нет.
Аноним 01/04/17 Суб 01:12:54  964602
>>962526

Мануал открой, он встроен в креактор.
Аноним 01/04/17 Суб 01:17:18  964604
>>962890
>Схема
>QEventLoop name;
>printf("LOOP")
>name.exec();
>
>Работает только 1 раз.


Какое же ты уёбище... С какого хуя она должна работать больше одного раза? printf ты куда сунул?
Аноним 01/04/17 Суб 01:18:49  964608
>>964604
>С какого хуя она должна работать больше одного раза?
Ну луп это же типа goto. name.exec() делает переходит к QEventLoop name.
Аноним 01/04/17 Суб 01:34:45  964613
>>964524

This.
Аноним 01/04/17 Суб 01:35:21  964614
>>964594
>>964593

Ну уж нет, я назову это enhance.
Аноним 01/04/17 Суб 01:35:54  964615
>>964600
>Да их и обязывать не надо, они сделали каждый свой ABI.

Сделали, но не стандартизировали.
Аноним 01/04/17 Суб 01:36:57  964616
>>964608
>Ну луп это же типа goto.

Пальцем в жопу.

>name.exec() делает переходит к QEventLoop name.

Блядь, я не засну сегодня.
Аноним 01/04/17 Суб 01:38:28  964617
>>964615
>не стандартизировали.
https://www.google.ru/search?q=itanium+c%2B%2B+abi
https://www.google.ru/search?q=sysv+abi
Аноним 01/04/17 Суб 01:39:33  964618
>>964616
>Пальцем в жопу.
Пальцем в жопу это не луп. Вот если рот к жопе пришить, может луп получиться.
Но вообще goto назад это луп.
> Блядь, я не засну сегодня.
Что не так?
Аноним 01/04/17 Суб 01:48:21  964619
>>964618
>Что не так?

Никакой код в C++ не может перейти куда-то без слов for while goto if или вызова функции или longjmp или чего-то из этого в макро.
Аноним 01/04/17 Суб 01:48:57  964620
+ catch try
Аноним 01/04/17 Суб 10:45:17  964665
>>964608
Хех, кодить, не почитав доки или хотя бы не имея примеры.
Аноним 01/04/17 Суб 11:13:46  964677
Господа из ДС2, думаю о том, чтобы попробоваться в Транзас, если в чонить более успешное не выйдет.
Сейчас работаю в мелкой конторе без юнит-тестов и нормального цикла тестирования вообще, без проработки архитектуры и всякого такого прочего.
План - поработать годик в конторе, где все это есть и набраться опыта.
Кто-нибудь там работал, есть что рассказать?
Аноним 01/04/17 Суб 11:31:35  964679
>>964608
Ихихихи, ну ты и лалка.
QEventLoop занимается тем, что продолжает выполнение запланированных событий (которые были вызваны QueuedConnection или BlockingQueuedConnection способом), при этом, если его завершить, то сначала завершится обработчик активного события, а потом продолжится выполнение твоего кода после QEventLoop::exec()
Аноним 01/04/17 Суб 11:37:23  964685
>>964617

Ссылку на ABI для Windows предоставь, плес.

Аноним 01/04/17 Суб 11:38:44  964686
>>964685
>Windows
Это говно никому не интересно.
Аноним 01/04/17 Суб 12:01:51  964706
>>964686
прыщеблядок, плс
Аноним 01/04/17 Суб 12:38:48  964723
>>964686

Это говно занимает большую часть рынка пользователей ноутбуков и пекарен, так что твоему работодателю это говно вполне может быть интересно.
Аноним 01/04/17 Суб 12:41:32  964725
>>964723
Многие работодатели интересуются у тебя знанием ABI?
Аноним 01/04/17 Суб 13:00:06  964730
>>964725

Есть много библиотек без открытого кода и скомпилированных одним компилятором. Ты не сможешь использовать их из другого компилятора.
Аноним 01/04/17 Суб 13:22:30  964741
>>964730
И как тебе знание ABI помогает решить эту проблему?
Аноним 01/04/17 Суб 13:53:54  964757
Как сделать чтобы объект целиком был в другом треде? Хранить std::thread и делать detach() в конструкторе?
Когда из основного потока вызываются методы класса, они ведь в другом потоке будут выполняться?
Когда-то работал с тредами в Qt, сейчас уже всё забыл
Аноним 01/04/17 Суб 14:04:50  964764
>>964757
Ты хочешь ActiveObject.
Аноним 01/04/17 Суб 14:25:34  964782
>>964741

Какое ещё знание АБИ, пидор? Стандартизация АБИ, а не его знание.
Аноним 01/04/17 Суб 14:30:51  964788
>>964782
>Стандартизация АБИ
Да не будет этого никогда, долбоёб.
Аноним 01/04/17 Суб 15:19:39  964841
>>964677
то что у них постоянно висят вакансии еще не значит что тебя возьмут
Аноним 01/04/17 Суб 15:23:40  964844
>>964841
Возьмут, почти наверняка.
Есть пара вакансий, по которым я полностью прохожу по обязательным условиям и по большинству дополнительных.
Ну и объективно я не особо говнокодер, способен закодить что-нибудь на бумажке, архитектуру гибкую набросать, в алгоритмах разбираюсь и даже в общение могу.

Вопрос же всё-таки не о том, возьмут ли меня, а в том, стоит ли туда идти?
Аноним 01/04/17 Суб 15:32:13  964854
>>964844
У них вакансии открыты годами, оптимистичный ты наш совсем-не-говнокодер, но сходи, с тебя не убудет) А вообще сейчас как-то много сионистов из транзаса бегает по собеседованиям.
Аноним 01/04/17 Суб 16:24:01  964894
Как быть с декструктором объекта данные которого перемещены через std::move()? Везде хранить поле bool is_moved чтобы не выполнять деструктор дважды?
http://ideone.com/Eu11FI
Аноним 01/04/17 Суб 16:27:27  964896
>>964894
>Как быть с декструктором объекта данные которого перемещены через std::move()?
Перемещение должно оставлять объект в пригодном для разрушения виде.
> Везде хранить поле bool is_moved
Обычно это не нужно.
Аноним 01/04/17 Суб 16:38:45  964901
>>964788

MS shill, pl0s.

>>964894

Примерно так - деструктор всё равно выполнится ведь. Можешь оставлять пустые ссылки или ссылки на пустые объекты.
Аноним 01/04/17 Суб 16:58:54  964909
>>964894
move, в основном, нужен для двиганья указателей. Просто в обьекте откуда муваешь, ставишь указатель на nullptr, и все ок
Аноним 01/04/17 Суб 18:13:28  964929
>>964909
>move, в основном, нужен для двиганья указателей. Просто в обьекте откуда муваешь, ставишь указатель на nullptr, и все ок
Блять, один нюфаг который хочет дебильной хуйни, второй либо тоже нюфаг либо просто дебил.

move() только то и делает, что свапает указатель с нулптром (но стандартом это не оговаривается, как минимум в одной из версий гцц указатель просто копировался — ведь п-перформанс жи, так что надо смотреть в конкретной реализации std), данные он вообще никак не трогает.
Аноним 01/04/17 Суб 18:15:24  964930
Один >>964929 толще другого >>964608
Аноним 01/04/17 Суб 18:22:03  964934
У меня вот вопрос к эвангелистам раста вроде этого >>961847 — вы серьёзно считаете что ваша хуйня может стать широкоиспользуемым языком, пока тут пол треда задают вот такие вот вопросы
>>964894
и вот такие вот ответы за три сотни
>>964909
?
Аноним 01/04/17 Суб 18:47:16  964948
>>964929
Как хуйня, которую ты написал, соотносится с заданным вопросом?
Dmitry 01/04/17 Суб 18:51:54  964953
Разумно ли начинать проэкт на С, и перекатывать на плюсы только если есть небходимость и перекатывать не все?
Аноним 01/04/17 Суб 18:52:35  964955
>>964948
Мой ответ касается в первую очередь того ответа, но и твой вопрос покрывает — просто проверяй свой указатель в деструкторе перед удалением. Ну или просто иди нахуй
Аноним 01/04/17 Суб 18:53:40  964956
>>964953
Определись что тебе вообще нужно и задай вопрос нормально.
Аноним 01/04/17 Суб 18:56:28  964957
>>964955
ты зарабатываешь деньги, программируя на C++?
Аноним 01/04/17 Суб 18:58:00  964960
Неофит ИТТ. Недавно перешел на cpp с C#, пишу в visual studio. Насколько я знаю, в VS VC++. Дак вот, проект cpp в VS компилируется в байт-код как проект на C#, или только если в настройках cpp проекта включить "Использовать CLR"?
Или все проекты VC++ в VS хуячатся напрямую в машинный код и для запуска никакие .net'ы не нужны?
Dmitry 01/04/17 Суб 18:59:35  964964
>>964956
Ну вот GCC был на С написан, а потом его переписали, насколько знаю весь, возникли проблемы с бутстрапом и стандартами.
Все порешалось, но теперь компилятор собирается хуй знает сколько, выжирая кучу места на диске.
Это же простая утилита по сути.
Dmitry 01/04/17 Суб 19:01:29  964966
>>964960
Ебать у вас курятник там. Попробуй clang-ом статически собрать. Запусти в песочнице без нихуя.
Аноним 01/04/17 Суб 19:02:59  964967
>>964894
Это поможет:
http://stackoverflow.com/questions/3279543/what-is-the-copy-and-swap-idiom

Ответ на вопрос где-то в конце, но почитать всё равно не помешает.
Аноним 01/04/17 Суб 19:07:01  964970
>>964894
Это тоже поможет лучше понять, что происходит:
http://ideone.com/cyln7z
Аноним 01/04/17 Суб 19:09:46  964973
Можно сделать темплейт чтобы убрать указание типа при вызове функции? http://ideone.com/ca7dQt
У меня не получается, компилятор так пытается кастовать один тип в другой
Аноним 01/04/17 Суб 19:14:10  964975
>>964973
у вас Undefined Behavior с референсом на уничтоженный обьект
Аноним 01/04/17 Суб 19:15:32  964976
>>964975
Компилятор выдаёт ворнинг если убрать std::move, а так ему норм, по идее всё правильно работает
Аноним 01/04/17 Суб 19:17:31  964978
>>964964
Жырна
Аноним 01/04/17 Суб 19:20:00  964980
>>964976
Так нельзя делать. У тебя после выхода из функции объекты рипаются. Всё это работает только потому, что у тебя данных реальных нет.
Аноним 01/04/17 Суб 19:34:25  964989
Объясните использования constexpr для типов, зачем их применять?
Аноним 01/04/17 Суб 19:36:02  964990
>>964980
Ладно, пришло время окончательно закопать идею с полиморфизмом на стеке
Я хотед сделать оператор, например [], чтобы можно было вытаскивать переменные через префикс
scalar = perl["$var"]
array = perl["@var"]

Когда доделаю весь функционал придётся всю работу с переменными переделать на указатели, на стеке слишком много ограничений
Аноним 01/04/17 Суб 19:39:22  964993
Почему везде пишут, что мол нехер использовать printf() в сабже? Я ебал хексы выводить
Аноним 01/04/17 Суб 19:42:02  964996
>>964993
потому что не тайпсейф ни разу.
Аноним 01/04/17 Суб 19:42:22  964998
>>964989
http://stackoverflow.com/questions/14116003/difference-between-constexpr-and-const
Аноним 01/04/17 Суб 19:48:44  965002
>>964964
>Это же простая утилита по сути.

Вон из профессии.
Аноним 01/04/17 Суб 20:02:43  965010
>>964998
Чому тогда не сделать все функции констэкспр, авось попадёт подсчёт в компиляцию?
Аноним 01/04/17 Суб 20:10:56  965014
>>965010
Вероятно, ты не сможешь завести программу, если везде повесишь. Ну и если вдруг тебе придётся в этом случае убрать constexpr, следом упадут связанные функции.
Аноним 01/04/17 Суб 20:15:05  965016
>>965002
>>964978
>перевести код на cпецифический asm в зависимости от процессора
Может тада еще boost добавить надо было?
Аноним 01/04/17 Суб 20:46:05  965028
>>964990
>полиморфизмом на стеке
делается через ссылки..
Аноним 01/04/17 Суб 20:46:37  965029
>>961839 (OP)

Привет, аноны. Не знаю, туда пишу или нет. В общем, хочу вкатиться во фриланс. Чего умею - писать коды на c++ для определенных целей, занимаюсь этим постоянно года 2 или 3 по работе. Чего хреново умею - шарить в оптимизациях, всяких утечках памяти и прочей программистской кухне сам по образованию не программист, на работе использую C++ только как костыль для решения конкретных небольших задач, прогами этими пользуюсь в основном только я, иногда коллеги, которые прогать умеют еще хуже, чем я. . В общем, как такие днища навыки применять, чтобы помимо основной работы можно было наварить около 10 рублей, работая раз в неделю? С чего начать?
Аноним 01/04/17 Суб 20:47:49  965030
>>965029
*10 тысяч рублей в месяц
Аноним 01/04/17 Суб 21:06:26  965043
>>965028
Ну так посмотри на ideone, как там через ссылки сделать?
Аноним 01/04/17 Суб 21:12:52  965048
>>965043
Просто если сейчас я могу сделать

perl.getScalar("my_variable").setValue("huita")

придётся писать

Scalar ж var = perl.getScalar("my_variable")
var->setValue("huita");
delete var

(при том что Scalar содержит указатель на Си данные, которые продолжат жить в куче)
ёбаный стыд...
Как-то занимался играми, там из-за наличия основного цикла и событий легко подчищать умершие объекты, а тут нихуя, бери и пиши сборщик говна с нуля
Аноним 01/04/17 Суб 21:29:37  965054
>>965048
>Scalar ж var = perl.getScalar("my_variable")
>var->setValue("huita");
>delete var

Чо.
Аноним 01/04/17 Суб 21:30:46  965055
>>965048
А, я понял. Так shared_ptr ебани может?
Аноним 01/04/17 Суб 21:32:05  965056
>>964993
>Я ебал хексы выводить

Родина дала ему output modifier, но нет, он хочет жрать говно.
Аноним 01/04/17 Суб 21:49:40  965062
>>965054
Грубо говоря
class Scalar
{
InternalScalar ж ptr;
...куча методов...
} ;

class Array
{
InternalArray ж ptr;
...куча методов...
} ;

Учитывая что они хранят всего лишь указатель и не контролируют его (этим занимается интерпретатор с подсчётом ссылок), логично размещать все объекты на стеке

Но без наследования от общего предка с приведением типов туда-сюда архитектура слишком ограниченная, придётся возвращать new Scalar из функций
Аноним 01/04/17 Суб 21:57:59  965066
>>964955
>просто проверяй свой указатель в деструкторе перед удалением
На что проверять, довен?
Аноним 01/04/17 Суб 22:00:14  965067
>>964993
libfmt
Аноним 01/04/17 Суб 22:34:51  965090
>>965062
Ну так выводи объект. Тебе что-то мешает это сделать?
Аноним 01/04/17 Суб 22:48:18  965098
динамический полиморфизм (на вирт функциях) работает через косвенные обращения - через указатели для объектов созданных в куче, через ссылки для объектов созданных на стеке или в глобальной памяти..
статический полиморфизм реализуется через шаблоны..
ad hoc полиморфизм посредством перегрузки функций..
Аноним 01/04/17 Суб 22:59:14  965103
ты там биндинг перла хочешь прикрутить? какую конкретно задачу делаешь?
алсо, можешь расшарить свой код - я могу помочь..
Аноним 01/04/17 Суб 22:59:48  965105
>>965062
>>965090
Эм. То есть выводи объект вместо ссылки.
Аноним 01/04/17 Суб 23:01:13  965107
>>965055
>shared_ptr ебани
Из фабрик принято возвращать unique_ptr, кагбэ говоря "лайфтайм этого объекта полностью под твоим контролем"
Аноним 01/04/17 Суб 23:03:30  965109
>>965105
Куда? (A)B() в c++ не работает если что
Аноним 01/04/17 Суб 23:20:48  965124
>>965109
Ну можно запилить ссылку и её уже закастить.
Аноним 01/04/17 Суб 23:23:01  965127
>>965109
Да и вообще, так ли уже тебе нужны 2 класса? В контексте того, что ты нам показывал - это изврат. А что там тебе в реале нужно, ты ещё особо не показал.
Аноним 01/04/17 Суб 23:36:47  965144
Screenshot at 2[...].png (116Кб, 628x692)
>>965103
Задача - аналог liblua, достаточно быстрый для использования в играх
Основная проблема - прямой вызов С++ функций внутри eval() и require(). Пришлось сделать XS модуль, через который можно в рантайме создать функции в main:: или другом пакете и из них вызывать С++ коллбеки. Вызов получается не прямой, зато есть полный контроль над стеком, то есть в созданной функции можно свободно принимать и возвращать массивы
Может тебе известен другой способ? Я весь интернет перерыл в поисках

Код может залью через пару дней, сначала надо определиться с моделью хранения указателей на переменные, чтобы избавиться от вот этого пиздеца (везде должно быть Variable)
Аноним 02/04/17 Вск 00:13:04  965174
Screenshot at 2[...].png (36Кб, 697x276)
Screenshot at 2[...].png (38Кб, 432x310)
>>965144
Вот ещё как внутри работает и yoba-оператор[], в который благодаря полиморфизму через префиксы можно вместить все остальные методы
Аноним 02/04/17 Вск 00:15:47  965177
Пикча треда - 10/10С
Спасибо, сохранил.
Аноним 02/04/17 Вск 00:22:09  965179
Какие то вопросы в треде освещаются скучные.
Я тут ожидал больше архитектурно-концептуальных ответов, а тут один неосилятор доказывает другому как с его точки зрения STD работает правильно.
Аноним 02/04/17 Вск 00:23:43  965180
>>965179
Под это отдельный тред нужен. Можешь создать, если не влом.
Аноним 02/04/17 Вск 00:26:39  965183
>>965179
Пили перекат.
Аноним 02/04/17 Вск 00:27:23  965184
>>965107
Програмчую, фабрике владеть этим указателем большого смысла далее нет.
Но геморой может быть с уникальным указателем на куче, случайно можно проебать, если реально где-то в разных местах используется.

Тут точнее говорить - либо фабрика должна отдавать шаред ибо таков замысел - фабрика шаредпоинтеров, или же очень внимательно следить за циклом жизни в скопе.
Аноним 02/04/17 Вск 00:29:27  965185
>>965180
Так оно и интересно.
Нахуй мне тут про стандарты читать и спорить о их реализациях, когда это справочная информация.

Реально в работе возникет огромное множество архитектурных вопросов и вопросов дизайна.
Аноним 02/04/17 Вск 00:38:15  965186
>>965177
Оригинал не поместился, был 7.5мб, ищи в блоге AlenaCPP
Аноним 02/04/17 Вск 00:46:39  965192
Ананасы, почему глобальные объекты - плохо?
Аноним 02/04/17 Вск 00:47:44  965194
>>965186
Я уже отгуглил 2017 версию.

Пикча хороша.
Аноним 02/04/17 Вск 00:49:54  965195
>>965192
Поразбирай парашу, написанную с их применением.
В десятках часах, разыщи же ту строчку кода, которая сука меняет состояние этого объета.
Убедись, что другая строчка кода в двух папках левее в другом cpp перезатирает состояние объетка, и от этого все работает хуй пойми с какой предсказуемостью..

А потом возвращайся, и дай нам ответ на этот вопрос.
Аноним 02/04/17 Вск 00:53:18  965197
>>965195
P.S. гне константные лобальные синглтоны - тоже зло.
Аноним 02/04/17 Вск 00:55:31  965198
>>965195
Так, хорошо. Но как быть с теми случаями, когда доступ к какой-нибудь хуйне нужен часто и из очень разных классов например в какой-нибудь QStatusBar сообщения всякие передавать?. И где о таком вообще можно почитать что-нибудь?
Если не понятно, что я хотел сказать, могу постараться поподробнее объяснить
Аноним 02/04/17 Вск 00:59:25  965199
>>965198
Я бы наследовал от CanChangeStatusBar а там уже внутри методов пускай конфликты разрузиваются
Аноним 02/04/17 Вск 01:02:37  965203
>>965198
Создаешь интерфейс IStatusBar.
У него метод IStatusBar::addMessage(const std::string& message) = 0;
Твой статус бар реализует этот интерфейс.
Передавай этот указатель туда, где нужно его использовать по иерархии композиции.

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

Другой пример - интерфейс доступа к настройкам.
Казалось бы, настройки приложения реально глобальные. И делай их глобальными. И да, можно, если каждая сущность хранит их в своей секции. Но как только кто-то начинает менять настройки другой, чужой сущности - тут начинается херня, и делать так не стоит.
Аноним 02/04/17 Вск 01:05:12  965205
>>965203
Это такой Java-way стиль.

Qt например предлагает хороший инструмент сигналов и слотов (обертка над указателями на методы), при помощи них тоже можно хорошо разрешить ситуацию.
Аноним 02/04/17 Вск 01:17:55  965209
>>965203
Если честно, то я не совсем понял, а чем это лучше. Ведь точно также все эти классы будут тащить указатель на мой statusBar. И точно так же я буду разгребать это говно
Аноним 02/04/17 Вск 01:28:00  965211
>>965209
В твоем случае используй то, что лучше вписывается в общую архитектуру.
Если нигде не использовал интерфейсы - то не используй.
Если везде тащил указатели - используй указатели.
Если синглтоны - то синглтон.
Решение должно быть обосновано как-то и гармонично. Ты обосновал - часто требуется доступ из разных мест, за гармоничность тебе решать.

И в твоем случае, обезательно передавай в метод - кто послал сообщение, иначе не разгребешь.
Аноним 02/04/17 Вск 02:14:08  965221
Вроде получилось пнуть компилятор чтобы генерировал любое количество версиий одной функции http://ideone.com/eJl8Cv
Пускай код засран, зато всё чистенько на стеке
Аноним 02/04/17 Вск 03:00:12  965233
Screenshot at 2[...].png (79Кб, 743x387)
>>965221
А вот так получается выглядят сигнатуры всех моих шаблонных методов. Каждый вариант пишется вручную, там всё равно разные си-функции дёргаются везде
Завтра займусь реализацией
Аноним 02/04/17 Вск 09:59:16  965258
>>965029
Днищефриланса на плюсах нет.
Аноним 02/04/17 Вск 11:22:18  965288
Что такое WinAPI в объявлении функции типа
int WinAPI winMain(int argc, char* _args){}
?
Где можно почитать об этих квалификаторах или как там мать их?
Аноним 02/04/17 Вск 11:28:16  965292
>>965288
WINAPI is a macro that evaluates to __stdcall

Всё просто.
Аноним 02/04/17 Вск 11:30:38  965294
2.png (42Кб, 489x521)
Анон, помоги, в чём тут ошибка? Всё же блядь вроде корректно написано
Аноним 02/04/17 Вск 11:39:01  965299
>>965294
http://stackoverflow.com/questions/14913243/netbeans-7-2-shows-unable-to-resolve-identifier-although-build-is-successful
Аноним 02/04/17 Вск 11:39:20  965300
>>965294
Поставь нормальную IDE вместо педальной параши.
Visual Studio или QtCreator, например.
Аноним 02/04/17 Вск 11:43:29  965303
>>965299
Охуеть, сколько лет уже это говно не фиксят.
Аноним 02/04/17 Вск 12:07:01  965318
C++ говно без задач.


С-бог
Аноним 02/04/17 Вск 12:36:33  965350
>>965292
Ну а что значит после типа возвращаемого значения и перед именем функции этот __stdcall?
Аноним 02/04/17 Вск 12:37:39  965352
>>965350
https://ru.wikipedia.org/wiki/Соглашение_о_вызове
Аноним 02/04/17 Вск 12:38:17  965353
>>965350

https://msdn.microsoft.com/ru-ru/library/zxk0tw93.aspx
Аноним 02/04/17 Вск 12:40:20  965355
>>965350
Какое-то очередное нарушение стандарта языка в исполнении MS, можешь в службу поддержки написать.
Аноним 02/04/17 Вск 12:45:07  965357
>>965350
Long ago, in a distant past, когда вызов функции был чуть более, чем обычным goto с сохранением адреса возврата, надо было придумать, как передавать туда параметры и как получать результат. И разные люди придумали и использовали разные способы - кто в стеке, кто в регистрах, а кто вообще в памяти. Так что вызывая какую-либо неизвестную функцию, она вполне могла невозбранно затереть твои регистры, не предупредив. Стало быть нужно помечать, какая функция как работает с параметрами, так и появились конвенции о вызове.
Аноним 02/04/17 Вск 13:01:56  965365
>>965300
Поставь нормальную IDE
@
QtCreator
Аноним 02/04/17 Вск 13:29:28  965393
maxresdefault.jpg (29Кб, 1280x720)
>>965300
Поставил нормальную IDE Eclipse, теперь всё собирается. Странно, всегда щитал нетбинс годнотой, по крайней мере в проектах на php и js оно меня ещё так не подводило
Аноним 02/04/17 Вск 13:45:35  965405
>>965393
а ты любишь сорта говна
Аноним 02/04/17 Вск 13:50:26  965406
>>965405
Просто Visual Studio на моем железе 90% времени будет висеть в Not Responding
Аноним 02/04/17 Вск 13:54:49  965407
>>965406
Тогда qtcreator твой выбор, эклипс на джаве написан и вряд ли летать будет
Аноним 02/04/17 Вск 13:56:27  965408
>>965406
Чет тоскливо. Плохо себе представляю, как можно получать удовольсвтие от кодинга на тормозной машине. Может купить старенький Сэнди-бридж на авито тысяч за 10?
Аноним 02/04/17 Вск 13:58:30  965410
>>965408
А с ним новую мать, бп, под новую мать ещё обновлять оперативку и кулера.

Я конешно не тот анон, но тут половина вкатывальщиков — студенты и школьники из мухосраней, для них это проблема.
Аноним 02/04/17 Вск 14:05:16  965413
>>965408
У меня Ivy Bridge, что вроде бы даже новее чем Сэнди. Ты уверен что на б/у говне за 10к студия будет идти лучше, чем на игравом ноутбуке за 60к?
Аноним 02/04/17 Вск 14:06:00  965414
>>965413
>ноутбуке
>низковольтажная мобильная залупа
/0
Аноним 02/04/17 Вск 14:08:17  965415
>>965414
Ну не таскать же системный блок в универ...
Аноним 02/04/17 Вск 14:12:07  965417
>>965413
У меня у самого айвик, студия летает. Хз
Аноним 02/04/17 Вск 14:17:31  965420
>>965393
Твоя проблема в том, что программировать надо головой, а не IDE.
Студийные макаки обмажутся своими гигабайтными тормозными монстрами и потом не могут высрать ни строчки кода без них.
Аноним 02/04/17 Вск 14:20:41  965423
Аналог boost::format кто знает?
Нашёл это http://ideone.com/BJAaKM , но оно не работает с std::string и насчёт безопасности есть сомнения
Аноним 02/04/17 Вск 14:24:56  965427
Обмазался тут новыми инициализаторами, возник вопрос.
Можно ли использовать запись std::vector {5}, чтобы создать вектор из пяти пустых элементов, как в случае std::vector(5)? Но создается вектор с одним элементом - пятеркой, видимо из-за конструктора, принимающего initializer_list.
Можно ли добиться такого поведения со фигурными скобочками? Хочу использовать такую инициализацию везде вместо обычных скобок.
Аноним 02/04/17 Вск 14:27:53  965429
>>965427
http://ru.cppreference.com/w/cpp/container/vector/vector

В конце.
Аноним 02/04/17 Вск 14:28:29  965430
>>965423
И ещё это https://gist.github.com/en4bz/f07ef13706c3ae3a4fb2 , работает со всеми типами на шаблонах, но нельзя использовать символ % если он не заменяется на строку.
Аноним 02/04/17 Вск 14:28:47  965431
>>965427
А, я подумал, что ты не можешь вектор определённого размера сделать.
А ты просто наркоман.
Аноним 02/04/17 Вск 14:31:44  965432
>>965420
Друг, сейчас не каменный век
Аноним 02/04/17 Вск 14:42:40  965436
>>965423
>Аналог boost::format кто знает?
fmtlib
Аноним 02/04/17 Вск 14:51:56  965439
>>965436
Нету в репе дебиана.
Ссылка на гист хорошая, туда бы только конструкию \% добавить и всё что нужно будет в одном хедере.
Аноним 02/04/17 Вск 14:57:51  965445
>>965439
>Нету в репе дебиана.
https://packages.debian.org/sid/libfmt3-dev
Аноним 02/04/17 Вск 15:17:14  965453
>>965420
Ты из тех, кто использует notepad++?

Аноним 02/04/17 Вск 15:17:48  965454
>>965453
gedit, vim
Аноним 02/04/17 Вск 15:18:25  965456
>>965420
Ловите вимоёба.
Аноним 02/04/17 Вск 15:21:24  965458
>>965454
Пукнул тебе в лицо
(Автор этого поста был предупрежден.)
Аноним 02/04/17 Вск 15:34:02  965462
>>965454
Ох лол. ИЛИТА в треде. Прости, я сейчас пойду удалю студию, и винду даже удалю. Поставлю LOONIX без иксов даже, и буду в виме пердолиться. Ведь результирующий продукт и скорость разработки не важны. Важно, что ты ИЛИТА и пердолишься в ВИМЕ
Аноним 02/04/17 Вск 15:35:06  965463
>>965462
>скорость разработки
От редактора зависит дай бох на 2%.
Аноним 02/04/17 Вск 15:35:40  965464
>>965462
Не забудь мышку выкинуть
Аноним 02/04/17 Вск 15:37:31  965466
>>965463
Я тоже так думал, пока меня не пересадили со студии. Красноглазая залупа и хваленый ДЖЕТБРЕЙНС даже близко не валялись. А что там в виме - мне даже страшно представить.
Аноним 02/04/17 Вск 15:47:21  965471
>>965454
Владелец квантового кластера? Если запихнуть вим мегабайты VimScript через плагины и довести фунционал до сносной IDE, он будет работать медленее студии.
Аноним 02/04/17 Вск 15:49:35  965473
>>965471
Я первым написал gedit. vim я пользуюсь иногда.
Аноним 02/04/17 Вск 15:51:51  965474
>>963749
всё уже написано
там е консольный чатик
http://www.boost.org/doc/libs/1_49_0/doc/html/boost_asio/examples.html
Аноним 02/04/17 Вск 15:52:27  965475
>>965473
Gedit тоже выкинь и поставь Geany, с виду то же самое но настраивается круто, по скорости работы уделавает всех включая Gedit.
Аноним 02/04/17 Вск 15:55:41  965477
>>965474
там есть регистрации и комнатки? Можно еще операторов чатика реализовать.
Аноним 02/04/17 Вск 16:04:09  965482
>>965466
Вим это обыкновенный текстовй редактор. А вот что такое есть в студии, чего нет в продуктах от джетбраинс?
Аноним 02/04/17 Вск 16:11:48  965485
>>965453
qt creator, atom, kdevelop, gnome builder, sublime text, emacs, vim.
Это неполный список легковесных и быстрых сред разработки. А ты иди скачай еще один апдейт студии на 5 гигабайт.
Аноним 02/04/17 Вск 16:14:26  965486
14678861540050.jpg (77Кб, 572x732)
>>965485
>легковесных и быстрых сред разработки
>atom
Аноним 02/04/17 Вск 16:14:31  965487
>>965462
ПРОГРАММИСТ ПОД ШИНДОВС, как же забавно это звучит.
Аноним 02/04/17 Вск 16:15:32  965488
>>965485
Можешь свое говно засрать себе обратно.
Аноним 02/04/17 Вск 16:15:44  965489
>>965486
Да, среди перечисленных он самый тормозной.
Но все равно выигрывает на фоне говна на джаве, моментально отжирающего всю память и студии, которая весит 10 гигабайт и устанавливается два часа.
Аноним 02/04/17 Вск 16:18:06  965490
Screenshot at 2[...].png (75Кб, 435x827)
Слава шаблончикам
Аноним 02/04/17 Вск 16:20:06  965491
>>965490
Ебать ты бешенный. Что-то мне подсказывает, что даже с шаблончиками эта хренотень будет работать так себе, если честно.
Аноним 02/04/17 Вск 16:22:46  965494
>>965491
Хотя не, для специализированных типов будет нормально.
Аноним 02/04/17 Вск 16:29:26  965502
>>965491
Со stringstream просто костыль чтобы что-нибудь вернуть, если кому надо пускай определяет stringstream::operator>> для своего типа
Аноним 02/04/17 Вск 16:59:36  965513
>>965462
> Прости, я сейчас пойду удалю студию, и винду даже удалю.
Да всем похуй на тебя, долбоёб.
Аноним 02/04/17 Вск 17:43:45  965540
Программисты 300к\сек, подскажите, нахуя нужен динамический массив?
>при объявлении статического массива, его размером должна являться числовая константа, а не переменная. В большинстве случаев, целесообразно выделять определенное количество памяти для массива, значение которого изначально неизвестно.
Но я все равно не вхуяриваю, для чего это надо. Если сказано, что должна быть константа, но почему бы после получения размера массива от пользователя просто не использовать ту переменную. гуглил - нихуя.
И что за некий указатель p_darr?
Аноним 02/04/17 Вск 17:46:02  965544
>>965540
>И что за некий указатель p_darr?
Не ведитесь, посоны. Это репост с другого ресурса.
Аноним 02/04/17 Вск 17:47:49  965546
>>965544
Что тебя смутило? Я действительно не знаю. Гугл мне толком ничего не выдал по этому запросу
Аноним 02/04/17 Вск 17:57:25  965553
14678770677320.jpg (82Кб, 549x925)
>>965540
>Если сказано, что должна быть константа, но почему бы после получения размера массива от пользователя просто не использовать ту переменную.
Потому что константа, определяющая размер массива, должна быть известна на этапе конпеляции. Очевидно, что статический массив находится прямо в экзешнике, и поэтому ресайзить его там не вариант. А динамический создаётся в рантайме в куче, которую выделяет для процесса ОС, а в куче выделяй/удаляй - не хочу
Аноним 02/04/17 Вск 18:00:18  965556
>>965546
Тому что константы должны быть вычислимы в момент компиляции программы. Виталик вводит свою циферку после компиляции программы -> константа не вычислима.

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

Динамический массив выделяется на куче, а на стеке выглядит как один указатель (размер которого известен компилятору)
Аноним 02/04/17 Вск 18:07:21  965560
>>965540
Если нужно небольших размеров динамический массив только на время выполнения функции, можешь воспользоваться функцией alloca или _alloca (одно и то же, по сути, только названия разные для разных компиляторов). Если нет - то тогда new[SIZE] и освободить не забудь при помощи delete[]. А еще лучше используй std::vector.
Аноним 02/04/17 Вск 18:33:09  965575
>>965553
>>965556
Так, подождите. Как я понял, то получается, что статический массив создается в памяти, которая уже используется для открытия программы, а динамический использует свободную память, которая есть в комплюктерне, так?
>>965560
В том то и дело, что пока надо разобраться с new и delete.

Повторю вопрос - что за указатель p_darr?
Аноним 02/04/17 Вск 18:41:26  965578
>>965575
https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D0%B5%D0%BA_%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2%D0%BE%D0%B2
>указатель p_darr
Это и есть твой массив
OP* p_darr = new OP[100];
Аноним 02/04/17 Вск 18:43:54  965580
>>965575
>p_darr
Ну это же ребус епта.
Это значит что ты p-dar ПИДАР
Аноним 02/04/17 Вск 18:48:12  965584
http://ideone.com/H9UTH6
Как сделать ParamT шаблоном, при том что ReturnT указан явно?
Я так понял нужно что-то вроде
template<class ReturnT, template<class ParamT> >
но как это сделать не ясно, на SO везде сраные template<class> Containter, а не отдельные методы
Аноним 02/04/17 Вск 18:49:53  965586
>>965578
Таакблятьнахуй, я совсем запутался.
Вот кусок кода

int main()
{
int num;
cout<<"Vvedite kolichestvo elementov massiva\n";
cin>>num;
int p_darr = new int[num];
for(int i=0;i<num;i++)
{
p_darr=i;
cout<<"i = "<<i+1<<" p_darr = "<<p_darr<<endl;
system("pause");
}
delete [] p_darr;
system("pause");
return 0;
}

И ты мне пишешь OP
p_darr = new OP[100];
К чему мне блять обращаться? К p_darr как у меня или к OP[100]?
>>965580
Я уже понял это
Аноним 02/04/17 Вск 18:52:04  965587
>>965586
http://ideone.com/
для начала
Аноним 02/04/17 Вск 18:55:55  965590
>>965584
SFINAE используй, иначе никак по-моему,
Аноним 02/04/17 Вск 18:56:08  965591
>>965584
function template partial specialization is not allowed
Аноним 02/04/17 Вск 18:58:14  965592
>>965584
Не знаю насчёт ответа, но можно полистать это:
http://en.cppreference.com/w/cpp/language/template_argument_deduction
Аноним 02/04/17 Вск 19:09:28  965596
>>965590
http://ideone.com/yW83GW

Посмотри здесь. Только на идеоне он не работает, запусти, например, на http://cpp.sh
Аноним 02/04/17 Вск 19:32:32  965604
1.PNG (7Кб, 737x100)
2.PNG (11Кб, 899x146)
3.PNG (9Кб, 898x107)
5.PNG (46Кб, 867x371)
Мимо программист не на C++ бугурт. Вот нахуй вы так делаете? Нахуй эти постоянные #define и typedef для каждого чиха? Ладно, допустим для большей ясности вы создаете макрос для оператора/модификатора/квантификатора, но почему вы тогда не можете использовать только 1 вариант?
Аноним 02/04/17 Вск 19:32:59  965605
4.PNG (7Кб, 737x100)
6.PNG (4Кб, 502x69)
>>965604
И еще нах
Аноним 02/04/17 Вск 19:35:30  965607
7.PNG (24Кб, 875x119)
>>965605
APIENTRY определен как WINAPI. А знаете, что скрывается под WINAPI? Конечно же __stdcall, что там еще можно использовать? Это же очевидно - назвать синее красным, красное зеленым, а зеленое - синим.
Аноним 02/04/17 Вск 19:40:30  965609
>>965604
Ты слишком маленький, не поймёшь. Но дам подсказку - те значения дефайнов, которые тебе показывает IDE, это значения которые были вычислены по твоему компилятору, его версии, версии ОС, наличию разных библиотек и т.д. На самом деле там большие деревья условий (IFDEF, IFNDEF), которые определяют именно тот набор дефайнов, которые ты сейчас видишь. А typedef для большей ясности, так ещё с Си повелось
Аноним 02/04/17 Вск 19:40:35  965610
>>965604
Где ты в винапи С++ нашел?
Аноним 02/04/17 Вск 19:45:24  965611
>>965604
Потому что в 1970-ых годах Ричи придумал язык С. В нем был препроцессор. За 40 лет ничего лучше С для системного программирования не придумали. На С же и написали WINAPI.

А с++ тут только при том, что он частично обратно совместим с С и из него можно вызывать сишный код.
Аноним 02/04/17 Вск 19:45:43  965613
>>965604
Это не С++, это API винды на чистом си.
>программировать под ШИНДОСВ
>удивляться, откуда за щекой член
Аноним 02/04/17 Вск 20:14:02  965622
>>965604
Иди батхёрть в свой двор, заебал.
Аноним 02/04/17 Вск 21:06:21  965641
>>965487
Еще одна илита в треде. Я так и представляю прыщавого толстого подростка, который зашел в класс, его все проигнорили, он решил хоть как-то привлечь к себе внимание, и сказал "Я под линуксом сижу". Жаль, что Ерохины продолжили обсуждать, как они вчера клеили тянок, а бабы еще больше отвернулись от этого недоразумения.
Аноним 02/04/17 Вск 21:48:06  965659
>>965641
Вернись в /b/
Аноним 02/04/17 Вск 21:56:46  965663
>>965659
Можно я останусь? Пожалуйста?
Аноним 02/04/17 Вск 21:58:30  965665
>>965663
Если прекратишь мыслить категориями илиты, Ерохиных, тянок и пр. и перестанешь походить на типичного школьника из /b/, то можешь остаться.
Аноним 02/04/17 Вск 22:44:38  965690
В STL есть алгоритм для перегнки vector<A> в vector<B> через лямбду конвертирования?
Аноним 02/04/17 Вск 22:49:24  965694
>>965641
Скажи это рарзработчикам компиляторов и компьнити практически всех языков кроме С#
Аноним 02/04/17 Вск 22:50:56  965696
>>965690
Нашёл std::copy
Аноним 02/04/17 Вск 22:55:33  965702
Компилятор ругается на подобные строки
ifstream infile( "alice_emma" );
Пишет, что нет конструктора с *char
В то же время в интернете много подобных примеров. Если загнать имя файлы в пременную стринг, а потом
ifstream infile( "alice_emma" );
то это все равно не помогает.
Аноним 02/04/17 Вск 23:00:49  965709
>>965694
ни один из этих людей не пишет АХАХАХА ВИНДА ХАХА ШИНДОШС БЛЮСКРИН
Аноним 02/04/17 Вск 23:02:58  965711
>>965702
какой компилятор то? И какая ошибка?
Аноним 02/04/17 Вск 23:04:27  965716
>>965711
gcc
https://clbin.com/xC3Ei7.png
https://clbin.com/xC3Ei7.png
Аноним 02/04/17 Вск 23:06:40  965717
>>965716
g++ -std=c++11 вместо gcc
Аноним 02/04/17 Вск 23:06:53  965718
>>965709
Сомнительное утверждение
Аноним 02/04/17 Вск 23:07:41  965720
>>965716
Замени istream на ifstream.
И подключи заголовочный <fstream>
Аноним 02/04/17 Вск 23:08:17  965723
>>965717
Это написать в консоль?
https://clbin.com/5C5aLo.png
Аноним 02/04/17 Вск 23:12:53  965726
>>965720
Подключен, иначе откуда берутся все эти функции указанные компилятором. А вот замена помогла, но только при
g++ -std=c++11
А вот с gcc не хочет
https://clbin.com/WG4MW1.png
Аноним 02/04/17 Вск 23:15:28  965727
>>965726
gcc по умолчанию не линкует стандартную библиотеку C++ да и вообще, это компилятор СИ, а не крестов
Аноним 02/04/17 Вск 23:19:07  965730
>>965727
Ой, это я по привычке видимо
как неудобно получилось, интересно почему у меня столько кода другого работало
А чем там линуксогоспода нынче компилируют, а то я чет подзабыл. g++ или как там? g++ -std=c++11 мне не нравится.
Dmitry 02/04/17 Вск 23:19:18  965731
>>965727
Он g++ написал.
Это только он по умолчанию стандартную либу линкует?
Аноним 02/04/17 Вск 23:19:37  965732
>>965730
Не нравится потому что доп настройки идут, а ни из-за религии, разумеется.
Dmitry 02/04/17 Вск 23:21:58  965733
>>965730
g++ / clang++ / i++
Аноним 02/04/17 Вск 23:26:46  965737
>>965732
тебе абсолютно везде потребуются доп настрйки, как только ты начнешь писать что-то сложнее хелло-ворлдов.
Аноним 02/04/17 Вск 23:28:51  965739
>>965733
Спасибо, кстати, в некоторых местах читал, что iostream есть в fstream, но видимо меня обманули. Я прав?
Аноним 02/04/17 Вск 23:29:21  965740
>>965737
У меня сейчас хелоуворлд. но приму во внимание и начну курить такие штуки.
Аноним 02/04/17 Вск 23:31:06  965743
Двач, подскажи, как создавать gui окна? В смысле не используя какие-либо наборы виджетов и api. Что-то я нагуглить не могу, мне гугл всё чьи-то очередные "самые лучшие" библиотеки подсовывает.
Аноним 02/04/17 Вск 23:31:36  965744
>>965726
>подключен
Ты путаешь istream из <istream> и ifstream из <fstream>. Это разные классы.
Аноним 02/04/17 Вск 23:33:27  965745
>>965743
Потому что все окна - это API и библиотеки. Используй самые лучшие библеотеки и не выёбывайся.
Аноним 02/04/17 Вск 23:35:30  965747
>>965745
Они самые хуёвые, то что я хочу реализовать на них не возможно, даже костыли не городятся.
Аноним 02/04/17 Вск 23:38:29  965750
>>965747
Напиши свой велосипед значит.
Аноним 02/04/17 Вск 23:39:51  965751
>>965750
Спасибо, уже написал.
Аноним 02/04/17 Вск 23:42:29  965752
>>965747
Бери голый OpenGL или обётку SFML/SDL
Я как-то делал всякие кнопки и чекбоксы для игры на SFML, это просто но писать очень много кода нужно.
Аноним 02/04/17 Вск 23:43:16  965753
>>965747
Берешь любую либу, пишешь zaebashit_okno(okno_name); и рисуешь внутри опенглом что хочется.
Аноним 02/04/17 Вск 23:45:42  965755
>>965743
>Двач, подскажи, как создавать gui окна? В смысле не используя какие-либо наборы виджетов и api.
WinAPI гугли
Аноним 02/04/17 Вск 23:46:15  965757
>>965690
>>965696
Вообще-то std::transform
Аноним 02/04/17 Вск 23:47:50  965758
>>965727
>да и вообще, это компилятор СИ, а не крестов
Вообще это драйвер. Компилятор СИ это cc1
Аноним 02/04/17 Вск 23:48:11  965759
>>965755
Уже нагуглил и xlib и winapi. Ну всё! Начинается сборка моего кросплатформенного велосипеда!
Dmitry 03/04/17 Пнд 00:00:27  965766
>>965739
Открываешь файл и там iostream юзаешь, пишешь, читаешь.
Dmitry 03/04/17 Пнд 00:01:54  965768
>>965730
g++ -std=cxx1z -march=native -O2 -pipe
Аноним 03/04/17 Пнд 00:02:50  965770
>>965768
-Wall -Wextra -Ofast
Dmitry 03/04/17 Пнд 00:06:09  965772
>>965753
>>965752
>2017
>OpenGL
Ну плес.

>>965747
Бери исходники fltk и переписывай на Wayland Display Server Protocol + Vulkan API.
Хелловорлд будет меньше 4 кб, а сама либа работает быстро.
Dmitry 03/04/17 Пнд 00:08:10  965775
>>965770
>-Ofast
Это уже блоат и некоректные вычисления могут быть.
Самая мякотка -O1 ультимейт решение без трейдоффа, но производительность может быть ниже чем -O2
Аноним 03/04/17 Пнд 00:11:39  965777
>>965772
>2017
>OpenGL
До сих пор нет аналогов.
Аноним 03/04/17 Пнд 00:37:00  965786
>>965775
Есть смысл в -match=native без -Ofast?
Аноним 03/04/17 Пнд 00:38:35  965787
>>965777
Vulkan API.
Полностью вытеснил опенгл, работает быстрее.
Аноним 03/04/17 Пнд 00:40:02  965788
>>965786
Есть, -march=native говорит делать ассемблерный код полностью под данный процессор, со всеми SSE, AVX2 и так далее.
Аноним 03/04/17 Пнд 00:41:11  965789
>>965787
Но зато кол-во строк для вывода одного треугольника возросло в 5 раз.
Да и видеокарты почти не поддерживают. Нафиг делать программу, которая запустится у 2% целевой аудитории? Программа должна запускаться как можно больше где.
Аноним 03/04/17 Пнд 00:42:32  965790
>>965788
Я о том, что без -Ofast не будет автовекторизации (для fp-чисел), а в чём там перемалывать числа без векторизации — в XMM или в YMM — какая к чёрту разница?
Аноним 03/04/17 Пнд 00:43:49  965791
>>965787
> Полностью вытеснил опенгл
Проиграл с этого школьника, что-нибудь кроме дотки и тестовой игры его поддерживает? Кто-нибудт спешит на нём разрабатывать игры? На сколько производительность лучше? На 10%? 1000 строк чтобы нарисовать квадрат? Vulkan это не нужная параша.
Аноним 03/04/17 Пнд 00:47:04  965792
>>965787
Разве что в твоём манямирке.
Dmitry 03/04/17 Пнд 00:47:06  965793
>>965789
>в 5 раз
Не в 5 раз это во-первых, во-вторых это делается один единый раз при написании своей либы. Вулкан не имеет оверхедов, опенгл много чего выполняет под капотом в ущерб производительности.
>Как можно больше где
Для этого его и сделали, теперь не надо пердолиься с версиями OpenGL, OpenGLES, теперь у нас единое API которое работает на всех платформах.
API поддерживается даже на древних встройках интела, не знаю о чем ты там говоришь.
Аноним 03/04/17 Пнд 00:50:19  965794
>>965790
Ofast это не только автовекторизация, и кстати а разве она в O2 не включена?
Там еще несколько сложных алгоритмов оптимизации кода, которые могут сделать код большим и медленным, поэтому надо отдельной опцией указать быстрые вычисления -ffast-math если не ошибаюсь.
Аноним 03/04/17 Пнд 00:51:31  965795
>>965791
На нем квейк переписали, на вулкан уже разработаны движки и портируются существующие, так что вылезай из манямирка.
Аноним 03/04/17 Пнд 00:53:23  965796
>>965794
> Ofast это не только автовекторизация, и кстати а разве она в O2 не включена?
Для векторизации fp обычно нужна ассоциативность, которая без -ffast-math не предполагается.
Аноним 03/04/17 Пнд 00:54:48  965798
>>965795
13 игр, проиграл
https://en.wikipedia.org/wiki/List_of_games_with_Vulkan_support
Достаточно того что нужно написать 1000 строк кода для того чтобы нарисовать квадрат, это уже делает его не нужной парашей.
Dmitry 03/04/17 Пнд 00:55:15  965799
>>965796
А еще надо знать что в твоем коде есть что векторизировать.
Аноним 03/04/17 Пнд 00:55:50  965802
>>965799
Спасибо, Капитан К.О.
Dmitry 03/04/17 Пнд 00:56:11  965803
>>965798
Работать не хочешь, ну и хорошо. Рыночек таких быстро порешает.
Аноним 03/04/17 Пнд 00:59:17  965809
>>965803
> Работать не хочешь
Если бы ты знал как сложно делать игры на чистом API, то ты бы не пиздел такой хуйни. И на OpenGL делать игры это достаточно серьёзный жизненный шаг, а что там на Vulkan будет я и не представляю.
Аноним 03/04/17 Пнд 00:59:44  965811
>>965798
Заметь что почти все они на разных движках. Тоесть разработка игры на вулкане уже не отличается от разработки на опенгл, это пока что только игр относится, в скором будующем и все графические либы на него перекатят.
Аноним 03/04/17 Пнд 01:00:49  965814
>>965811
> 50 строк кода на OpenGL
> 1000 строк кода на Vulkan
> разработка игры на вулкане уже не отличается от разработки на опенгл
Проиграл
Аноним 03/04/17 Пнд 01:14:50  965821
>>965793
>опенгл много чего выполняет под капотом в ущерб производительности.
Ты точно про core профиль?
>API поддерживается даже на древних встройках интела, не знаю о чем ты там говоришь.
А у меня почему-то другая инфа, всегда думал, что он поддерживается только на самых свежих картах, и то если поставить дополнительные дрова для вулкана.
Аноним 03/04/17 Пнд 01:36:43  965825
>>965809
На вулкане не игры делаются а либы, а на либах движки.
Аноним 03/04/17 Пнд 01:37:18  965826
>>965814
Ты путаешь разработку игры и движка, мань.
Аноним 03/04/17 Пнд 01:38:53  965827
>>965821
Точно.
>у меня другая инфа
Ну под свежее усерднее дрова пишут, всегда так.
Аноним 03/04/17 Пнд 03:23:11  965833
https://paste.ee/p/iYdFS

Блядь блядь блядь блядь блядь блядь блядь, почему нельзя выбрать перегруженный метод без мазохизма?
Аноним 03/04/17 Пнд 03:33:26  965835
>>965833
Но зачем:? Ты занимаешься какой-то бесполезной дрочкой.
Аноним 03/04/17 Пнд 03:53:04  965837
Как std::initializer_list и std::function передаются как параметры? Есть смысл принимать ссылку на них или by-value норм?
Аноним 03/04/17 Пнд 04:43:47  965840
>>965837
by value
Аноним 03/04/17 Пнд 06:35:31  965850
Есть у меня 3 процесса. Я точно не знаю какие я буду запускать(через CreateProcess), но должен выполнять(закрывать?) их параллельно. Могу ли я использовать WaitForMultipleObjects и передавать туда хэндл по два процесса даже если и не запускал их? что будет от этого? Если допустим для первого процесса я пишу "жди второго и третьего" а второй я даже не запускал. Хендл второго будет передавть мол "завершен" и первый будет ожидать только третьего?
Или я не правильно понял принцип работы WaitForMultipleObjects ? Объясните, пожалуйста.
Аноним 03/04/17 Пнд 07:17:08  965851
>>965850
Это не WinAPI-тред.
Аноним 03/04/17 Пнд 07:22:38  965853
>>965851
зато это тред того где я эти винапи юзаю.
Аноним 03/04/17 Пнд 07:58:27  965854
>>965853
Совсем дебил?
Аноним 03/04/17 Пнд 08:05:53  965855
>>965850
ап
Аноним 03/04/17 Пнд 08:23:49  965858
>>965855
Даун.
Аноним 03/04/17 Пнд 10:30:52  965879
>>965835

У QProcess два сигнала finished, один из которых не упомянут в документации.
Аноним 03/04/17 Пнд 11:04:24  965895
>>965837
Передавать по ссылке и юзать семантику переноса, std::move(list), чтобы ресурсы на куче не копировались.
Аноним 03/04/17 Пнд 11:04:46  965896
>>965895
>по ссылке
По значению, конечно, объебался.
Аноним 03/04/17 Пнд 15:53:19  966052
Двач, можешь подсказать как можно реализовать offline desktop текстовый редактор который бы поддерживал html, css и javascript?
Аноним 03/04/17 Пнд 16:06:22  966059
>>966052
Аналоги есть или это просто хотелка такая?
Аноним 03/04/17 Пнд 16:09:03  966061
>>966059
Хотелка.
Аноним 03/04/17 Пнд 16:36:47  966074
>>965895
Это ты std::move предлагаешь к std::initializer_list применять?! Разупорись.
Аноним 03/04/17 Пнд 17:08:27  966084
Не могу придумать, как без говнокода загружать в память и сохранять из памяти дерево. Не бинарное, количество потомков и уровней неизвестно, у некоторых концевых вершин есть доп. массив с информацией.
Аноним 03/04/17 Пнд 17:10:52  966086
Ребят, в С++ начинающий
Какой компилятор посоветуете?
ибо я так тред почитал и понял, что многие - шлак
О
И заодно литературу какую почитать было бы неплохо
Аноним 03/04/17 Пнд 17:16:22  966091
>>966086
Там сверху шапка есть. Что значит компилятор - шлак?
Аноним 03/04/17 Пнд 17:18:01  966093
>>966091
да хуй знает
что-то не поддерживает
я не особо вникал не бейте меня
Аноним 03/04/17 Пнд 17:32:40  966101
>>966093
Как тебя не бить, когда ты несешь какую-то отбитую чушь, и потом говоришь - ОЙ Я НЕ ЧИТАЛ ОБЬЯСНИТЕ МНЕ. Иди блядь и читай.
Аноним 03/04/17 Пнд 17:36:23  966104
>>966101
бля, соррян
чуток неадекват
нашёл
Аноним 03/04/17 Пнд 18:43:37  966118
Неофит на связи. Почему в C и C++ так любят объявлять сигнатуры функций в одном файле (.h), а определяют их в другом файле (.cpp) или в том же файле чуть позже? И с классами та же тема, сигнатуры хуячите в описании класса, а определяете вообще хз где:
ClassName::FuncName()

Почему нельзя сразу определять тело функций? Какой профит с описания лишь сигнатур? Типа чтобы точки входа в функцию рядом располагались, и по ним можно было бы прыгать по указателю?
Аноним 03/04/17 Пнд 18:45:35  966119
>>966086
vim — лутший конпелятор.
Аноним 03/04/17 Пнд 18:46:23  966120
>>966118
Почитай как работает препроцессор и как происходит линковка
Аноним 03/04/17 Пнд 18:48:38  966123
>>966118
Чтобы ты не лез куда попало. Видишь интерфейс - им и пользуйся.
Ну и, естественно, ускорение времени компиляции, потому что разным юнитам трансляции придется делать одно и то же, если все подряд хуячить в хэдере.
Алсо, платформенно-зависимые куски приходится дефайнить (хотя это один из самых хуевых вариантов написания кросс-платформенной библиотеки), и тогда у тебя будет все засрано, как в WINAPI (ох уж эти уебанские описания COM интерфейсов и перехватчиков, фу блять, как вспомню только)
Аноним 03/04/17 Пнд 18:53:25  966124
>>966123
>дефайнить ... это один из самых хуевых вариантов написания кросс-платформенной библиотеки

Ты хотела написать "дефайнить — это единственный существующий метод написания кросс-платформенной библиотеки", Манюня.
Аноним 03/04/17 Пнд 19:07:22  966127
>>966124
Таки нет. Почитай про wrapper facade, им заворачивают платформенно-зависимый код. Зацепив к одному заголовочнику , например, несколько вариантов исходников (которые выбираются во время сборки) можно избавиться от этого говна. Ну и про PIMPL не забывай, это, конечно же , лишний оверхед, но для кросс платформенности нормально.
Аноним 03/04/17 Пнд 19:08:17  966129
>>966123
А если функции в хедере void или возвращают указатели, можно инклудить все зависимости в cpp, а хедер будет чистый и не потянет зависимости выше по иерархии инклудов
Аноним 03/04/17 Пнд 19:08:29  966130
>>965850
МСДН тебе тут штоле?
Аноним 03/04/17 Пнд 19:10:01  966132
>>966127
>которые выбираются во время сборки
Святым духом выбираются?
Аноним 03/04/17 Пнд 19:10:52  966134
>>966084

Всё как обычно: определяешь operator<< и operator>> для каждого типа.
Аноним 03/04/17 Пнд 19:12:37  966135
>>966132
Системой сборки блять. Что ты за человек то. Это гораздо лучше, чем городить блядские дефайны где ни попадь, а к слову, я даже знаю одного человека, которые дефайнил целые функции, потому что считал, что так быстрее будет.
Аноним 03/04/17 Пнд 19:16:15  966136
>>966135
>Системой сборки блять. Что ты за человек то.
Которая написана на C(++) и где были использованы эти кроссплатформенные дефайны.
Ну или платформа определяется запуском препроцессора над файлом с ifdef-ами и проверкой, какие куски этого файла выжили.
Аноним 03/04/17 Пнд 19:18:03  966137
>>966136
>кроссплатформенные дефайны.
*дефайны для определения платформы
Аноним 03/04/17 Пнд 19:26:41  966142
>>966136
Конфиг конфигом, я тебе про платформенно-зависимый код говорю. Тот д же мьютекс под разными осями будет иметь в итоге один общий интерфейс, в то время как логика создания/захвата и т.д. может различаться. Проще и чище вынести код для каждой платформы в отдельный сорец и там пилить логику, но уже без дефайнов, чем ковыряться в куче говна. Об этом речь. А система сборки для того и нужна, чтобы этот мусор разгрести.
Аноним 03/04/17 Пнд 19:49:10  966160
>>966142
>Конфиг конфигом, я тебе про платформенно-зависимый код говорю.
Я понял, петушочек, что ты хочешь сказать. Я говорю о том же.

Объясняю ещё раз. В твоей системе сборки ты проверяешь текущую платформу каким-нибудь так
if($platform==OSX)
srcs+=(mutex/impl/osx.cpp);
endif
(это псевдокодкод условной системы сборки).

Только вот значение $platform:
1) Определяется при сборке этой системы сборки с помощью тех же дефайнов.
2) Определяется при запуске системы сборки выполнением каких-нибудь скриптов, которые вызывают препроцессор и опять же смотрят, какие переменные в нём предопределены.
Аноним 03/04/17 Пнд 21:03:28  966202
Screenshot at 2[...].png (47Кб, 510x381)
Что может пойти не так?
Аноним 03/04/17 Пнд 21:19:43  966217
>>966202
Не совсем понятно зачем наследоваться. Можно же
template<class PtrT>
using Ptr = std::shared_ptr<PtrT>;
Аноним 03/04/17 Пнд 21:21:01  966220
>>966217
typename после = наверное ещё добавить надо
Аноним 03/04/17 Пнд 21:22:11  966221
>>966202
Быть может я и не прав, но вроде как локальные объекты move не возвращают
кто-нить знающий, поясните, прав я или нет
Аноним 03/04/17 Пнд 21:22:27  966222
>>966220
или нет
Аноним 03/04/17 Пнд 21:23:21  966225
>>966221
О, этого я не заметил. Да, это dangling reference.
Аноним 03/04/17 Пнд 21:25:47  966228
>>966225
Отлично, значит я хоть что-то знаю
Аноним 03/04/17 Пнд 21:38:12  966236
>>966217
А оператор куда писать?
Аноним 03/04/17 Пнд 21:38:42  966238
>>966236
А зачем?
Аноним 03/04/17 Пнд 21:39:18  966239
>>966134
А алгоритм сохранения дера то какой?
Аноним 03/04/17 Пнд 21:39:54  966240
>>966239
Какой тебе будет удобнее.
Аноним 03/04/17 Пнд 21:41:58  966243
>>966238
Так можно писать
Ptr<A> = Ptr<B>(new B)
вместо
shared_ptr<A> = dynamic_pointer_cast<A>(shared_ptr<B>(new B))
Аноним 03/04/17 Пнд 22:00:37  966261
>>966240
Это троллинг? Мой вопрос и заключался в том, как сохранить дерево, при помощи какого алгоритма. Синтаксические вопросы дело последние.
Аноним 03/04/17 Пнд 22:14:52  966280
>>966261
>при помощи какого алгоритма.
Это троллинг?
При помощи алгоритма обхода дерева.
Аноним 03/04/17 Пнд 22:16:55  966283
>>966280
Вот есть дерево. Я его рекурсивно обхожу. Что дальше? Что я должен записать в файл?
Аноним 03/04/17 Пнд 22:52:36  966327
>>966283
https://ideone.com/yOfNd3
Пиздец как хуёво у крестовиков всё
мимо дотнетчик
Аноним 03/04/17 Пнд 22:55:02  966330
Changes between C++14 and C++17 DIS
https://isocpp.org/files/papers/p0636r0.html
Аноним 03/04/17 Пнд 22:58:58  966338
>>966239

Для маленьких деревьев: рекурсивный, блядь.

Для больших деревьев: обход дерева с поворотом ссылок в обратную сторону.
Аноним 03/04/17 Пнд 23:03:56  966341
>>966338
Как это в файл записать так, чтобы потом востановить?
Аноним 03/04/17 Пнд 23:17:54  966351
>>966330
Зачем ++ у bool убрали?
А -- остался?
Аноним 03/04/17 Пнд 23:22:21  966356
>>966351
Сам-то как думаешь?
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0002r1.html
Аноним 03/04/17 Пнд 23:29:31  966365
>>966330
Декларацию function() throw(X) убрали?
Помню как-то написал throw(A, B), и спустя время где-то внутри дочерних вызовов внутри этой функции выкидывалось С, и это исключение невозможно было поймать, как будто его кидает main. Долго пытался понять что происходит вообще.
Эта хрень требует указывать абсолютно все исключения которые могут возникнуть, поэтому убрали видимо.
Аноним 03/04/17 Пнд 23:49:14  966387
>>966341

Мозг себе сейчас сломаю тем, чтобы хоть как-то тебе помочь, но так, чтобы ты ещё и сам подумал головой.

https://paste.ee/p/SWHj8

operator>> напиши сам.
Аноним 04/04/17 Втр 00:01:38  966404
Кроме того, твой опциональный массив должен быть частью payload - само дерево в идеале должно содержать только payload и быть template-ом, чтобы ты мог использовать его c другими классами без изменения.
Аноним 04/04/17 Втр 00:03:24  966406
Привет, крестовики. Я тут задумался недавно, а зачем вообще C++ и почему не пишут все на C.
То есть приведите примеры где C++ необходим.
Аноним 04/04/17 Втр 00:07:39  966410
>>966406
Примеры где с++ необходим — абсолютно все случаи, кроме написания драйверов.
Аноним 04/04/17 Втр 00:15:04  966415
>>966406
>То есть приведите примеры где C++ необходим.

Таких примеров нет, оба языка Тьюринг-полные.

Просто на C++ ты напишешь код короче и безопаснее, и сделаешь это быстрее.
Аноним 04/04/17 Втр 00:15:15  966416
>>966406
Блять, что за такая тупорылая постановка вопроса "где необходим"?
Аноним 04/04/17 Втр 00:29:34  966422
Неофит с очередным вопросом. Стоит ли использовать константы по поводу и без? Есть ли ощутимая разница в производительности, есть ли разница в скорости компиляции? А то пока что единственная причина, по которой стоит использовать const - чтобы "не забыть, что переменную нельзя изменять", что мне кажется как то надуманно и не особо важно, но в то же время по const'ам аж главы в книгах пишут.
Аноним 04/04/17 Втр 00:31:41  966424
>>966406
Привет, крестовики. Я тут задумался недавно, а зачем вообще C++ и почему не пишут все на haskell.
То есть приведите примеры где C++ необходим.
Аноним 04/04/17 Втр 00:32:53  966425
>>966283
>Вот есть дерево. Я его рекурсивно обхожу. Что дальше? Что я должен записать в файл?
Последовательно обхода, наркоман.
Ты, прежде чем такие вопросы задавать, указывай возраст, мол студент первого курса. Итд.
И пробуй хоть гуглом воспользоваться.
Аноним 04/04/17 Втр 00:32:57  966426
>>965604
Это пример прекрасного и мощного кода. Такого кода больше нет, одно хипстерство и пидорство. Его можно сравнить с огромным, брутальным промышленным комплексом. А WinAPI, кстати - лучшая в мире библиотека для каких-либо языков программирования. Ибо она умеет всё.
Аноним 04/04/17 Втр 00:34:39  966428
>>966406
Свой динамический массив и строку уже написал?
Аноним 04/04/17 Втр 00:35:15  966430
>>966422
> что мне кажется как то надуманно и не особо важно
> но в то же время по const'ам аж главы в книгах пишут
Так может потому они и важны раз пишут целые главы?
Аноним 04/04/17 Втр 00:36:05  966431
>>966430
В том то и дело, я хочу узнать, не скрывается ли за const что нибудь еще, кроме как помощь не забыть и не проебать значение переменной.
Аноним 04/04/17 Втр 00:38:21  966432
>>966431
Почитай, например, про константные функции классов.
Аноним 04/04/17 Втр 00:43:00  966434
>>965787
Скажи мне, друг, а ты проводил тесты? Сравнивал производительность одной и той же программы, написанной с использованием OpenGL и с использованием Vulkan?

Или ты просто прочитал где-то, что Vulkan - это модно, молодёжно, будут бабы давать, и OpenGL уже не нужен? Знаешь ли ты о синхронизации и о том, как с не бороться? О том, как вручную управлять ресурсами? Сможешь ли ты хотя бы написать на вулкане программу, которая будет по производительности хотя бы такая же, как аналогичная на OpenGL?
Аноним 04/04/17 Втр 00:44:22  966435
Предлагаю в С++20 вызывать методы указателя через ~, а -> отдать байтоёбам,охуенное же

auto x = new Yoba
x~call()
Аноним 04/04/17 Втр 00:45:27  966436
>>966118
Чтобы у тебя не возникало каши при желании просмотреть список методов класса, не путаясь в реализациях.
Аноним 04/04/17 Втр 00:47:02  966437
>>966406
Да хотя бы тот же RAII.
Аноним 04/04/17 Втр 00:47:11  966438
>>966434
Лучше бы назвали Pukan
Аноним 04/04/17 Втр 00:52:26  966440
>>965793
> API поддерживается даже на древних встройках интела, не знаю о чем ты там говоришь.
Чушь собачья.
Нвидия, например, напиздела с поддержкой.
https://devtalk.nvidia.com/default/topic/917161/vulkan/fermi-support-/post/4810640/#4810640
Аноним 04/04/17 Втр 00:52:26  966441
>>966351
>А -- остался?
Шта?
Аноним 04/04/17 Втр 00:53:31  966442
>>966351
> -- остался?
Его и не было никогда.
Аноним 04/04/17 Втр 01:03:45  966447
>>966441
>>966442
А нахуй тогда ++ был, если -- небыло?
Аноним 04/04/17 Втр 01:07:59  966448
>>966447
The ++ operator for bool was deprecated in the original 1998 C++ standard
Аноним 04/04/17 Втр 01:08:58  966449
>>966448
Кому вообще пришло в голову инкриментировать bool?
Аноним 04/04/17 Втр 01:18:39  966451
.png (179Кб, 500x613)
>>966449
Декремент ноги.
Аноним 04/04/17 Втр 02:46:01  966464
>>966160
>> 1) Определяется при сборке этой системы сборки с помощью тех же дефайнов.
Каким хуем ты приплел исходники из кода к парсеру системы сборки?!

>> 2) Определяется при запуске системы сборки выполнением каких-нибудь скриптов, которые вызывают препроцессор и опять же смотрят, какие переменные в нём предопределены.
Это ты так привык, но это не обязательно. Хотя с использованием какого-то конфига так проще всего, потому что и с этим зхэдером, по факту, ты работаешь только вскользь.
Аноним 04/04/17 Втр 04:10:44  966467
>>966428
Двачую !
Аноним 04/04/17 Втр 10:33:36  966523
>>966519
>програмирование на с++
>>961839 (OP)
Сюда пиздуй
Аноним 04/04/17 Втр 11:28:32  966558
>>966428
Погодите, погодите. Это крестовик-затейник сейчас траллет сишника строками? До чего мир докатился, блять.
Аноним 04/04/17 Втр 12:15:38  966586
>>966558
Посмотрите, долбоёб-сишник считает, что у него в языке отличные строки.

На, почитай, не позорься: http://russian.joelonsoftware.com/Articles/BacktoBasics.html
Аноним 04/04/17 Втр 15:19:08  966653
>>961839 (OP)
У меня есть два байта данных (uint16_t, quint16). Оригинально они задумывались содержать беззнаковое целое. Как можно представить эти данные во float (забросить их в least significant bytes) и signed int? Главное, чтобы результат имел то же бинарное представление, что и оригинальное число.
Это какой-то очередной posanskiy_cast?
Аноним 04/04/17 Втр 15:27:22  966657
>>966586
долбоеб строки это просто байты в памяти, а по твоей ссылке какойто индус несет хуйню
Аноним 04/04/17 Втр 15:51:17  966665
>>966653
union type punning
Аноним 04/04/17 Втр 16:06:04  966672
>>966653
memcpy
Аноним 04/04/17 Втр 17:13:46  966707
>>966657
>Не знать Джоэла
Если бы ты почитал повнимательнее, ты бы понял, что строки - гораздо более сложная вещь, чем просто байты в памяти.
Аноним 04/04/17 Втр 17:19:39  966710
Накидайте свои крутые assert макросы, больше всего интересуют универсальные __FILE__ и __FUNCTION__ для разных компиляторов
Использовал бы стандартный, но там какая-то еботня с NDEBUG, который надо отслеживать в чужих хедерах
И ещё нельзя написать return assert(x)
Аноним 04/04/17 Втр 17:25:47  966713
>>966710
эээ, __LINE__ ?
Аноним 04/04/17 Втр 17:28:57  966716
>>966707
что там сложного? длина не указана? городить структуру и хранить со строкой? твой джоэл крудошлеп и раздул проблему на пустом месте
Аноним 04/04/17 Втр 17:53:35  966726
>>966716
>Да здания - это же просто нагромождения арматурин с цементом, что там может быть сложного?

Когда ты сделаешь структуру и будешь хранить её вместе со строкой (кстати, так делать нельзя, ведь структура - это часть реализации, значит, в хедере ей не место), то у тебя получится тот же самый C++. Только вымученный, со странными названиями функций и без неймспейсов.
Аноним 04/04/17 Втр 17:59:07  966730
>>966665
>union type punning
Сработало. Спасибо, анончик.
memcpy - это очень мощно, но тоже должно работать
Аноним 04/04/17 Втр 19:01:24  966762
>>966425
Мне хотелось бы обходить его рекурсивно, чтобы уменьшить размер выходного файла. Студент 2 курса. Алсо в гугле только бинарные деревья видел.
Dmitry 04/04/17 Втр 19:09:47  966773
>>966762
Рекурсивный код тормозной.
Аноним 04/04/17 Втр 19:15:30  966779
>>966773
А вот мне плевать на время исполнения, я память на харде хочу экономить.
Аноним 04/04/17 Втр 19:17:37  966780
>>966779
Каким образом рекурсивный обход дерева будет уменьшать размер итогового файла?
Dmitry 04/04/17 Втр 19:25:29  966788
>>966779
Долбоеб.
Исполняемый файл по дефолту большой, особенно на винде, ты и 40 байт не съэкономишь
Аноним 04/04/17 Втр 19:26:27  966789
>>966780
При последовательном обходе в выходной файл придется записывать полный путь каждой ветки
Вершина/вершина2уровня1
Вершина/вершина2уровня2/вершина3уровня1
Вершина/вершина2уровня2/вершина3уровня2
А вот при рекурсивном
Вершина(Вершина2уровня1/Вершина2уровня2(ТУТ ЕЩЕ ДВЕ ВЕРШИНЫ МНЕ ЛЕНЬ))
Аноним 04/04/17 Втр 19:27:22  966791
>>966788
Тред не читай, сразу отвечай.
Я теоретик, мне насрать на конкретные цифры, это 1.
Я говорил, про выходной файл, а не исполняемый.
Аноним 04/04/17 Втр 19:27:48  966793
>>966791
>Я говорил, про выходной файл, а не исполняемый. Это 2.
Аноним 04/04/17 Втр 19:28:09  966794
>>966789
Не понимаю. Можешь на нормальном примере пояснить?
Аноним 04/04/17 Втр 19:31:18  966796
gC8MzH3n.bin (37Кб, 923x510)
>>966794
Это описание для дерева вида пикрил.
Аноним 04/04/17 Втр 19:32:30  966798
>>966789
>Вершина/вершина 2ого уровня-1ая
>Вершина/вершина 2-ого уровня2-ая/вершина3-его уровня1-ая
>Вершина/вершина2уровня2/вершина3уровня2
Аноним 04/04/17 Втр 19:53:34  966815
>>966730
пожалуйста :3
Аноним 04/04/17 Втр 20:01:31  966823
>>966796
Можно и без рекурсии такое построение сделать. Тебе нужен поиск в глубину (я так понимаю, ты его используешь).
Ну так-то я и не знаю, что сказать. Если ты просто будешь выводить во время обхода номера вершин в строку, то получишь практически тоже самое, что хотел. Тут надо только мозг включить и расставить скобок и слешей, где надо.
Аноним 04/04/17 Втр 20:04:10  966827
>>966823
Ну вот, скобки и слеши. То есть у меня в файле будет каждая вершина упоминаться ровно один раз. Именно о таком алгоритме я и спрашивал. Алсо я придумал его еще до того, как написал сюда, потом решил, что он несработает из-за синтаксиса, а через 20 миут понял, что все ок. Т.е. я около суток морочу всем здесь голову.
Аноним 04/04/17 Втр 20:08:10  966831
>>966827
По теории графов и алгоритмам наверни вводный курс. Будь ты хоть макакой, всё равно пригодится.
Аноним 04/04/17 Втр 20:19:16  966844
>>966726
а я бы не тащил работу со строками в реализацию языка. в любом случае, джоэл сосет
Аноним 04/04/17 Втр 20:23:46  966848
>>966831
Я уже прошел и теорию графов(предмет назывался наглядная геометрия и топология) и теорию деревьев (авл, красночерные и прочие кошерные вещи), введение в мат логику и теорию алгоритмов тоже было. Все изученное использую. Меня просто переклинило.
Аноним 04/04/17 Втр 20:27:16  966852
>>966848
Научись тогда гуглить чтоли. И не загоняйся.
Аноним 04/04/17 Втр 21:40:21  966909
>>966586
>долбоёб-сишник
Мимо, я долбоёб-шарпист
Аноним 04/04/17 Втр 21:46:23  966912
var i_need = get(&perekat);
Аноним 04/04/17 Втр 21:49:19  966913
>>966912
Эй, шарпист. Нормальные пацаны юзают auto
Аноним 04/04/17 Втр 22:03:52  966922
>>961839 (OP)
I need Help, аноны!
Как воспроизвести вот это условие: дважды вычислить значение выражения, используя функции, возвращающие void и не void
На примере этого кода: http://rgho.st/private/6pWf8Nz4L/4f7016b7ba8c1a06444ae6ff71440156
Пытался вкурить за сам void - нихуя
Аноним 04/04/17 Втр 22:16:06  966938
>>966726
>кстати, так делать нельзя, ведь структура - это часть реализации, значит, в хедере ей не место
Твои обезьяньи java-привычки тут не работают, макакич.
Аноним 04/04/17 Втр 22:31:52  966950
>>966449
>Кому вообще пришло в голову инкриментировать bool?
На реддите чел плакался, что ему придется кучу кода пидорасить из-за этого. Из рахи, судя по нику.
Аноним 04/04/17 Втр 23:45:30  967023
Есть ли способ подсчёта вхождений подстроки в строку быстрее чем тот, который везде дают в качестве стандартного?

size_t count = 0, l = sub.length();
for (size_t offset = str.find(sub); offset != std::string::npos; offset = str.find(sub, offset + l))
{
++count;
}
Аноним 04/04/17 Втр 23:59:39  967042
>>961839 (OP)
>>961839 (OP)
>>961839 (OP)

Добавляйте слово "кресты" в шапку, иначе искать неудобно.
Аноним 05/04/17 Срд 00:15:34  967055
>>966938
Джава - абсолютнейшее говно с точки зрения отделения интерфейса от реализации. Вся документация обычно в исходниках - если нужна инфа, нужно вручную читать исходники. Функции объявляются и на месте реализовываются, в итоге исходный код превращается в кашу.

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

>>966844
А этого и нет в реализации языка. Плюсовый std::string - лишь часть стандартной библиотеки, ты волен не использовать его. Можешь взять любой васянский типа CString или QString и даже написать свою версию.

А из статьи ты так ничего и не понял.
Аноним 05/04/17 Срд 00:30:06  967059
Почему

template<typename T>
void yoba(vector<T> xx)

не принимает initializer_list?
Если добавить функцию

template<typename T>
void yoba(initializer_list<T> xx) {
yoba(vector<T>(xx);
}

то работает
Аноним 05/04/17 Срд 00:56:08  967067
>>967042
ищи по cppthread
Аноним 05/04/17 Срд 01:02:49  967069
Прогромач помогач, не знаю как гуглить некоторые вопросы, а есди и знаю, то поисковая выдача не радует.
Вот есть у меня структура. Я вызываю функцию и хочу чтобы эта функция возращала ссылку на такую структуру, зосданную внутри этой функции, причем чтобы этот объект потом не исчезал.
Сейчас компилятор не ругается на такой код[code]
structure Al
{int cogolikl;};
Al Yoba(int n)
{
Al
Cus = new Al;
(Cus).n = 1499;
return
Cus
}
[/code]
Значение полученное функцией использую как ссылку.
Можно это сделать как-нибудь красивее и приятнее?
Аноним 05/04/17 Срд 01:05:04  967070
>>967069
Ошибочка, на
>return *Cus
он ругается
Сейчас перепишу в пасбин.
Аноним 05/04/17 Срд 01:07:11  967071
>>967070
pastebin.com/ULLCHncU
Аноним 05/04/17 Срд 01:12:05  967073
>>967071
У тебя будет висячая ссылка.
Лучше возвращай unique_ptr
Аноним 05/04/17 Срд 01:14:12  967074
>>967073
Почему указатель то висячий? Я же через нью создавал. И не хотелось бы для такой простой штуки прибегать к стль.
Аноним 05/04/17 Срд 01:17:19  967075
>>967074
Ты из функции возвращаешь не адрес переменной (указатель), а сам объект.
Аноним 05/04/17 Срд 01:20:47  967078
>>967075
То есть если я верну Cus, то это все исправит?
Аноним 05/04/17 Срд 01:21:53  967079
>>967078
Да и потом ты его должен сам удалить.
Аноним 05/04/17 Срд 01:23:14  967081
>>967079
Да, про делит помню
Аноним 05/04/17 Срд 01:23:26  967082
http://ideone.com/YcuLtv
Это что, нужно писать специализации для каждого возможного char[N]? Почему вторая функция не ловит строку?
Аноним 05/04/17 Срд 01:30:57  967086
>>967082
А если сделать так http://ideone.com/mG3GnY то уже std::string не ловит...
Аноним 05/04/17 Срд 01:53:11  967092
Screenshot1.png (92Кб, 1295x736)
Screenshot2.png (106Кб, 1232x739)
Screenshot4.png (62Кб, 609x710)
Чёт я совсем запутался. Нужен только цпп и директИКС.

Всё правильно натыкал?
Аноним 05/04/17 Срд 01:57:13  967093
>>967092
А нахуй тебе директикс?
Аноним 05/04/17 Срд 01:59:10  967094
>>967093
писать читы

чисто спортивный интерес не школьник
Аноним 05/04/17 Срд 02:05:44  967097
>>967094
Ладно, тогда хорошо.

У тебя ОС семёрка, судя по всему? Я просто насчёт SDK не уверен. Пакет для графических инструментов 8.1 - это немного не то. У меня на десятке стоит Windows 10 SDK (10.0.10586.0). А вот для Win7 я пункта что-то не вижу.

Да, если что, отладчик графики и профилировщик GPU в Windows 7 работать полноценно не будет. Он ещё в VS2013 не работал нормально на семёрке.

И да, отметь MSBuild.
Аноним 05/04/17 Срд 02:08:17  967098
Как можно сжать и расжать std::string через zlib/bz2/lzma? А то как не посмотришь на примеры, там тыща каких-то стримов-хуимов, буферов-хуюферов начзначать надо. Хочу как в питоне
s = b"asdfg"
compressed = bz2.compress(s)
Аноним 05/04/17 Срд 02:10:30  967099
>>967097
Да, семёрка. Уже в тренде были вопросы по поводу СДК для 8.1 - вроде говорили, что для 7ки подходит.

Я тогда и 8.1 SDK тоже пну
Аноним 05/04/17 Срд 02:12:03  967100
>>967099
Графические инструменты убери, они не нужны. Все либы есть в обычном SDK.
Аноним 05/04/17 Срд 04:54:09  967113
>>967055
>Я понимаю, для студента вроде тебя нормально держать в хедере таборы цыган, которые создают мешанину, уязвимости и никогда не пригодятся пользователю, но человек со вкусом такого делать не будет.
Да-да, java-дебил, при реализации строк нужно обязательно применить pimpl-idiom, а строки создавать только фабрикой.
Аноним 05/04/17 Срд 07:37:47  967117
>>967082
Там с автоматическим выводом параметра шаблона что-то не то. В обоих твоих случаях помогает явное указание, типа test<const char *>("test");
Аноним 05/04/17 Срд 07:45:15  967119
>>967023
Есть. Гугли.
Аноним 05/04/17 Срд 08:04:40  967121
Если конструктор копирования вызывается миллиард раз, нормально пометить его inline и написать в хедере рядом с классом? Почему так никто не делает?
Аноним 05/04/17 Срд 08:47:35  967128
>>966710
__FUNCTION__ вроде не все компиляторы поддерживают, в отличие от __LINE__, __FILE__
Никакой еботни с ndebug нет, просто он отключает ассерты. Если наоборот хочешь включить то просто пишешь #ifndef nbebug #undef ndebug #endif
Алсо, мне нравится такой ассерт:
#define asserted ? (void*)0 : fprintf(stderr, "Assertation failed.")

x != NULL asserted;
Аноним 05/04/17 Срд 08:49:15  967129
>>967121
Ну и каков профит на примере?
Аноним 05/04/17 Срд 09:30:00  967132
>>967121
потому-что слово inline ничего не меняет, кроме разрешения ODR.
Аноним 05/04/17 Срд 09:50:20  967136
>>967113
Дегенерат-студент вспомнил термины из лекций полугодовалой давности и решил, что это то, о чём я говорю. Ну ладно, со временем ты поймёшь, что значит не показывать пользователю то, что ему не нужно.
Аноним 05/04/17 Срд 10:05:14  967141
>>967082
>Это что, нужно писать специализации для каждого возможного char[N]?
Нет. http://ideone.com/Plv64x
>>967121
> Почему так никто не делает?
Так все делают.
>>967136
> ба-бах
Держи банан.
Аноним 05/04/17 Срд 10:11:54  967143
>>967129
Если конструктор присваивает пару указателей и не исполняет кода, неплохо бы его инлайнить чтобы копирование объектов было похоже на инициализацию структуры, без вызова функции конструктора
>>967132
Ни разу не видел чтобы конструкторы писали в хедере
Аноним 05/04/17 Срд 10:14:25  967144
>>967143
>Ни разу не видел чтобы конструкторы писали в хедере
Дивись, хлопець https://github.com/llvm-mirror/libcxx/blob/607e0c71ec4f7fd377ad3f6c47b08dbe89f66eaa/include/vector#L1063
Аноним 05/04/17 Срд 10:41:30  967160
>>967141
Знаешь, это твоё дело. Если ты не умеешь делать то, что ты пишешь, опрятным и юзабельным, то это целиком твои проблемы. Просто когда у тебя возникнет вопрос, а почему это никто не хочет пользоваться тем, что ты создал, вспомни мои слова.
Аноним 05/04/17 Срд 11:19:18  967165
Как в C++ использовать скрипты на Lua? Погуглил, все советуют разное, кто-то LuaBridge, кто-то swig. Что все-таки лучше использовать?
Аноним 05/04/17 Срд 11:29:38  967172
>>967165
Я бы взял то, что тащит не особо много кода за собой, уже написан какой-то функционал для работы инициализация и всё такое, есть документация/туторы.
Аноним 05/04/17 Срд 11:31:07  967173
>>967165
Есть же официальный интерпретатор луа, написанный на Сях. Не подойдет?
Аноним 05/04/17 Срд 11:43:04  967179
>>967059

Сам спросил - сам ответил. Чтобы работал initializer_list, должен быть известен тип initialiser_list. Конструкторов может быть несколько. То есть, разумеется, можно добавить в стандарт исключение для объектов с одним определённым конструктором, но это противоречит идеологии продажи оружия для уничтожения ноги.
Аноним 05/04/17 Срд 11:45:24  967182
>>967173
Может и подойдет, я не знаю, поэтому и спрашиваю.
У меня есть класс, у каждого экземпляра должен быть свой скрипт на Lua. Есть события, которые вызывают определенные методы. Эти методы должны вызывать соответствующие колбэки в Lua. И наоборот, вызов определенных функций в Lua, должен вызывать методы в классе.
Мне нужно то, что позволит это сделать проще всего.
Аноним 05/04/17 Срд 11:48:30  967186
>>967073
>У тебя будет висячая ссылка.

У него не ссылка, а указатель.

>>967075

У него опечатка: тип возврата - указатель, а возвращает он объект. Очевидно, что нужно звёздочку из ретурна убрать.
Аноним 05/04/17 Срд 12:04:29  967194
>>966938
>>967113

Интерфейс должен быть отделён от реализации, и технология 80ых годов не даёт сделать это в С/C++ без пимпл. Deal with it, модули уже в пути.
Аноним 05/04/17 Срд 12:28:29  967201
>>967194
>модули уже в пути.
Которые просто precompiled headers, ага.
Аноним 05/04/17 Срд 13:28:03  967238
Если у меня есть string A, а мне нужно разделить ее на две строки, которые в изходной строке разделяются каким-нибудь символом, например тильдой, то как мне это сделать? Видел очень много примеров типа
string B = strtok(A, "~");
или
string B = strtok(A.c_str(), "~");
но во-первых мой g++ отказывается такое есть из-за проблемы с конст чар, а во-вторых видел мнение, что это сишный код, а мы пишем на плюсах, поэтому стоит избегать такого.
Аноним 05/04/17 Срд 13:50:30  967267
>>967238
Методы find() и substr() класса std::string в помощь.
Аноним 05/04/17 Срд 14:30:40  967317
>>967119
>Гугли
А как ты думаешь, как я нашёл именно этот способ и почему спрашиваю, нет ли ещё? Может потому что везде этот способ предлагают.
Суффиксные массивы/деревья не в счёт, заебёшься с их быстрой реализацией.
Аноним 05/04/17 Срд 14:49:34  967334
>>967023
>Есть ли способ подсчёта вхождений подстроки в строку быстрее чем тот, который везде дают в качестве стандартного?

Это зависит от того, какой алгоритм испльзован в std::string::find. Самый быстрый - Кнутта-Морриса-Пратта, ЕМНИП.
Аноним 05/04/17 Срд 14:51:41  967335
>>967023

Олсо, std::find неоптимален для пересекающихся вхождений: в тех случаях, в которых КМП-поиск пропускает символы, std::find этого не сделает, так как ты вызываешь его много раз, а не один.
Аноним 05/04/17 Срд 14:55:13  967337
>>967335

Точнее: неоптимален для самонепересекающегося запроса.

Пример: строка 123412341234
Запрос: строка 1234

КМП-поиск сравнит каждый символ 1 раз, а тот алгоритм, который ты нашёл, сравнит все символы кроме "1" два раза.

Препроцессинг КМП-поиска можно приколхозить к std::string::find и будет тот же КМП-поиск.
Аноним 05/04/17 Срд 15:35:30  967364
>>967194
Ну почему не даёт. Во-первых, можно хранить внутренние функции в .c, а не в .h. Во-вторых, в случае со строкой можно делать так: вместо char использовать void, в первых байтах хранить информацию-заголовок, а в оставшихся - данные. Для обработки написать кучу разных функций, знающих, как работать с таким форматом. Что, собственно, и делается в C++, только без костылей.

Вообще, языку Си не хватает только strong typedefs и неймспейсов для безопасности.

Аноним 05/04/17 Срд 15:40:05  967366
>>967364
>PCHAR и PVOID
Фикс. Чёртова макаба.
Аноним 05/04/17 Срд 15:55:13  967372
>>967364
>Во-первых, можно хранить внутренние функции в .c, а не в .h.

Это крестотред. Декларации всех методов должны быть в заголовке - фиг бы с ними, с функциями.

Не могу понять, почему нужен pvoid для строки. Что мешает затайпдефить структуру? Чем структура отличается от указателя? Ведь и то, и другое - метаинформация.
Аноним 05/04/17 Срд 16:08:17  967377
>>967372
Это было к вопросу о том, как нормально реализовать строку в С, т.к. pchar - слишком медленный вариант (читай Джоэла выше).

Проблема структуры "указатель - длина" в том, что длину строки, по-хорошему, нельзя оставлять открытой для изменения. Это небезопасно, это путает пользователя и это вызывает вопросы вида "А что будет, если я сделаю strStruct.size = 100500; CopyStr(strStruct, strStruct2);?". Более того, некоторые так и будут делать.

Задокументировать всё, конечно, можно, но гораздо лучше, если таких вопросов не будет возникать in the first place.
Аноним 05/04/17 Срд 16:12:40  967380
>>967377
А, и ещё. Положив size открытым полем в структуру, ты больше не сможешь переименовать его или сильно изменить. Потому что тогда у пользователей всё сломается. А спрятав реализацию, ты спокойно можешь менять там что угодно, главное, чтобы открытый API сохранял свою работоспособность.
Аноним 05/04/17 Срд 16:17:16  967382
>>967334
Спасибо за подсказку. Только я ннп, как я должен находить "разделитель, который не должен нигде более встречаться", он же "любой символ, не входящий в алфавит".
Аноним 05/04/17 Срд 16:50:45  967398
>>967377
>Проблема структуры "указатель - длина" в том, что длину строки, по-хорошему, нельзя оставлять открытой для изменения.

Приватный size, публичный геттер. Но в сях с этим хуже, да.

>"А что будет, если я сделаю strStruct.size = 100500; CopyStr(strStruct, strStruct2);?". Более того, некоторые так и будут делать.

Эти ошибки можно делать и без этого. Не надо беспокоиться о безопасности, которой нет.

>ты больше не сможешь переименовать его
>или сильно изменить

Зачем? Почему нельзя в объявлении класса оставить только сигнатуру? Зачем мне вообще менять метод size() для элементарной структуры? Каким образом изменение метода вычисления size может сломать программу?
Аноним 05/04/17 Срд 16:53:21  967400
>>967382

Это нужно только для того, чтобы остановить поиск. string.find останавливает поиск сама с учётом сохранённой длины строки, и в своём цикле ты не должен пытаться заскочить за конец строки. Во всех учебниках написан алгоритм для строки неизвестной длины.
Аноним 05/04/17 Срд 17:22:53  967422
>>967400
Запилил. Получается гораздо медленнее чем встроенным.
Аноним 05/04/17 Срд 17:45:00  967427
>>964526
Reverse Engineering for Beginners
Dennis Yurichev
Аноним 05/04/17 Срд 18:08:28  967434
>>967422
На строках длиной в 10 символов скорее всего будет медленнее.
Аноним 05/04/17 Срд 18:09:55  967436
https://github.com/gcc-mirror/gcc/blob/9d0507742960aa9f2b99bc6e9584655ecc611792/libstdc++-v3/include/bits/stl_algobase.h

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

>>967422

Нужно больше инлайнов, лол.

Попробуй запилить весь поиск без использований std::string::find(). Я не советчик, впрочем: просто сказал про КМП.

Аноним 05/04/17 Срд 18:12:21  967439
>>967436

Олсо, это 5.4.0. В 6.3.0 то же самое.

https://github.com/gcc-mirror/gcc/blob/4b5e15daff8b54440e3fda451c318ad31e532fab/libstdc++-v3/include/bits/stl_algobase.h

Аноним 05/04/17 Срд 18:34:49  967447
>>967398
Я о сях говорил, у крестов таких проблем нет.

>Зачем? Почему нельзя в объявлении класса оставить только сигнатуру? Зачем мне вообще менять метод size() для элементарной структуры?
Опять же, в сях не может быть метода size(). Может быть только функция GetSize(MyString* str) или публичный, открытый для всех член структуры. От последнего варианта нужно бежать как от огня.

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

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

Поэтому хранить сложные объекты в чистом Си в виде структур абсолютно некорректно. Поэтому и вариант с pvoid - единственный нормальный.
Аноним 05/04/17 Срд 18:47:05  967456
>>967179
Ну вообще мне 4 функции пришлось добавить, поэтому спросил
Аноним 05/04/17 Срд 18:52:41  967461
>>967434
Искомая строчка в пределах 20 символов. Строка в которой ведётся поиск - десятки кб.

>>967436
>Нужно больше инлайнов
Сложна, сложна
>без использований std::string::find()
Ну так я и попробовал через КМП. Вышло слишком медленно.
Аноним 05/04/17 Срд 18:52:54  967462
>>967427
>Reverse Engineering for Beginners
>Dennis Yurichev
Душевное спасибо. Именно оно
Аноним 05/04/17 Срд 18:58:22  967467
>>967377
>Проблема структуры "указатель - длина" в том, что длину строки, по-хорошему, нельзя оставлять открытой для изменения.
>>967380
>А, и ещё. Положив size открытым полем в структуру, ты больше не сможешь переименовать его или сильно изменить.

Java-макака перечитала букварей по о-о-пе а-ля Бради Гуч и теперь с умным видом поучает всех банальностям.
Аноним 05/04/17 Срд 19:13:24  967470
>>967059
>Почему
>
>template<typename T>
>void yoba(vector<T> xx)
>
>не принимает initializer_list?

Потому что шаблон vector<T> не может заматчить initializer_list<T>.

Если ты думал, что тут выстрелит конструктор вектора, принимающий initializer_list и произойдёт implicit conversion, то ты жестоко ошибался. Это происходит при overload resolution, который происходит в более поздней фазе компиляции, чем инстанциация темплейтов.
Аноним 05/04/17 Срд 19:38:48  967487
Братия, вопросы.
а) Имею (упрощенно):
static struct {
Trigger trigger;
} ctrls[] = {
{
Trigger(HOLD_CYCLES, CRIT_TEMPERATURE_C),
},
{
Trigger(HOLD_CYCLES, CRIT_TEMPERATURE_C)
}};
По стандарту, должны вызываться копи-конструкторы, с помощью которых экземпляры триггеров попадут в массив? А исходные объекты создаются где, в стеке? Все сразу первым делом, и потом копируются, или создался-скопировался каждый по очереди? Мне важно, потому что стек ппц маленький. И еще любопытно: вот эти временные объекты - они rvalue? Для них будет вызыван move-конструктор вместо copy, или нет и не будет?
2) Дальше по тексту будет что-то вроде
for (auto &ctrl : ctrls) {}. В данном случае будет ли какая-нибудь разница между for (auto &&ctrl : ctrls) и for (auto &ctrl : ctrls)? Если здесь не будет, то где будет? Не предлагайте писать for (const auto &ctrl : ctrls), у меня там вызывается фкункция, изменяющая состояние объекта.
Аноним 05/04/17 Срд 19:40:14  967488
>>967487
Хм, накосячил что-то внезапно. Должно быть
static struct {
Trigger trigger;
} ctrls[] = {
Аноним 05/04/17 Срд 20:07:35  967502
>>967487
Ну напиши что-нибудь простое и проверь, как это на самом деле работает. У меня не вызывался конструктор копирования. Возможно, что я не так задачу понял или не шарю.
http://ideone.com/KDH1h2

>разница между for (auto &&ctrl : ctrls) и for (auto &ctrl : ctrls)
Ну для rvalue ссылок будет конструктор перемещения использоваться, так что я бы не стал этим баловаться в цикле.
Аноним 05/04/17 Срд 20:09:43  967505
>>967502
>Ну для rvalue ссылок будет конструктор перемещения использоваться
В смысле, можно закорраптить элементы в структуре данных.
Аноним 05/04/17 Срд 20:13:22  967509
>>967487
>>967502
>>967505
Бля, ну ты понел. Не научился ещё объяснять.
Аноним 05/04/17 Срд 20:33:40  967520
gobefatsomewher[...].jpg (67Кб, 562x434)
>>967502
>Ну для rvalue ссылок будет конструктор перемещения использоваться, так что я бы не стал этим баловаться в цикле.
Аноним 05/04/17 Срд 20:53:53  967529
>>967520
Действительно, херню сморозил.
(auto &&ctrl : ctrls) == (Trigger &ctrl : ctrls)

Судя по комментариям из кода отсюда:
http://en.cppreference.com/w/cpp/language/range-for
Аноним 05/04/17 Срд 20:54:36  967530
Новый вопрос: как мне из отрицательного float, 0.0f и положительного float сделать -чото, 0 и +чото соответственно?

Для интов это элементарно: return b-a. А для флоатов?

>>967447
>Если это плюсовый метод, то, опять же, никак. Если это публичный член структуры в Си, то вот тебе сценарий:

В C безопасности нет, зачем эта осторожность? Разве что для успеха ловли багов.

>Изначально хранилась пара "Указатель - длина". Для нужд других функций её поменяли на "Указатель на начало - указатель на конец". Всё, поля size у структуры больше нет. У пользователей всё поломалось.

Не-а, не катит. Откуда у пользователей взялась старая версия? Сериализация должа быть с версионированием, если ты собираешься менять класструктуру.

>>967436
>Какого ляда нету lower_bound с выбором компаратора? По стандарту должно быть, где оно? Точнее, почему оно с двумя подчёркиваниями?

Сам спросил, сам отвечаю: задефайнено в другом месте. Креактор не подхыватывает почему-то.

Аноним 05/04/17 Срд 20:56:51  967533
>>967530
>Новый вопрос: как мне из отрицательного float, 0.0f и положительного float сделать -чото, 0 и +чото соответственно?
>
>Для интов это элементарно: return b-a. А для флоатов?
Чё?
Аноним 05/04/17 Срд 21:06:41  967539
>>967533

Мне нужна функция, которая возвращает int меньше 0, равный нулю или больше 0 при a<b, a==b и a>2 соответственно.

Могу закодить в лоб, но хочется что-то покрасивее.
Аноним 05/04/17 Срд 21:07:00  967541
>>967539
>a>b
Аноним 05/04/17 Срд 21:10:55  967546
>>967529
Вот да, это я тоже видел (комментарии), а не понимаю, как так. Где-то в стандарте описывается, что ли, как именно auto&& разворачивается?
Аноним 05/04/17 Срд 21:25:29  967560
>>967546
Вот тут описано довольно просто, но не знаю, поможет ли тебе:
http://stackoverflow.com/questions/29859796/c-auto-vs-auto
Аноним 05/04/17 Срд 21:29:01  967564
>>967539
Вот это может помочь.
http://stackoverflow.com/questions/27141390/fast-compare-ieee-float-greater-than-zero-by-cheating
Аноним 05/04/17 Срд 21:30:29  967568
>>967530
>В C безопасности нет, зачем эта осторожность? Разве что для успеха ловли багов.
Вариант с pvoid вполне более безопасен, чем открытая структура. Средненькая безопасность лучше плохой.
>Не-а, не катит. Откуда у пользователей взялась старая версия? Сериализация должа быть с версионированием, если ты собираешься менять класструктуру.
Ну пользовались они два года старой версией. Использовали либу у себя в проекте. А после обновления все места, где либа использовалась, перестали работать. Нехорошо как-то.
Аноним 05/04/17 Срд 21:45:59  967588
>>967568
>Ну пользовались они два года старой версией. Использовали либу у себя в проекте. А после обновления все места, где либа использовалась, перестали работать. Нехорошо как-то.

С хера ли они перестали работать? size больше не возвращает size? sizeof(yoba) не использовали?

Не могу понять источник проблемы.

>>967564

Помогло, но тут я понял, что Compare-функции в стандарте хотят другое.
Аноним 05/04/17 Срд 21:47:39  967593
>>967560
Спасибо, няша. Там все достаточно хорошо разжевано.
Аноним 05/04/17 Срд 21:59:44  967624
for(i=huy; i!=zalupa; i++)

Как можно элегантно вынести i за скобки? То есть, сделать так, чтобы имя переменной было упомянуто 1 раз.
Аноним 05/04/17 Срд 22:03:38  967633
>>967624
Напиши макрос.
представляю, как сейчас подорвались java-макаки от этого слова
Аноним 05/04/17 Срд 22:03:47  967634
>>967624
Ну можно, но это не для всех:
http://stackoverflow.com/questions/15088900/neatest-way-to-loop-over-a-range-of-integers
Аноним 05/04/17 Срд 22:06:39  967640
>>967633

Не макрос, а макро. Как это будет выглядеть? for(i,huy,zalupa,operator++)?

Есть вариант с range-forом и лямбдами, но он громоздкий же.
Аноним 05/04/17 Срд 22:06:59  967641
>>967624
И вот ещё упомянутые сударем >>967633 макросы.
http://stackoverflow.com/questions/24392000/c-define-a-for-loop-macro
Аноним 05/04/17 Срд 22:07:36  967643
>>967634

Выглядит неплохо.
Аноним 05/04/17 Срд 22:20:41  967654
>>967588
Раньше:

for(int i = 0; i < myStr.size; i++)
{
    myStr.str = 'a';
}

И всё собирается.

Сейчас:

for(int i = 0; i < myStr.size; i++)
{
    myStr.str = 'a';
}

Выдаст ошибку ""size" is not an element of MyString".

Потому что MyString раньше имела такой вид:
struct MyString
{
    PCHAR str;
    size_t size;
}

А теперь такой:
struct MyString
{
    PCHAR strBegin;
    PCHAR strEnd;
}
Аноним 05/04/17 Срд 22:23:14  967658
63bc53cs-960.jpg (40Кб, 440x262)
>>967654
Аноним 05/04/17 Срд 22:24:36  967662
>>967658
Ну так поломается всё.

А вот было бы спрятано всё от пользователя в PVOID с непрозрачными API-функциями, такого не случилось бы.
Аноним 05/04/17 Срд 22:25:17  967664
>>967662
Фабрики, фабрики не забудь. И прокси.
Аноним 05/04/17 Срд 23:02:02  967699
>>967662
Ну какие фабрики и прокси? Опять ты вылез? Ты хоть осознаёшь, что ебля с байтами в PVOID не имеет ничего общего с ООП-паттернами?

Я тебе привёл конкретный (заметь, самый конкретный) пример проблемы, которая иначе не решается. А ты начинаешь кидаться говном и кричать.
Аноним 05/04/17 Срд 23:02:21  967700
>>967699 -> >>967664
Аноним 05/04/17 Срд 23:15:09  967715
Знатоки шаблонов, как превратить пару типов в enum/число и использовать как ключ/индекс для контейнера?
Например

template<class A, class B>
void yoba()
{
std::map[A, B]
std::unordered_map[A, B]
std::vector[A, B]
}
Аноним 05/04/17 Срд 23:18:16  967719
>>967699
Декоратор визитора.
Аноним 05/04/17 Срд 23:19:18  967720
>>967715
Как пару
Аноним 05/04/17 Срд 23:21:51  967723
>>967715
Или например
enum Type { AB = 0, BA = 1};

template<class T1, class T2>
void yoba()
{
// 0 если T1 = A, T2 = B
// 1 если T1 = B, T2 = A
Type id = magic<T1, T2>
}
Аноним 05/04/17 Срд 23:32:02  967727
>>967720
Какую пару?
Аноним 05/04/17 Срд 23:33:59  967730
>>967727
А, не правильно понял.

Юзай std::type_index.
Аноним 05/04/17 Срд 23:41:30  967737
>>967719
Зачем, когда обычный заголовок в PVOID (заметь, кроме сей и ассемблера, так нигде не решают проблемы) подойдёт?
Аноним 06/04/17 Чтв 00:11:24  967744
>>967730
Тут указан пример для одного типа http://en.cppreference.com/w/cpp/types/type_index
А как скомбинировать типы не знаешь?

Насколько я понял, вот это исполняется в рантайме

unordered_map<size_t, string> container;
container[typeid(A).hash_code() + typeid(B).hash_code()] = "AB"
container[typeid(B).hash_code() + typeid(A).hash_code()] = "BA"

хотелось бы так же в компилтайме
Аноним 06/04/17 Чтв 00:42:53  967767
Screenshot at 2[...].png (296Кб, 1280x998)
Кайф, ещё 50 строк и можно будет делать
callbacks.set<ReturnT, ParamT>("name", [] (ParamT x) -> ReturnT {})
и
ReturnT result = callbacks.get<ReturnT, ParamT>("name")(param)
Аноним 06/04/17 Чтв 00:49:20  967775
>>967767
Но зачем?
Аноним 06/04/17 Чтв 00:55:22  967781
>>967775
Иначе единственный выход писать
setCallback_Scalar_Array()
и
getCallback_Scalar_Array()

потому что std::function<T1(T2)> не кастуется ни во что другое
Аноним 06/04/17 Чтв 03:24:49  967816
>>967781
Бля, опять проблемы http://ideone.com/6oLAjz
function<void(...)> и function<...(void)> не работают даже при перегрузке функции, а шаблоны где T = void это вообще отдельная история
Аноним 06/04/17 Чтв 09:56:48  967867
>>967737
Без UML-диаграммы непонятно.
Аноним 06/04/17 Чтв 10:48:25  967883
>>967867
Для таких вещей нельзя написать UML-диаграмму, опять ты несёшь бред не по теме. Нету в UML соответствующих конструкций.
Аноним 06/04/17 Чтв 11:41:51  967924
>>967654
>>967662

Геттер сделать надо, говорил же.
Аноним 06/04/17 Чтв 13:22:34  968031
Няши, чому main файл всегда без хежера? Неудобно же. Что будет если я сам добавлю его?
Аноним 06/04/17 Чтв 13:44:16  968035
>>967924
Это возможно только с pvoid.

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

Подожди, я сейчас напишу минимально юзабельную либу для строк на чистом Си, заценишь.
Аноним 06/04/17 Чтв 13:52:25  968041
>>968031
хедера, фикс.
Аноним 06/04/17 Чтв 14:42:12  968077
>>968031
>чому main файл всегда без хежера?
Зачем? В идеале в main ничего не должно быть кроме точки входа в программу и может обработки текстовых аргументов.
>Что будет если я сам добавлю его?
У тебя будет main с хидером.
Аноним 06/04/17 Чтв 15:05:08  968097
>>968035
>Это возможно только с pvoid.

Теперь понял. Спасибо за объяснение.

Будем надеяться на то, что модули подъедут.
Аноним 06/04/17 Чтв 15:11:09  968106
>>968077

main не может быть без заголовков, если только не включён PCH.
Аноним 06/04/17 Чтв 15:49:13  968127
>>968106
http://cpp.sh/8soby
Вот тебе main без заголовочников. Или ты что то иное имел ввиду?
Аноним 06/04/17 Чтв 16:06:16  968141
>>968097
>Будем надеяться на то, что модули подъедут.
>>967201
Аноним 06/04/17 Чтв 18:14:50  968247
>>968127
И часто ты пишешь программы, единственным результатом которой может быть поедание процессорного времени и возврат результата в виде экзит-кода?

>>968141
Где почитать про это?
Аноним 06/04/17 Чтв 19:37:32  968291
Шолом, крестачи.
Есть вектор a, положим - std::vector<int> a = {1,4,8,8};
Мне нужно как в дишечке - снять с него слайс, т.е. получить еще вектор который сделан по данным старого вектора.

Т.е. там бы я сделал int[] a = [1,4,8,8]; int[] b = a[1..$]. Тут делал std::vector<int> b(++std::begin(a), std::end(a));
Только вот я глянул на data() - и как выяснилось, эта проблядь второй вектор скопировала, а не просто указалась на данные первого.

Как это сделать? Ну т.е. чтобы второй подмассив показывал на данные первого, т.е. без копирования? Я пробовал ставить const - думал этой хуйне нужны гарантии что я там нихуя не поменяю - ей по барабану.
Аноним 06/04/17 Чтв 20:30:02  968340
>>968291
В языках без сборки мусора такое сложно сделать. А конкретно с вектором нельзя, потому что вектор управляет памятью в которой хранятся его элементы. Ебись с итераторами.
Аноним 06/04/17 Чтв 20:53:49  968364
>>968247
>Где почитать про это?
https://clang.llvm.org/docs/PCHInternals.html#modules
Аноним 06/04/17 Чтв 21:09:32  968388
>>968291
Тебе придётся хранить в исходном векторе указатели или ссылки. Если ты будешь хранить в одном векторе данные, а в другом ссылки, то эти ссылки наебнутся при ближайшем перестроении исходного вектора.
Аноним 06/04/17 Чтв 21:17:32  968396
>>968388
> то эти ссылки наебнутся при ближайшем перестроении исходного вектора.
По условиям задачи этот вектор и вовсе константный, (ну почти, после инициализации и сортировки), все его слайсы никогда не переживут его самого, и на момент когда они создаются - и он сам, и они - никогда ничего внутри менять не будут, кроме как сужаться.

Я думал, что или есть способ заставить вектор так сделать, или что в stl есть какая-нибудь обертка над парой итераторов.
Аноним 06/04/17 Чтв 21:44:05  968413
Есть какие нибудь ресурсы на русском/английском, где хорошо объясняют, как работать с Qt в плане создания форм, подписывания на событий и прочим? Провёл достаточно времени за win forms и wpf, вот хочу в Qt вкатиться для GUI. Или лучше официальной документации ресурса нет
Аноним 06/04/17 Чтв 21:45:27  968414
>>968396
Если не брезгуешь бустом, посмотри на это:
http://www.boost.org/doc/libs/1_62_0/libs/fusion/doc/html/fusion/view.html

Ещё в стандарте есть std::slice, но это очень узкая реализация.
Аноним 06/04/17 Чтв 21:48:19  968419
>>968413
Ну, документация там довольно неплохая. Если тебе понадобиться что-то конкретное сделать, шансы найти почти готовую реализацию в доках высокие. Ну если тебе просто нужно выучить до уровня "Qt на кончиках пальцев", то есть книги, но что-то конкретное я не могу подсказать.
Кроме этого, миллион статей в интернете и различные попенсурс проекты но это не точно
Аноним 07/04/17 Птн 07:11:44  968606
Как почистить глобальный неймспейс от макродрисни? Если я сделаю хедер clear.h и скриптом соберу в него множество #undef, это сработает? Так кто-нибудь делае вообще? Схема получается такая:

mylib.h:
#include <clib.h>
...

main.cpp:
#include "mylib.h"
#include "clear.h"
Аноним 07/04/17 Птн 09:50:04  968640
>>968606
Сработает, но зачем?
Аноним 07/04/17 Птн 11:41:33  968665
>>968364

Дык есть ещё вариант от МС, который более вероятен. Там тоже PCH?
Аноним 07/04/17 Птн 19:24:01  968894
>>968640
Макросов очень много. Кому они понадобятся - может не подключать clear.h
Аноним 07/04/17 Птн 21:35:35  968968
Screenshot at 2[...].png (121Кб, 1280x997)
Рендерим скриптом пустое окно на простое ЦП, уже неплохо
Закинуть ещё десяток колбеков и можно игру написать
Аноним 07/04/17 Птн 21:42:46  968974
Как в плюсах сделать многопользовательское приложение. Вот есть сервер для работы с базой данных, и должна иметься возможность параллельно несколько пользователей обслуживать, как такое реализовать? Чтобы А ввел, команду, потом Б, потом А еще одну. Думал про форк, но это же не распаралеливание, там дочерний процесс выполняется, а потом снова родительский.
Аноним 07/04/17 Птн 21:53:16  968978
Есть ли в stl какой-нибудь единый тип итератора? Хочу передавать в функцию одномерный вектор/массив/множество, через который пробегаюсь один раз. Логично было бы не бойлерплейтить и перегружать функцию, а просто передавать в неё итераторы начала и конца. Если нет, то как это нормально сделать? Не приводить же тип каждый раз.
Аноним 07/04/17 Птн 21:53:43  968979
>>968974
Для распаралеливания кода в одном потоке можно использовать корутины, в с++11 кажется что-то в этом роде добавили в стандарт (std::future), или это только для тредов, не помню
Аноним 07/04/17 Птн 22:12:32  968985
>>968978
template<class T1 <class T2>>
void yoba(T1<T2> container)
Если не ошибаюсь, дальше вызываешь begin и end
Аноним 07/04/17 Птн 22:58:08  969003
>>968985
template <template <typename ARG> class CONT>
void (const CONT<ARG>& container)
Аноним 07/04/17 Птн 23:12:55  969011
>>968978
>Есть ли в stl какой-нибудь единый тип итератора?

Если у объекта есть некоторый набор свойств, и он наследник инстанса темплейта iterator, он называется итератором.

http://www.cplusplus.com/reference/iterator/

Чтобы сделать функцию, принимающую итератор, нужно функцию занести в темплейт. Функций станет много (по одной на каждый набор аргументов темплейта), но ты этого не заметишь, если будешь использовать угадывание аргументов темплейта.
Аноним 08/04/17 Суб 00:37:14  969032
Не знаю точно про необходимость наследования.
Аноним 08/04/17 Суб 00:55:10  969036
У вас когда-нибудь было на работе такое, что налабал алгоритм, и он почти работает, и ты несколько часов смотришь в код (элементарный и понятный) и не видишь ошибку?
Аноним 08/04/17 Суб 01:30:51  969038
Что значит operator++(int)?
Аноним 08/04/17 Суб 01:42:11  969042
>>969038

Если это метод: ошибка компиляции, так как аргументов быть не должно.

Если это функция - перегружает оператор ++ для интов.
Аноним 08/04/17 Суб 01:45:29  969045
>>969042

Ан, нет, переопределять встроенные операторы низзя.
http://ideone.com/58WIn9

Так что это может быть только метод, и метод operator++ не может принимать аргументы.
Аноним 08/04/17 Суб 01:53:12  969048
>>969038
Постфиксный инкремент.
Аноним 08/04/17 Суб 01:59:37  969050
>>968974
std::thread
Аноним 08/04/17 Суб 02:27:22  969053
Сап эксперты. Прошу пояснить ньюфагу за механизм исключений. В чем его предназначение?

Правильно ли я понимаю, что вот это вот try-catch, это типа эволюционировавшее сишное
If (foo() == -1)
{
// проверить значение errno и действовать дальше исходя из него
}
// все хорошо, работаем дальше
Аноним 08/04/17 Суб 02:42:03  969055
>>969045
Я нашёл такие декларации:
Iterator& operator++();
Iterator& operator--();
Iterator operator++(int);
Iterator operator--(int);
Аноним 08/04/17 Суб 02:52:17  969057
>>969053
Да только ещё исключение это полноценный класс в который можно при выбрасывании засунуть любую информацию и чуток логики для взаимодействия с ней. Обрабатывается не на месте а где-то выше по стеку вызовов. Когда кидаешь исключение посреди функции обычно приходится ломать голову как освободить ресурсы и вообще выйти из этой жопы чтобы приложение продолжило работу когда эта функция снова будет вызвана после обработки исключения, которая обычно происходит где-то далеко и не имеетпрямого доступа к тому с чем эта функция работает.
Аноним 08/04/17 Суб 12:48:43  969226
>>969057
>исключение это полноценный класс
throw 1.5;
Аноним 08/04/17 Суб 12:50:17  969229
>>968978
>Если нет, то как это нормально сделать?
Темплейты.
Аноним 08/04/17 Суб 12:51:07  969231
>>969011
>он наследник инстанса темплейта iterator
Што?
Аноним 08/04/17 Суб 12:56:20  969233
https://pastebin.com/9cVUnNMb
Подскажите пожалуйста ньюфагу где я обосрался: шахматная доска, хочу пройтись по диагоналям н-точки и поменять значения, для этого ищу 1 - начало левой диагонали, 2 - начало правой диагонали.
Аноним 08/04/17 Суб 13:11:24  969240
>>968978
Ну вот дуболомное решение:
http://ideone.com/u5FmAC
Аноним 08/04/17 Суб 14:40:18  969278
>>969233
Ну нарисуй чтоли, что хочешь.
Аноним 08/04/17 Суб 14:45:43  969287
>>969055

Где ты их нашёл? Я только въезжаю в кресты, и если ты хочешь моего участия, мне нужно больше данных.

http://stackoverflow.com/questions/3846296/how-to-overload-the-operator-in-two-different-ways-for-postfix-a-and-prefix - аааааааа какой мудак додумался до (int).
Аноним 08/04/17 Суб 14:46:58  969289
>>969287
Можешь почитать "Дизайн и эволюция С++". Там сам Страуструп поясняет почему да как сделано.
Аноним 08/04/17 Суб 15:58:01  969325
8.png (314Кб, 488x451)
>>969278
Хочу менять значение диагоналей от н-точки. То есть везде где стрелочки (кроме точки-фигуры) должны поменяться значения (двухмерный массив).
Аноним 08/04/17 Суб 16:57:07  969354
Ананасы, вопрос такой. В общем есть некоторый интерфейс наподобие:
https://pastebin.com/zKsCUdsg
Итак, после некоторой стабильной работы (пара десятков запусков с отладкой, например), fn() начинает валиться. Я стал копаться из-за чего это, дело оказалось в том, что не смотря на то, что c указывает на валидную область память и читается (при этом и ичтается его атрибут _element), результат же выполняемой функции c->getElement() возвращает указатель на область памяти по адресу 0x00000001. Что за хуйня?! Ничего касательно этого кода не меняется абсолютно, что может быть причиной такого поведения?
Аноним 08/04/17 Суб 17:15:59  969366
>>969354
Первое, что приходит на ум - ты объект класса на стеке создаёшь. После выхода из createSomeClass() объект утилизируется. Это единственное, что приходит на ум с таким количеством информации.
Аноним 08/04/17 Суб 17:19:28  969369
>>969366
В том то и дело, что все в куче. По сути, getElement возвращает только указатель, который уже хранится в объекте. Через GDB я читаю все поля объекта нормально, но вот после вызова getElement возвращается какая-то хуйня, не смотря на то, что память вроде как нормальная.
Единственное, что помогает это перекомпилировать все с нуля, но это пиздец идиотия, я считаю.
Аноним 08/04/17 Суб 17:28:30  969372
>>969369
Ну так в чём проблема перекомпилить?
Аноним 08/04/17 Суб 17:36:24  969375
>>969372
Минут по 5 собирается и каждый раз в отладку... А как с релизом делать, там же никак и не поконтроллировать, просто упадет и все.
Аноним 08/04/17 Суб 17:49:39  969379
>>969375
Я не понял. Как перекомпиляция решает проблему?
Аноним 08/04/17 Суб 18:03:05  969392
>>969379
После нее возвращается нормальный адрес, а не 0x00000001. При том, что ничего не меняется. Я вообще нихуя не могу понять... может на оперативку стоит сетовать теперь.
Аноним 08/04/17 Суб 18:08:00  969395
>>969392
Хорошо. Ты перекомпилируешь 5 минут - проблема уходит. Я что-то не понимаю?
Аноним 08/04/17 Суб 18:08:34  969397
>>969392
Имею в виду, если после этого проблема уходит, то что дальше не так?
Аноним 08/04/17 Суб 18:13:45  969401
>>969397
Ну так она возвращается потом через некоторое время. Может действительно стоит забить на это, но я думаю, как бы это не вылезло все в риалтайме.
Аноним 08/04/17 Суб 18:15:22  969402
>>969401
У тебя просто говнокод.
Аноним 08/04/17 Суб 18:21:03  969403
blob (24Кб, 584x482)
>>969325
Попробуй что-то такое. Просто самое тупое, что в голову пришло (в вольфраме массивы с 1 начинаются, так что небольшие корректировки нужны) кеке.
Аноним 08/04/17 Суб 18:36:35  969408
>>969402
Ниет.
Аноним 08/04/17 Суб 19:09:33  969425
>>969354
Так можешь больше кинуть кода?
Аноним 08/04/17 Суб 19:47:40  969442
>>969401
Undefined behaviour, блядь.
>>969369
>В том то и дело, что все в куче.
_element в куче?
Отдели функцию от остального кода и вызывай её в цикле. Олсо, возвращать указатель на приватную переменную в геттере - долбоебизм.
Аноним 08/04/17 Суб 19:48:25  969443
>>969401>>969395
Undefined behaviour, блядь.
>>969369
>В том то и дело, что все в куче.
_element в куче?
Отдели функцию от остального кода и вызывай её в цикле. Олсо, возвращать указатель на приватную переменную в геттере - долбоебизм.
Аноним 08/04/17 Суб 19:49:59  969444
>>969425
Что-то около вот этого, если интересно
https://pastebin.com/hrrE7bCT
Аноним 08/04/17 Суб 19:52:16  969445
>>969442
Они там охуеть какие приватные. Я этот заголовочник не менял, хотя почему-то у меня подозрения по поводу публичности полей. С другой стороны, ни friend-классов ни аксессоров нет.
https://pastebin.com/YYG4Teix
Аноним 08/04/17 Суб 19:52:17  969446
>>969444
Нам не интересен твой говнокод, нам нравится помогать людям. Если ты не можешь поделиться программой, которая ТОЧНО падает после длительного выполнения - забей и забудь.

Олсо, если проблема в памяти, то с большой вероятностью у тебя должен регулярно падать браузер - у меня мемтест ничего не находил, зато падали Опера, Хром, ФФ и ошибки в Prime95/LinX были.
Аноним 08/04/17 Суб 19:56:48  969448
>>969446
>> которая ТОЧНО падает после длительного выполнения
Она даже не в многопоточке. Эта хуйня вылезает при отладке и вылезши единожды остается навсегда до следующего полного ребилда. И я бы избавился от этого места, но у меня часть физики завязана на этом.

>> Олсо, если проблема в памяти, то с большой вероятностью у тебя должен регулярно падать браузер - у меня мемтест ничего не находил, зато падали Опера, Хром, ФФ и ошибки в Prime95/LinX были.

В том то и дело, что нет.
Аноним 08/04/17 Суб 19:57:08  969449
>>969444
Этот анон >>969446 всё по делу сказал. Ровно тот кусок, по которому что-то можно понять, ты не скинул.
Аноним 08/04/17 Суб 21:49:10  969494
>>969446
>нам нравится помогать людям
Говори только за себя.
Аноним 08/04/17 Суб 22:11:53  969506
ребят, что посоветуете читать по плюсам начинающему?
Аноним 08/04/17 Суб 22:13:39  969507
>>969506
шапку треда
Аноним 08/04/17 Суб 22:16:52  969509
>>969507
хитёр
но я про литературу
начал "С++ для начинающих"
стоит ли продолжать, ибо там Dev-C++ использую зазорно ли?
Аноним 08/04/17 Суб 22:19:01  969510
>>969509
Если прочитал и все осознал - начинай майерса читать.

Про Dev-C++ я не понял, но если ты сам это используешь - выброси, и поставь студию
Аноним 08/04/17 Суб 22:22:02  969513
thread.PNG (45Кб, 1465x758)
Ах, и ещё одно
Это норма?
Аноним 08/04/17 Суб 22:23:50  969516
>>961839 (OP)
Куда делся ОП-стихописец?
Аноним 09/04/17 Вск 02:24:29  969591
>>969513
Спроси в /s/.
Аноним 09/04/17 Вск 10:38:40  969679
Сап, анон, нужна твоя помощь или совет.
Последние пару недель по вечерам казуально вкатываюсь в плюсы, пописывая небольшую игру на SDL, так чисто для себя for fun.
В самом SDL нет ничего, кроме биндингов к битмаповым текстурам OpenGL, так что движок по сути я пишу сам. Так вот я упёрся сейчас в необходимость некоего "Tween Manager'а", который бы мог управлять изменением во времени свойств моих объектов, например изменить координату 'x' некоторого спрайта на +50 пикселей за 5 секунд с интерполированием по синусоиде, чтобы было плавно.
Проблема только в статической типизации, есть например свойство "прозрачность" с типом unsigned char (от 0 до 255), есть координаты в int, угол наклона в float... Пока единственное, и возможно очень тупое решение, которое пришло мне в голову, это писать всю логику твинера на (void*) и кастовать к нужному типу внутри, что-то на подобии:

MySprite★ player = new MySprite();
player.x = 150;
player.y = 300;
int newX = 200;
// переместить спрайт по х из положения 150 в 200 за 5 секунд
TweenManager -> tween ( &(player.x), 'int', &(newX), 5000, TWEEN_EASE::SIN);

void tween (void★ targetValuePointer, const char★ valueType, void★ tweenToValue, uint32 milliseconds, TWEEN_EASE ease);

Но это скорее хак, нежели правильное решение, да ещё и для целевого значения нужно выделять переменную, чтобы передавать её адрес. Не самый лучший способ в общем. А кучу врапперов для врапперов для свойств писать так не хочется...
Аноним 09/04/17 Вск 10:46:31  969686
>>969679
Кому-то может показаться, что здесь идеально подойдут шаблоны, но на самом деле нет, потому что твины будут храниться в векторе, а тип свойств нужно определять в рантайме, чтобы можно было, к примеру, загрузить из файла-скрипта кастомную сцену с твинами.
Аноним 09/04/17 Вск 10:49:24  969688
>>969686
Ну я бы в этом случае упоролся виртуальными функциями. Или это какой-то закрытый класс из либы?
Аноним 09/04/17 Вск 10:51:50  969691
>>969688
Пока что это несуществующий класс из моего воображения
Аноним 09/04/17 Вск 10:54:19  969693
>>969691
Гуд. Я вижу тут 2 выхода:
1. Создаёшь базовый абстрактный класс с виртуальной функцией tween. Потом у дочерних классов реализуешь как надо каждый.
2. (неочень способ) Делать, как ты хотел. Для этого существует dynamic_cast.
Аноним 09/04/17 Вск 12:06:52  969740
>>969679
ECS не поможет?
Аноним 09/04/17 Вск 14:13:50  969941
>>969510
ещё о чем хотел спросить
вот есть такое приложение на ведромб и ios "SoloLearn"
Там всё подробно объяснено
Замещает ли оно книгу "С++ для чайников"?
Аноним 09/04/17 Вск 14:22:27  969968
Хочу, чтобы компилятор предупреждал меня о том, что:
- итераторы начала и конца заведомо относятся к разным объектам
- имя, которое является частью стандарта языка, переопределяется в одной из либ/заголовков (при using namespace std).

Такие есть? Или пока что это только статические анализаторы умеют?
Аноним 09/04/17 Вск 14:26:34  969974
>>969968
скачиваешь ллвм и пишешь чекер для статик аналайзера(если там такого еще нет)
Аноним 09/04/17 Вск 14:49:05  969983
>>969968
>Хочу, чтобы компилятор предупреждал меня о том, что:
>- имя, которое является частью стандарта языка, переопределяется в одной из либ/заголовков
Что в этом плохого? Чтобы он орал на определения swap, begin, end, operator<< и пр. подобное для твоих типов?
Аноним 09/04/17 Вск 15:07:17  969992
>>969941
Лучше книги ничего нет
Аноним 09/04/17 Вск 16:48:06  970134
Может кто перекотить тред?
Аноним 09/04/17 Вск 16:58:44  970152
>>967461
Запилил Рабина-Карпа для множества образцов, работает в десятки, если не сотни, раз быстрее. Даже хэш считать не пришлось, unordered_set само всё делает.
Аноним 09/04/17 Вск 18:59:34  970328
>>969983
>swap,
Move constructor, метод.
>begin, end, operator<<
Методы.

Мне нужно точно знать, что я использую именно родной шаблон, родную функцию, а не определённую где-то случайно.
Аноним 10/04/17 Пнд 07:19:03  970714
>>970328
Для этого ввели неймспейсы. А заставлять компилятор выполнять работу статического анализатора врядли кто-то станет.
Аноним 10/04/17 Пнд 13:05:29  970817
Перекат https://2ch.hk/pr/res/970816.html
Аноним 10/04/17 Пнд 16:41:18  970954
>>970817
Почему так сложно дать нормальную ссылку? >>970816 (OP)
Аноним 18/04/17 Втр 19:45:55  975803
У меня есть дерево, нужно реализовать поиск по имени вершин. Но так, чтобы потом по результатам поиска была возможность еще раз провести поиск. Не могу придумать, как так передать вершину в метод рекурсивного поиска, чтобы дерево-результат не было зачищено.
Аноним 19/04/17 Срд 12:20:58  976263
>>975803
Нахуй ты в мёртвый тред пишешь?
Аноним 20/04/17 Чтв 00:17:28  976623
>>976263
>Нахуй ты в мёртвый тред пишешь?

Нахуй Ты в мёртвый тред пишешь?
Аноним 20/04/17 Чтв 17:10:57  976946
>>976623
Тебе не говорили, что отвечать вопросом на вопрос не вежливо?
Аноним 20/04/17 Чтв 21:14:47  977046
>>976946
Ты мне сам вопросм на вопрос отвечаешь.
Аноним 20/04/17 Чтв 21:24:07  977051
>>977046
Друг мой, ты поехавший? Где ты там увидел вопрос? Ты всего лишь жаловался, что не можешь что-то придумать.
Аноним 20/04/17 Чтв 22:08:49  977067
>>977051
> Где ты там увидел вопрос?
> на вопрос не вежливо?
>ты поехавший?
>ты
Аноним 08/05/17 Пнд 22:18:52  987040
Снимок.PNG (19Кб, 740x327)
Снимок1.PNG (10Кб, 670x380)
Привет, анончик. Ебусь с винформ. Расскажи как я могу LPWSTR засунуть в textbox или LabelBox? Или расскажи куда я могу эту шляпу засунуть? Нужно сделать список (сетевых дисков) а в NETRESOURCE Localname хранится в LPWSTR. Буду очень благодарен. Прикрепил скрин части кода где оно должно быть и скрин формы(сам не знаю зачем).
Аноним 08/05/17 Пнд 22:38:55  987049
>>987040
Анончик, выручай.
Аноним 08/05/17 Пнд 23:20:29  987084
>>987040
Ап

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

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