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


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



<<
[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 599 | 33 | 155

С++ №66 Аноним 30/01/18 Втр 17:47:22  1129255  
cpplogo.png (45Кб, 918x1032)
d90f3937586d03f[...].jpg (74Кб, 433x289)
Вместо шапки — https://github.com/sosachbot/cppthreadhat/wiki
Ответы на все вопросы:
- http://en.cppreference.com/w/
- http://www.cplusplus.com/reference/
Прошлый: >>1119750 (OP)
Аноним 30/01/18 Втр 18:45:29  1129289
Использую CodeLite. Написал программу (эхо сервер вебсокетов), и когда я ее открываю в самом CodeLite, она запускается, а когда я открываю исполняемый файл сам, то вылезает ошибка libgcc_s_seh-1.dll не найден и т.д. Вопрос: в чем блять разница между тем что я просто жму RUN в CodeLite, и открываю exe файл своими кривыми ручками? Между тем, скачал я эту dll, закинул ее, и выходит ошибка при запуске приложения (0xc0000007b).
Аноним 30/01/18 Втр 18:50:21  1129290
>>1129289
Под Windows нет IDE, кроме MSVC.

Между RUN и запуском руками разница в working directory, в которых ищется дллка. а ошибка - хуй знает вообще почему, может АБИ не то, может либа не той версии.
Аноним 30/01/18 Втр 19:01:22  1129294
>>1129289
> c++
> windows
> codelite
> mingw
Раз уж решился писать на крестах под виндой, так скачивай visual studio, для винды лучше нее пока что ничего не придумали
Аноним 30/01/18 Втр 19:06:56  1129299
>>1129289
Гугли отличия между статической и динамической линковкой. А чтобы все работало, то просто скопируй дллки, которые просит программа, из /MinGW/bin/.
Аноним 30/01/18 Втр 19:22:03  1129315
>>1129290
Да вроде бы они в одном месте ищутся. Я еще использую sfml-system-2.dll (вроде так), и когда ее нет, он ругается при RUN и при запуске руками.
>>1129299
Первое, что я попробовал. Только там нету libgcc_s_seh-1.dll , зато есть libgcc_s_seh_64-1.dll. Я пробовал его переименовывать и засовывать в директорию с exe файлом, и как итог - та же самая ошибка.
>>1129294
А могу ли я не используя их среду использовать их компилятор? Она у меня медленно работает.
Аноним 30/01/18 Втр 19:28:01  1129324
>>1129315
>Первое, что я попробовал. Только там нету libgcc_s_seh-1.dll , зато есть libgcc_s_seh_64-1.dll. Я пробовал его переименовывать и засовывать в директорию с exe файлом, и как итог - та же самая ошибка.
Непереименнованный файл тоже пробовал? Хз в чем проблема, но тогда компилируй с параметром "-static", может поможет.
>А могу ли я не используя их среду использовать их компилятор? Она у меня медленно работает.
Да, из командной строки. Правда студия все равно должна быть установлена.
Аноним 30/01/18 Втр 19:52:13  1129330
>>1129324
>Правда студия все равно должна быть установлена.
Не, там компилятор можно отдельно установить, точно помню.
Аноним 30/01/18 Втр 19:52:30  1129331
>>1129255 (OP)
Дебил, нумерацию проебал
Аноним 30/01/18 Втр 20:53:38  1129348
>>1129331
В который раз
Аноним 30/01/18 Втр 20:56:38  1129349
>>1129289 >>1129290 >>1129315
Хотите - можете почитать МСДН, но разница в том, где ищутся дллки для процесса, запущенного из под другого процесса.
>>1129289
В папке компилятора есть папка bin, добавь её в PATH (фгугл).
>>1129315
Если программа просит какую-то либу, то она, блядь, где-то таки есть. Найди её поиском по ЖД.
>>1129330
Из последних SDK его исключили, компилятор из WDK убрали. Качаёшь инсталятор коммьюнити-студии - выбираешь декстоп ц++ - получаешь визуал студио коре едитор с неотключаемой галочкой.
>>1129331
Чиркнул моду.
Аноним 30/01/18 Втр 21:14:21  1129354
>>1129349
>В папке компилятора есть папка bin, добавь её в PATH (фгугл).
Уже добавлена
>Если программа просит какую-то либу, то она, блядь, где-то таки есть. Найди её поиском по ЖД.
Искал, нашел только libgcc_s_seh_64-1.dll

Такой пиздец
Аноним 30/01/18 Втр 21:17:34  1129356
>>1129289
Проверь еще нет ли разделения на дебаг и релиз версии. Откомпилируй и запускай именно релиз версию. Дебаг может быть расчитана на запуск с помощью иде через какие-то местные мокрописьки, а не обычное исполнение. Посмотри еще в консоли иде какой командой запускается файл на исполнение - там обычно(часто) пишутся команды запуска. Есть ли такое в CodeLite не знаю.
Аноним 30/01/18 Втр 21:32:57  1129361
>>1129356
Есть такая хуйня:
C:/TDM-GCC-64/bin/g++.exe -o ./Release/sockets @"sockets.txt" -L. -LC:\SFML-2.4.2\lib -lsfml-system -lws2_32
в sockets.txt object файлы прост прописаны. Тут просто линковка вродь, хотя я хз. У меня даже надежда появилась когда ты про Release сказал (есть такое разделение да), но в итоге все та же хуйня происходит.

Блять, может все таки сесть на стул с майкрософтом и не ебаться, но мне уже тупо интересно что за хуйня.
Аноним 30/01/18 Втр 22:23:28  1129378
>>1129331
Не баг, а фича.
Аноним 30/01/18 Втр 22:36:35  1129385
>>1129361
Ну да это компиляция. Посмотри может в консоли когда программа запускается - может там команда запуска есть. Поищи в настройках где флаги компиляции можно добавлять и попробуй добавить -static-libgcc -static-libstdc++ это статическая линковка рантайм библиотеки. Еще может почитай про динамическую линковку в операционной системе виндоуз. Потому что в линуксе для динамической линковки не достаточно просто закинуть библиотеку в нужные папки. Еще должен обновиться кеш динамического линкера (ldconfig) - может в виндовс тоже что-то подобное есть.
Аноним 31/01/18 Срд 00:01:00  1129411
>>1129349
>Из последних SDK его исключили, компилятор из WDK убрали. Качаёшь инсталятор коммьюнити-студии - выбираешь декстоп ц++ - получаешь визуал студио коре едитор с неотключаемой галочкой.

Три наносекунды в гугле: https://blogs.msdn.microsoft.com/vcblog/2016/11/16/introducing-the-visual-studio-build-tools/
Аноним 31/01/18 Срд 02:21:35  1129433
Нахуй студию с ее троянами и телеметрией
Аноним 31/01/18 Срд 06:18:15  1129454
Накатил вроде Visual C++ в CodeLite. Но когда даже тупой хелло ворлд пытаюсь откомпилить вылезает дохуя вот этого: https://ideone.com/gSFSyD
В чем проблема может быть? Я наверное должен был понять, но я пока еще не совсем шарящий.
Аноним 31/01/18 Срд 09:29:43  1129480
>>1129354
Тогда лобовое решение: качаешь process explorer и смотришь список путей к DLL-кам у своей программы, запущенной из коделите, раз ты такой пиздоглазый.
>>1129411
Я про это не знал, но там линк мёртвый, и в каталогах этих билд тулз нет.
https://www.visualstudio.com/downloads/?q=build+tools#build-tools-for-visual-studio-2017-rc
>>1129454
Тебе нужно либы подключить (наследие 80х годов).
Берёшь одну функцию, ищешь ей так:
https://www.google.ru/search?q=WideCharToMultiByte+winapi+msdn
На MSDN есть название либы:
https://msdn.microsoft.com/en-us/library/windows/desktop/dd374130(v=vs.85).aspx (в самом низу описания каждой функции)
А дальше пихаешь эту либу куда-то в аргументы линкера (без расширения .lib ).
http://codelite.org/LiteEditor/BuildSystem#toc5

Потом собираешь снова и ещёшь ошибки снова. Каким образом это упрощается в обычной студии - хуй знает, она, скорее всего, генерит список зависимостей из заголовочных файлов.
Аноним 31/01/18 Срд 10:09:27  1129488
Народ, вот такой вот нубовопрос:
Есть строка, выполняется проверка: присваевается ли её содержимое через StrToFloat переменной типа float. Является ли это действие проверкой на то, что содержимое строки - вещественное число?
Аноним 31/01/18 Срд 14:33:04  1129550
>>1129488
Смотря что этот StrToFloat делает. Он может, к примеру, зажрать первые символы, которые могут составлять float и на этом закончить
Аноним 31/01/18 Срд 14:39:55  1129552
>>1129488
В общем смысле - нет.
Аноним 31/01/18 Срд 15:21:27  1129572
я ебу собак
Аноним 31/01/18 Срд 15:52:13  1129585
>>1129552
>>1129550
Спасибо за ответ.
Тогда я правильно понял, что наиболее верной будет сперва проверка строки на содержание только цифр + не более одной точки (при этом не первым/последним символом) + возможным минусом первым символом?

Краем уха слышал про регулярные выражения, но вот беда, поскольку я совсем-совсем начинающий и в синтаксисе языка ещё не разбираюсь, а в интернетах примеры в основном для всякой джавы и пхп, то не мог бы кто подсказать учебник или статью, где пишут про регулярные выражения для с++ (операторы, их атрибуты, какие нужны библиотеки)? Ну или тут рассказать. Думал с помощью них попробовать вытаскивать из строки заданные выше символы и сравнивать потом с оригинальной строкой.
Аноним 31/01/18 Срд 16:59:46  1129624
>>1129585
> Тогда я правильно понял, что наиболее верной будет сперва проверка строки на содержание только цифр + не более одной точки (при этом не первым/последним символом) + возможным минусом первым символом?

Возможно, он пропускает начальные пробельные символы (табы, перенос строки и прочее), и затем считывает float в одном или нескольких форматах (научный, который представляет собой запись с показателем десятичной степени, например 10e5, или какой-нибудь еще). А вот когда он натыкается на неожиданный символ - тут уже без знания доков или механизмов по одному названию ничего не скажешь. Ну разве что может быть семантика у метода с указанием флага успешного выполнения, к примеру.

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

Регулярные выражения слишком жирные, чтобы заниматься парсингом чисел. Думаю, что методов, которые представляет те же стандартные потоки, тебе будет вполне достаточно.
А если ради интереса, то синтаксис там вполне простой, для этого книг читать не надо, достаточно мануалов.
Аноним 31/01/18 Срд 17:14:31  1129636
>>1129624
>семантика у метода с указанием флага
>заниматься парсингом
>стандартные потоки
Для меня это пока нецензурные выражения, но всё равно спасибо. Буду смотреть что это.
Аноним 31/01/18 Срд 17:23:31  1129641
>>1129636
Дерьмо, книгу хоть одну по С++ почитай сперва. Нахуй тебе аноны шапку делали?
Аноним 31/01/18 Срд 17:35:10  1129645
>>1129641
Чего такой агрессивный? Читаю, но медленнее чем хотелось, особенно учитывая, что задачки нужно сдать гораздо раньше, чем успею это все нормально почитать.
Аноним 31/01/18 Срд 17:37:09  1129646
>>1129645
Падажжи, когда отменили золотое правило С++ треда?

ЛАБЫ ИДУТ НА ХУЙ

Я бы тебе все подробно объяснил, но это бессмысленно.
Аноним 31/01/18 Срд 17:40:19  1129648
>>1129646
А я и не просил мне ничего решить. Не хочешь - не объясняй, твоё дело.
Аноним 31/01/18 Срд 17:50:51  1129651

>>1129636
> парсинг
В твоем случае парсинг - выделение чисел из строки
> стандартные потоки
Имеется в виду cin/cout/fstream
Аноним 31/01/18 Срд 22:24:56  1129843
Анчоусы, поясните дебилу, как dpointers в qt позволяют сохранять бинарную совместимость?
Аноним 31/01/18 Срд 22:31:13  1129846
>>1129843
The trick is to keep the size of all public classes of a library constant by only storing a single pointer. This pointer points to a private/internal data structure that contains all the data.
http://wiki.qt.io/D-Pointer
Аноним 01/02/18 Чтв 07:42:54  1129982
>>1129454
Ты зачем один ide запихнул в другой?
Аноним 01/02/18 Чтв 15:07:03  1130120
>>1129488
Для того, чтобы это проверить, тебе нужно использовать потоки - создаёшь stringstream из строки, считываешь оттуда число, узнаешь число сожранных символов. Если число сожранных символов не равно длине строки, то в строке не только число.
Аноним 01/02/18 Чтв 15:35:00  1130130
Анон, а подскажи, - как при помощи QT логиниться на ресурсе в локальной сети? Нормальных примеров в сети не нашёл, мануал читал
Пока понял что мне нужен QAuthenticator в который я кладу логин и пароль
Затем мне нужен QNetworkAccessManager, а так же слот, который бы обрабатывал запрос ресурса.
Со слотом всё в целом понятно
void onAuthenticationRequestSlot(QNetworkReply aReply, QAuthenticator aAuthenticator) {
aAuthenticator = &myLoginPass;
}
Но непонятно как при помощи QNetworkAccessManager сделать запрос на аутентификацию.
Пытался
myNM->get(QNetworkRequest(QUrl("\\\\Test\\")));
Никакой реакции.
Как это правильно сделать?
Аноним 01/02/18 Чтв 15:53:27  1130133
https://metanit.com/sharp/tutorial/3.29.php
Есть ли подобный гайд, но по плюсам?
Аноним 01/02/18 Чтв 15:55:40  1130135
>>1129982
ОНИ СЪЕДЯТ ОДИН В ДРУГОЙ
Аноним 01/02/18 Чтв 17:13:44  1130177
Ананасы, посоветуйте простой веб-сервер для плюсов, в котором было бы сложнее выстрелить себе в ногу нубу, и который поддерживал бы https.
Аноним 01/02/18 Чтв 17:43:48  1130202
>>1130130
Средствами винапи, маня.
Аноним 01/02/18 Чтв 18:11:04  1130211
>>1130202
И где я их возьму, если даже на офф сайте 2 с половиной команды и те на собачьем?
Аноним 01/02/18 Чтв 20:01:43  1130277
>>1130130
Костыль: http://www.prog.org.ru/topic_10080_0.html
Аноним 01/02/18 Чтв 20:08:21  1130285
>>1130177
https://github.com/fffaraz/awesome-cpp#networking
Сам не пробовал.
Аноним 01/02/18 Чтв 21:40:33  1130349
>>1130277
Thnks
Тоже это нагуглил, видимо так и придётся, если других вариантов не будет.
Аноним 01/02/18 Чтв 22:03:03  1130356
Сап. В Qt Creator 4.4.1, версия под вин почему-то при пошаговом выполнении по F10/F11 стал переключаться на листинг дизассемблера и идет по нему. Галочка/её отсутствие в меню Отладка-Уровень инструкций ничего не меняют. Что делать?
Аноним 01/02/18 Чтв 22:23:27  1130369
>>1130349
Пробую использовать cURL для smb-целей. Норм?
Аноним 01/02/18 Чтв 23:47:04  1130424
>>1130356
Может ты слишком глубоко во вложенность функций лезешь? Например внутрь библиотек кути, которые распространяются как бинарники.
Аноним 02/02/18 Птн 00:16:05  1130434
>>1130356
>Что делать?
Качать дебаг-симболы.
Аноним 02/02/18 Птн 00:40:33  1130442
>>1130434
Там листинг даже для простой программы без модулей в виде дизассемблерного листинга показывается.
Аноним 02/02/18 Птн 07:09:06  1130551
>>1130135
А если серьезно? Нахуя ему сразу жва иде?
Аноним 02/02/18 Птн 12:46:22  1130661
>>1130356
Имеется ввиду то, что текст программы вообще не показывается? А это дебуг билд хоть?
>>1130551
Ему компилятор нужен был. Про Build Tools не все знют, раньше компилятор с обновлениями проще всего было получить из студии.
Аноним 02/02/18 Птн 13:14:16  1130670
>>1130661
>А это дебуг билд хоть?
Спасибо, переключение в дебуг билд помогло. Привык, что на линупсе сразу в таком режиме шло.
Аноним 02/02/18 Птн 16:00:53  1130767
Что в STL C++ означает, когда у меня есть некий мой пользовательский класс A, который конструируется из 2х чисел, предположим
и я создаю
А<int> a(1,2);
что это вообще за контейнер или объект??
встретил в коде и не могу понять
Аноним 02/02/18 Птн 17:03:27  1130828
>>1130767
Что за хуйню я только что прочитал. Не мешай STL с шаблонами как частью языка.
Аноним 02/02/18 Птн 19:16:00  1130870
>>1130767
(1,2) - это параметры конструктора (и если их много, выбирается подходящий). Что там у тебя конструируется - контейнер, мутекс, или ещё какая залупа - никому, кроме тебя, неизвестно.
Аноним 02/02/18 Птн 19:17:00  1130871
>>1130767
Олсо, если ты не в курсе, A - это шаблон класса.
Аноним 03/02/18 Суб 03:42:45  1131084
Двач, наверное это тупой запрос, но тем не менее, подскажите алгоритм на то что если больше одной переменной стоят в true, то завершать программу.
Аноним 03/02/18 Суб 04:02:37  1131086
>>1131084
Отвечаю на свой тупой вопрос:
Достаточно просто сложить все bool переменные и получится число сколько bool переменных стоят в true.
Аноним 03/02/18 Суб 07:17:36  1131109
Запилил вот такой синглтон для логирования, собственно, прошу посмотреть, попинать ногами и ткнуть носом в
дерьмо, там где я неправ. (Про то что синглтоны вообще считаются злом я знаю).
Ещё хотелось бы задать вот какие вопросы:
1) Правильно я понимаю, что правильнее будет заменить (const std::string& message) -> (std::string_view message)?
2) Почему, когда я закомментировал в статическом методе Get() последнюю строку(т.е. return *pThis) у меня всё нормально
скомпилировалось и работало. У меня было два указателя, которые указывали на разные адреса, но откуда они это взяли, если
функция ничего не возвращала?
3) Правильно ли я понимаю, что здесь избыточно явное запрещение функций с мув-семантикой?
4) Насколько вообще рационально создать обертку для более удобной работы с файлами из функций filesystem(ака QFile)?
5) Что делать с деструктором? Ну, то есть, код деструктура вообще же не будет вызваться, а по-хорошему ведь нужно же
файл закрывать. А что делать, если в деструктуре надо удалять динамическую память, это же утечки, как решают тогда
такую проблему?

https://pastebin.com/yUTL2hrW
Аноним 03/02/18 Суб 08:00:35  1131115
>>1131109
Код - кошмар. Перенеси все внутрь класса и используй синглтон Маерса

Logger& getLogger()
{
static Logger logger;
return logger;
}

Сырые пойнтеры тоже не используй. Тогда будет все разрушаться как надо. Но не здесь, здесь пойнтеры вообще не нужны.
Аноним 03/02/18 Суб 08:22:25  1131117
Двач, а filesystem собирается из expiremental вытаскивать или нет?
Аноним 03/02/18 Суб 08:31:10  1131120
>>1131117
уже вытащили в с++17
http://en.cppreference.com/w/cpp/filesystem

Аноним 03/02/18 Суб 08:35:56  1131125
>>1131120
Не вытащили.
Аноним 03/02/18 Суб 09:40:07  1131145
>>1131125
Что значит не вытащили?
>The filesystem library was originally developed as boost.filesystem, was published as the technical specification ISO/IEC TS 18822:2015, and finally merged to ISO C++ as of C++17.
Аноним 03/02/18 Суб 10:13:47  1131159
1.png (23Кб, 659x251)
>>1131145
Совсем наркоман?
Аноним 03/02/18 Суб 10:28:08  1131164
>>1131159
"Вытащили из experimental" != "сразу стало поддерживаться всеми компиляторами"

Ну и вот: https://www.reddit.com/r/cpp/comments/7o9kg6/gcc_80_support_stdfilesystem_include_filesystem/

>GCC 8.0 support std::filesystem (#include <filesystem>) now

Обновляйся
Аноним 03/02/18 Суб 13:41:57  1131233
Есть ли разница в производительности между gcc, vc, Intel компиляторами?
Аноним 03/02/18 Суб 14:12:02  1131247
>>1131233
В каком плане производительности? То, как быстро они собирают твой код, или производительность генерируемого кода? Если второе, то гцц пока лучшее, что придумал мир в общем случае. Интел в конкретных ситуациях может использовать оптимизации, т.к. знает устройство своих процов лучше других. vc - говно.
Аноним 03/02/18 Суб 14:27:56  1131254
>>1131247
>то гцц пока лучшее, что придумал мир в общем случае.
>vc - говно.
Можешь объяснить почему? Работаю в VS2017, на другие IDE кроме вижака без злости вообще смотреть не могу, но если разница между компиляторами значительная, то пересилю себя.
Аноним 03/02/18 Суб 15:44:03  1131295
>>1129255 (OP)
Господа, есть пара вопросов.
Как можно в 2к18 получить адекватные графы всех сортов из исходников?
Аноним 03/02/18 Суб 15:45:40  1131297
>>1131295
И ещё один.
Давно юзаю cmake для сборки, но это же полный аутизм. Есть сейчас смысл укатываться на всякие там мезоны и ниндзи?
Аноним 03/02/18 Суб 17:59:38  1131486
>>1131254
IDE - это не компилятор. К студии уже можно подключть и кланг и ICC (сто лет как).
Аноним 03/02/18 Суб 18:02:31  1131493
>>1131486
Да, только для этого всё равно нужно заморачиваться как это сделать, настроить, что делать если какая то хуйня в тексте ошибок компиляции и т.д. И я вот спрашиваю, стоит ли оно того. В чем охуенное преимущество g++ над vc++? Можно со всякими низкоуровневыми подробностями
Аноним 03/02/18 Суб 20:20:58  1131597
>>1131493
Очевидно тем что vs собирает программы для никому не нужной параши.
Аноним 03/02/18 Суб 20:37:11  1131608
Нормально ли то, что у меня компилируется char a[body_length + 2];
Аноним 03/02/18 Суб 20:38:43  1131609
>>1131608
Просто насколько я помню, динамические массивы объявляются через new, а тут у меня байт body_length вообще из recv приходит.
Аноним 03/02/18 Суб 20:39:20  1131610
>>1131609
VLA
Аноним 03/02/18 Суб 20:40:47  1131612
>>1131610
Принял
Аноним 03/02/18 Суб 20:46:15  1131617
>>1131610
А их разве завезли?
Аноним 03/02/18 Суб 20:48:05  1131619
>>1131617
в gcc и clang давно уже. Других компиляторов на свете нет.
Аноним 03/02/18 Суб 21:06:06  1131629
>>1131597
Каким образом он собирает программы под Linux? Я нигде такого параметра не нашел
Аноним 03/02/18 Суб 21:33:30  1131656
Почему в С нет честного рандома? Он каждый раз выдает одни и те же последовательности?
Аноним 03/02/18 Суб 21:47:03  1131667
>>1131656
>Он каждый раз выдает одни и те же последовательности?
Его в таком виде используют в алгоритмах шифрования.
Аноним 03/02/18 Суб 21:48:27  1131669
>>1131656
Честный рандом это слишком сложная штука для стандартной библиотеки.
Аноним 03/02/18 Суб 22:08:43  1131694
>>1131629
Пояснение для дебилов: Очевидно что он собирает программы для никому не нужной windows параши.
Аноним 03/02/18 Суб 22:16:01  1131701
>>1131694
Почему линуксодрочеры такие тупые?
Аноним 03/02/18 Суб 22:29:25  1131715
>>1131694
> никому не нужной windows параши
> виндой пользуются 82.68%
> никому не нужной
Проиграл с 1.43% дебила
Аноним 03/02/18 Суб 22:30:15  1131716
>>1131694
Дурачок-максималист не зарабатывает деньги программированием.
Аноним 03/02/18 Суб 22:37:52  1131724
>>1131715
Вообще-то 36.56%
http://gs.statcounter.com/os-market-share
Аноним 03/02/18 Суб 22:41:29  1131730
плюсаны
поясните, почему binary_search возвращает bool, а не итератор на нужный ( или end() ) элемент
какая-то неявная (как по мне) хуйня
Аноним 03/02/18 Суб 22:43:01  1131733
>>1131724
> Linux 0.66%
В глаза долбишься?
Аноним 03/02/18 Суб 22:47:36  1131736
>>1131724
http://gs.statcounter.com/os-market-share/desktop/worldwide
Аноним 03/02/18 Суб 22:54:26  1131740
>>1131730
Есть lower_bound
Аноним 03/02/18 Суб 23:15:29  1131747
>>1131715
Пояснение для совсем умственно отсталых: Очевидно же никому не нужная windows параша никому не нужна среди нормальных людей и уж тем-более для программистов, школьники гоняющие крузис в перерывах написания хелло ворлдов не в счёт.
Аноним 03/02/18 Суб 23:33:31  1131756
А поясните за умные указатели - нахуя они нужны и примеры использования, если есть new/delete ?
Аноним 03/02/18 Суб 23:35:29  1131757
>>1131756
Помимо удобства, в С++ что угодно может выбросить исключение, и до delete дела не дойдет.
Аноним 03/02/18 Суб 23:37:59  1131758
Какого хуя хром ликает память? После ~недели браузинга, даже если закрыть все вкладки, кроме одной, он занимает 2 гига в памяти. Как понять, где лик?
Аноним 03/02/18 Суб 23:59:16  1131771
>>1131597
Ну это всё понятно, арряя, кроссплатформенность, лепукс рулез венда маздай)0.
А вот так чисто в сухом остатке на уровне сырых байтов в чем преимущества gcc++ над vc++?
Аноним 04/02/18 Вск 00:13:30  1131775
>>1131756
RAII базовое понятие C++, почитай. В принципе shared ptr в большинстве случаев нахуй не нужон, а юник это лучше нововведение эвер, 20 лет ждал.
Аноним 04/02/18 Вск 00:26:55  1131788

>>1131747
Конечно, дурачок. Ты же один в мире, и твое мнение единственно верное. Но ты не переживай - через некоторое время пройдет
Аноним 04/02/18 Вск 00:28:28  1131789
>>1131771
У гцц стандарты лучше и быстрее поддерживаются. Другое дело что мсвс сильно удобнее. Под никсы нормальной иде нет просто
Аноним 04/02/18 Вск 00:32:56  1131794
>>1131789
На работе пишу под линукс и использую VSCode. Оказалось лучше, чем я думаю - легко настраивается сборка и отладка, более-менее сносно работает навигация по коду и автокомплит. Сам редактор как в студии практически.
Аноним 04/02/18 Вск 00:38:15  1131796
>>1131794
Между более менее сносно и идеально + статический анализ + авторефакторинг все таки большая разница
Аноним 04/02/18 Вск 01:13:37  1131815
>>1131789
>У гцц стандарты
в каком плане? понимаю, никому не захочется по пунктам расписывать, в чем vc++ с заглотом всасывает у гцц, но хотя бы один убойный пример можно?
Аноним 04/02/18 Вск 01:29:15  1131829
>>1131815
Вывод тимплитов в конструкторах. Студия все еще не умеет. Вроде структуред биндингс еще не умеет
Аноним 04/02/18 Вск 09:28:50  1131906
>>1131815
Помню, когда в MSVC13 перемещающие операции компилятор не генерировал... во жара была.
Я то думал, хули = default не работает.
Аноним 04/02/18 Вск 09:54:56  1131910
>>1131669
Да ладно? Помню в средней школе изучали бейсик, так там вроде был рандом. А бейсик - это самый днищеязык.
Аноним 04/02/18 Вск 10:03:05  1131911
>>1131910
Он не был честным. Для честного рандома нужен источник энтропии - или аппаратный, или его имитация на основе нажатых клавиш/трафика/содержимого экрана/звука с микрофона и т.д.

Все это слишком сложно, чтобы запихивать в стандартную библиотеку.
Аноним 04/02/18 Вск 10:18:18  1131917
>>1131911
Почестнее чем в С. В бейсике он хотя бы выдавал разные значения при каждом запуске программы.
Аноним 04/02/18 Вск 10:25:29  1131919
>>1131917
Если бы ты почитал документанцию, то и тебя и сишный рандом разные бы выдавал.
Аноним 04/02/18 Вск 10:39:27  1131921
>>1131919
Ага, если подключить ctime и использовать srand от времени. Но это такие костыли, что пиздец
Аноним 04/02/18 Вск 10:41:09  1131923
>>1131921
Кто-то не знает как генератор случайных чисел работает.
Аноним 04/02/18 Вск 10:42:21  1131924
>>1131923
И как же он работает?
Аноним 04/02/18 Вск 13:38:05  1132009
>>1131295
>>1131297
Бамп вопросу.
Аноним 04/02/18 Вск 14:23:14  1132046
>>1131297
Cmake, хоть и инопланетное говно - де-факто стандарт индустрии нынче.
Аноним 04/02/18 Вск 14:27:44  1132048
>>1132046
cmake работает, спору нет, но у мезона уже неплохой список проектов появился. Интересны идеи про потенциал, хотелось бы перекатиться чуть раньше чем вся индустрия на что-нибудь более удобное.
чугунный чайник Аноним 04/02/18 Вск 20:51:44  1132284
s48547342065600[...].jpeg (77Кб, 493x516)
Посоны, а чо ставить то, аа-а? Визуал студио если целиком то там пиздец дохуя всего, какой минимальный набор чтобы ковыряться в языке создавая консольную хуйню.
Коротко вопрос, такой. Где качать компилятор и нубовской набор библиотек. IDE среды идут без компилятора, насколько я понимаю.
Пока установил голый VS Community 2017 без нихуя.
Аноним 04/02/18 Вск 20:53:23  1132287
>>1132284
Студия или кьют. Если совсем начальный уровень можешь попробывать ideone обойтись.
Аноним 04/02/18 Вск 21:08:44  1132299
>>1132284
Студии тебе за глаза навсегда - это топ1 профессиональный инструмент разработки под С++.

Нубовской набор библиотек у тебя на первый год есть - собстно, стандартная библиотека С++.
Аноним 04/02/18 Вск 23:44:19  1132410
>>1132284
Clion лучшее IDE.
Аноним 05/02/18 Пнд 00:22:29  1132432
>>1132410
Нет бесплатной версии? Значит не лучший
Аноним 05/02/18 Пнд 00:45:41  1132446
>>1132410
85 гигабайт должно хватить.
Аноним 05/02/18 Пнд 02:29:45  1132522
>>1132432
>Нет бесплатной версии?
Есть.
https://rutracker.org/forum/viewtopic.php?t=4976066
Аноним 05/02/18 Пнд 04:09:47  1132543
>>1132432
>бесплатно
Есть комуннити версия.
>значит не нужен
За хорошие продукты таки стоит заплатить
Аноним 05/02/18 Пнд 04:10:19  1132544
>>1132446
Причём тут студия?
Аноним 05/02/18 Пнд 08:28:55  1132585
Capture.PNG (43Кб, 780x303)
>>1132543
Где взять ссылку на комьюнити версию? На сайте только триал и всякие предложения для студентов и опен-сорса.
Аноним 05/02/18 Пнд 11:31:25  1132713
>>1131619
Портэбл стэндэрт конформинг коуд? Вотс зэт?
>>1131617
Расширение стандарта, нинужно.
>>1131921
Вы к нам их РНР-треда причапали?
>>1131815
В блогах MSDN сам найди нововведения и их даты.
http://en.cppreference.com/w/cpp/compiler_support
Аноним 05/02/18 Пнд 11:47:38  1132728
>>1132544
Без понятия, причем тут студия, у нас же беседы джава господ.пнг
Аноним 05/02/18 Пнд 11:50:24  1132729
>>1132585
Community версия есть у божественной Вижуал Студии. У Слиона ее никогда не было. Либо плати, либо пирать, либо сиди на EAP'ах
Аноним 05/02/18 Пнд 16:09:03  1132913
>>1132729
Кстати, в 17 студии завезли какой-никакой рефакторинг, но работает это все, как обычно, хуево.
Аноним 05/02/18 Пнд 17:36:36  1132974
>>1132913
решарпер С++ поставь, и ты приятно удивишься
Аноним 05/02/18 Пнд 17:55:01  1132997
>>1132974
Как гуглится?
Аноним 05/02/18 Пнд 18:46:18  1133032
>>1132997
Resharper C++ ?
Аноним 05/02/18 Пнд 20:41:13  1133115
>>1132997
Resharper от jetbrains
Аноним 05/02/18 Пнд 20:46:44  1133116
>>1132728
Как же хорошо на Clion. Не чувствую себя чуханом, как на VS.
Аноним 05/02/18 Пнд 20:58:11  1133124
Тупой вопрос, но почему в числах с плавающей запятой запятая плавает? Куда блядь она плавает?
Аноним 05/02/18 Пнд 21:06:43  1133129
>>1133116
у тебя с головой проблемы, если ты себя чувствуешь чуханом
Аноним 05/02/18 Пнд 21:07:02  1133130
>>1133124
https://ru.wikipedia.org/wiki/Число_с_плавающей_запятой
Аноним 06/02/18 Втр 02:47:37  1133273
>>1132974
его ценой
Ты забыл добавить. Решарпер для крестов продается только в Ultimate-версии, которая стоит пиздец как дорого, если уж о ценах речь зашла
Аноним 06/02/18 Втр 11:32:07  1133367
>>1133273
Решарпер для крестов продается отдельно, лол. 200 баксов для конторы, 100 для себя.
Аноним 06/02/18 Втр 11:37:19  1133371
>>1132974
>решарпер
Visual Assist - наше всё.
Аноним 06/02/18 Втр 15:22:49  1133491
>>1133367
Ох ты, не знал. Круто, но для дома я предпочту использование пиратского сервера ключей
Аноним 06/02/18 Втр 17:46:36  1133569
>>1133129
Только на VS
Аноним 07/02/18 Срд 12:08:57  1133946
https://ideone.com/G38I0c
Подобная реализация возведения в степень - говнокод?
Аноним 07/02/18 Срд 12:21:56  1133954
>>1133946
да
Аноним 07/02/18 Срд 12:25:07  1133956
>>1133954
воднустрочкужыыыы
Аноним 07/02/18 Срд 12:32:19  1133961
>>1133946
За такое надо пиздить ногами.
Аноним 07/02/18 Срд 12:36:00  1133970
>>1133961
Почему? Надо на if заменить вопросы?
Аноним 07/02/18 Срд 12:40:59  1133976
>>1133961
>>1133954
https://ideone.com/3nC4fC
Так лучше?
Аноним 07/02/18 Срд 12:41:09  1133977
>>1133970
https://ideone.com/9VwwEe
Лучше читается, как думаешь?
Аноним 07/02/18 Срд 12:42:41  1133979
>>1133977
Отрицательные степени?
Аноним 07/02/18 Срд 12:45:45  1133983
>>1133970
1. Алгоритм быстрого возведения в степень придумали чуркобесы?
2. Нахуй тебе рекурсия глубины power, да ещё и нехвостовая?
3. Не используй тернарный оператор, пока не научишься в форматирование.
Аноним 07/02/18 Срд 12:49:59  1133992
>>1133979
>Отрицательные степени?
https://ideone.com/9VwwEe
Но теперь уже тоже говнокод, а вообще >>1133983 этот господин все верно написал, нахуй нужна именно рекурсия, хотя если это просто задачка какая, то ладно.


Аноним 07/02/18 Срд 12:50:06  1133993
>>1133983
>нехвостовая
Зачем?
>быстрого возведения
Для умников и пидоров.
Аноним 07/02/18 Срд 12:55:47  1134001
>>1133993
Стек - не твоя баба.
Аноним 07/02/18 Срд 13:06:37  1134023
>>1133993
У меня баб куча.
ОП КОКОЙ КОЛОМБУР
Аноним 07/02/18 Срд 13:07:14  1134024
На плюсах работы больше чем на питоне?
Аноним 07/02/18 Срд 13:08:08  1134026
>>1134024
А ты шутник
Аноним 07/02/18 Срд 13:08:38  1134027
>>1134026
Меньше что ли?
Аноним 07/02/18 Срд 13:11:19  1134030
>>1134023
Выходит у тебя баб нет, а только есть указатели на них?
Аноним 07/02/18 Срд 13:15:53  1134033
С++ ДЛЯ ЛОХОВ.
Аноним 07/02/18 Срд 13:17:18  1134034
>>1134027
На https://www.indeed.com забанен ?
Аноним 07/02/18 Срд 14:47:14  1134084
>>1133992
https://ideone.com/rU520r
Как-то так.
пидор и умник
Аноним 07/02/18 Срд 14:48:29  1134085
>>1134084
Сколько лет стажа?
Аноним 07/02/18 Срд 14:49:57  1134090
image.png (397Кб, 1920x1080)
>>1134034
Проиграл что-то.
Аноним 07/02/18 Срд 14:50:45  1134091
>>1134085
3 года лаб
Аноним 07/02/18 Срд 15:03:23  1134109
>>1134091
Сильно.
Аноним 07/02/18 Срд 15:32:52  1134130
>>1131086
Неплохо.
Аноним 07/02/18 Срд 15:36:47  1134132
>>1134090
21 век
Аноним 07/02/18 Срд 16:13:33  1134164
>>1134033
>ЛОХОВ
Хаха, да я зарабатываю 30 тысяч рублей в ДС. Пуфонисты соснули

> ЛОХОВ
Соснул я :(
Аноним 07/02/18 Срд 16:24:21  1134176
>>1134164
А я зарабатываю 250 тысяч рублей в ДС. Соснули все.
Аноним 07/02/18 Срд 16:37:03  1134184
>>1134176
Ура! Все у всех соснули.
Мы все на ВТОРОМ месте!
Аноним 07/02/18 Срд 17:23:04  1134211
>>1131086
> сложить
Использовать || уже слишком сложно?
Аноним 07/02/18 Срд 17:40:05  1134228
>>1134211
>если больше одной переменной стоят в true, то завершать программу
>больше одной
>Использовать ||
Земля тебе пухом.
мимо
Аноним 07/02/18 Срд 19:04:49  1134270
>>1134164
У меня работа, что и на плюсах и на питоне кодю.
Аноним 07/02/18 Срд 23:18:52  1134394
https://github.com/eggman/ldacenc/blob/master/ldacenc.c
Поясните насчёт этого файла, как он работает? Можно ли сделать decoder
Аноним 07/02/18 Срд 23:33:20  1134407
Сам, крестаны. Решил вкатится в плюсы, посоветуйте какого-нибудь чтива про stl, а то в шапке какое-то старье из начала нулевых.
Аноним 07/02/18 Срд 23:56:22  1134419
>>1134407
Effective STL. Осилишь это - уже хорошо
Аноним 08/02/18 Чтв 00:21:37  1134440
>>1134419
Я про нее и говорил. Не слишком старая?
Аноним 08/02/18 Чтв 00:25:34  1134442
>>1134440
как будто в стл с тех пор что-то изменилось. Как степанов написал, так и пользуемся до сих пор.
Аноним 08/02/18 Чтв 01:22:35  1134468
>>1134440
Освой хоть на каком-то уровне, пойми дизайн СТЛ. И потом уже сам по cppreference догонишься
Аноним 08/02/18 Чтв 07:04:53  1134508
>>1134442
Много чего изменилось.

>>1134440
Старая. Почитай для общего развития, а потом прочитай Effective Modern C++.
Аноним 08/02/18 Чтв 10:47:27  1134550
oxx.mp4 (253Кб, 1280x720, 00:00:01)
>>1134508
Я к тому, что эти книги по стл как фундаментальный матан, врядли когда-то устареют. это классика блять
Аноним 08/02/18 Чтв 13:18:47  1134620
Есть какой-нибудь достопочтенный господин, готовый помочь мне разобрать 2к строк кода?
Большая часть кода — это огромный однородный свитч, так что реального чтения там намного меньше.
Писал эту портянку не я, но мне надо внести туда изменения и пересобрать. Проблема в том, что там есть некая UB-дыра, приводящая к segfault под линуксом, но нормально работающая под виндой.

Возможно, чей-то опытный глаз поможет быстрее определить проблему.
Аноним 08/02/18 Чтв 13:38:24  1134641
herpderp[1].jpg (189Кб, 1415x1500)
Как комбинацией клавиш в КЛИОНЕ зделоть, чтобы он сам расставил правильные пробелы в моем говнокоде? Настройки всего дефолтные.
Аноним 08/02/18 Чтв 13:45:43  1134645
Двач, не могу понять частичную специализацию шаблона, может кто объяснить что это и зачем нужно? Или может быть у вас найдётся доступный пример?
Аноним 08/02/18 Чтв 14:36:52  1134676
>>1134620
> приводящая к segfault под линуксом, но нормально работающая под виндой.
Худшая система снова обоссана
Аноним 08/02/18 Чтв 14:39:08  1134682
>>1134676
Ну толсто же.
Аноним 08/02/18 Чтв 15:11:28  1134688
>>1134641
Ctrl-alt-L
Аноним 08/02/18 Чтв 15:32:07  1134698
>>1134676
Ну так подебажь. А, постой, у вас же консольный кусок залупы вместо дебаггера
Аноним 08/02/18 Чтв 18:25:04  1134866
>>1129255 (OP)
Здарова, котаны. Студент-почти-второкурсник итт.
Выбрал своим профилем кресты, посмотрел требования на hh и появился ряд вопросов
1) Под какой осью сидеть/ разрабатывать?
2) Насколько большая разница между кодингом под никсы и форточки?
3) Когда осилю Страутструпа , в какую сторону копать?
4) Классика вопросов для джуна? Два стула, какие библиотеки?
Аноним 08/02/18 Чтв 19:15:33  1134922
>>1134866
>Выбрал своим профилем кресты
худшее решение в твоей жизни с точки зрения будущего
хуже наверное только начать ставится герычем по вене
Аноним 08/02/18 Чтв 19:36:38  1134936
>>1134866
1. Винда\Студия.
2. Разница огромная, у красноглазых ублюдков нет нормальных тулзов. Щас бы в 2018 пердолиться в сосноли.
3. В любую другую, чем дальше от С++, тем лучше.
4. Любые, главное, не С++ные
Аноним 08/02/18 Чтв 20:19:41  1134958
>>1133946
1) Вложеный тернарный оператор говно, особенно в одну строку.
2) У тебя одинаковое условие в подоператорах и одинаковый исход для false.
3) Рекурсия с хуй знает каким числом вложений - это охуеть.
4) сукоблядь, в большинстве процессоров с FPU есть инструкция для этого! В стдлибе есть функция для этого!
>>1134620
Аноним 08/02/18 Чтв 20:23:45  1134960
>>1134620
Могу попробовать.
>>1134645
Это один из методов описания шаблона в целом. Частичная специализация может быть описана для произвольного условия, при выполнении которого она будет использоваться.
Аноним 08/02/18 Чтв 23:16:04  1135035
>>1134936
> Разница огромная, у красноглазых ублюдков нет нормальных тулзов. Щас бы в 2018 пердолиться в сосноли.
Кому пиздишь тут? Есть нормальный qt editor.
Аноним 08/02/18 Чтв 23:25:08  1135046
>>1135035
Говна кусок твой qtCreator.
Аноним 09/02/18 Птн 10:33:52  1135181
>>1134936
1. Пользоваться обосранной системой и обосранным ide от индусов, проиграл.
Аноним 09/02/18 Птн 10:35:59  1135182
>>1134936
3. Дальше от лучшего и безальтернативного языка, а этот школьник в ударе сегодня.
Аноним 09/02/18 Птн 11:28:32  1135197
>>1135181
Хуево, когда у тебя все обосраное. Но ты продолжай из сельского толчка вещать, с тобой весело.
Аноним 09/02/18 Птн 13:54:23  1135338
>>1133946
Ебаный пиздец.
Аноним 09/02/18 Птн 14:05:56  1135345
>>1134960
Отправил на почту.
Аноним 09/02/18 Птн 14:07:10  1135347
>>1135345
А нет, не отправил, давай другую почту.
Аноним 09/02/18 Птн 14:11:23  1135352
>>1135347
>>1135345
Теперь отправил.
Аноним 09/02/18 Птн 15:00:17  1135381
Плюсаны, посоветуйте литературу по написанию высокопроизводительного кода на плюсах. Сам шарпист, но сейчас понадобился DLL на кроссплатформенных плюсах для Xamarin.
Аноним 09/02/18 Птн 17:51:05  1135480
>>1135381
В шапке все есть
Аноним 09/02/18 Птн 18:26:00  1135501
>>1134866
> 1) Под какой осью сидеть/ разрабатывать?
Это требования проекта, а не твой выбор.
> 2) Насколько большая разница между кодингом под никсы и форточки?
Если писать хорошо, то никакой. Иначе будешь чинить под другой осью.
> 3) Когда осилю Страутструпа , в какую сторону копать?
Копай шапку дальше
> 4) Классика вопросов для джуна? Два стула, какие библиотеки?
Копай шапку
Аноним 10/02/18 Суб 12:39:28  1135823
https://ideone.com/SiQOk2
Задания обрезать первый символ в строке и засунуть новую строку в переменную a. Сделал через memcpy. Как можно там автоматизировать 3 аргумент с количеством копируемых байт? Шоб через sizeof. Помогите, пожалуйста:3
Аноним 10/02/18 Суб 15:57:09  1135946
>>1135823
Первое правило треда: лабы идут на хуй
Второе правило треда: остальные языки идут на хуй
Аноним 10/02/18 Суб 18:43:52  1136064
>>1135035
QtCreator уебищное говно, а все кто в нем пишет - умственные инвалиды. Вообще все qt несвежая подзалупная смазка. Сука вот же ебучий фреймворк, заставили на новой работе на этом говне писать.
Тру крестобляди, вы согласны? Может создадим тред унижения qt-дебилов?
Аноним 10/02/18 Суб 19:05:31  1136081
>>1136064
А что насчёт Clion? Или ты за создание только программ под одну платформу? Windows конечно же
Аноним 10/02/18 Суб 19:11:35  1136086
>>1136081
Нет я уже давно угорел по кроссплатформе.
Но вот только дестопные приложухи лучше уж на джаве какой нибудь писать.
А как студия разработки кроссплатформенных либ - очевидный Clion, да.
 Хотя недавно открыл для себя https://nuclide.io/ и https://buckbuild.com/, просто ульмитативное ультракроммплатформенное решение.
Ну вот пришлось из-за кучи легаси писать либы с использование qt (не ui), это пиздец, ну есть же boost ребята. Для асинхронности - boost::asio, он скоро въедет в стандарт, а qt - тухлое несвежее дерьмищще.
Аноним 11/02/18 Вск 00:45:51  1136350
Есть у меня одна идея. Абсолютно тривиальная хуета. Но я уже долгое время пытаюсь понять, как внутренние компоненты будут взаимодействовать друг с другом. И всё гавно какое-то. Мне уже кажется, что нахуячить монолитный код это нормально.
Книги на амазоне, что я видел, это вода о воде. Статьи всякие про декомпозицию читал. Когда читаешь, это кажется так легко. А потом делаешь сам и ловишь рейдж.
Помогите, или я поеду. Может есть какая нормальная книга, чтобы даже такой даун, как я, просветлился.
Аноним 11/02/18 Вск 06:38:56  1136426
>>1134550
Refactoring Фаулера почитай. А лучше начинай писать, в процессе хождения по граблям сам до всего дойдешь.
Аноним 11/02/18 Вск 13:12:08  1136496
>>1136350
Отталкивайся от глобальных паттернов и потом начинай декомпозицию к более локальным. Для первого случая советую к прочтению Pattern Oriented Software Architecture, да и для остального тоже. Одна из самых годных серий книг по паттернам в архитектуре приложений.
Аноним 11/02/18 Вск 13:18:02  1136497
Можете посоветовать какой-нибудь интересный проект, который будет делаться неделю-месяц и поможет в процессе освоить плюсы и библиотеки std? В вузе задали самому выбрать задание, а идей нет. На плюсах учусь писать около полугода, основы знаю.
Аноним 11/02/18 Вск 13:25:36  1136503
>>1136497
>std
stl. На всякий случай поправлю, а то мало ли.
Аноним 11/02/18 Вск 14:12:17  1136537
Сап проганы.
Есть ли смысл использовать в качестве аргумента функции std::shared_ptr<Someclass> someobj, если для Someclass определен move constructor?
Т.е., чтобы в некоторых случаях не писать
somefunc(std::make_shared<Someclass>(args));
, а писать
somefunc(Someclass(args));
когда я хочу сэкономить на памяти и вызовах всяких конструкторов копирования, при передаче объекта через несколько функций подряд.
Аноним 11/02/18 Вск 16:56:27  1136705
Есть ли хоть сколько-нибудь ощутимая польза от noexcept? Или это всё просто хороший тон?
Аноним 11/02/18 Вск 16:57:29  1136706
>>1136705
Есть. Подробности в Effective Modern C++
Аноним 11/02/18 Вск 16:59:35  1136708
Посоны, даю LsaEnumerateAccountRights корректный сид, полученный через NetUserEnum, но она почему-то отвечает мне ERROR_FILE_NOT_FOUND. Запускаюсь под админом, возвращает ошибку, когда пытается получить привилегии обычного пользователя (в этом случае, когда пытаюсь получить свои привилегии).
В чем может быть проблема?
Аноним 11/02/18 Вск 17:04:13  1136714
>>1136706
Ага, спасибо, действительно, там есть целая глава про это.
Аноним 11/02/18 Вск 17:04:45  1136715
>>1136708
Где-то пишут, что это означает, что у пользователя не привилегий, но посмотрел через "whoami /priv", пишет, что есть.

>>1136708 - кун
Аноним 11/02/18 Вск 17:26:58  1136732
>>1136537
>, а писать
> somefunc(Someclass(args));
В этом случае конструктор тоже будет вызван. Если ты хочешь создать объект из нихуя (только из аргументов) то move constructor никак не поможет.
> при передаче объекта через несколько функций подряд
Создание копий std::shared_ptr будет скорее всего быстрее чем вызовы move constructor (так как std::shared_ptr в большинстве случаев будет меньше чем остальные классы). Как-то ускориться можно только через allocate_shared - чтобы не дергать кучу, зависит от ситуации, может и нихуя не помочь, а то и замедлить.
Аноним 11/02/18 Вск 18:05:16  1136751
>>1136732
шаред птр там на каждое копирование каунтеры на атомиках инкрементирует и проверки делает, что конечно легкая операция, но не бесплатная, может и не быстрее move быть
Аноним 11/02/18 Вск 18:37:42  1136775
>>1136732
>В этом случае конструктор тоже будет вызван. Если ты хочешь создать объект из нихуя (только из аргументов) то move constructor никак не поможет.
Ну я имею в виду, что в случае вот такого кода и наличия move constructor для Someclass:

// тут вызывается обычный конструктор, потом move constructor при передаче аргумента в функцию do1
do1(Someclass(obj));

void do1(Someclass obj)
{
// move constructor при передаче аргумента в функцию do2
do2(obj);
}

void do2(Someclass obj)
{
// move constructor при передаче аргумента в функцию do3
do3(obj);
}

void do3(Someclass obj)
{
// move constructor при передаче аргумента в функцию do_final
do_final(obj);
}

Таким образом за всю цепочку вызовов функций (do1 -> do2 -> do3 -> do_final), обычный конструктор вызывается 1 раз, а все остальные разы move constructor.
Я прав? Не знаю, понятно ли написал, лул.
Просто я обычно использую в таких случаях std::shared_ptr, но писать std::make_shared<Someclass>() каждый раз довольно длинно, да и читать это не так удобно.
Аноним 11/02/18 Вск 19:09:50  1136805
138627243817400[...].jpg (31Кб, 702x240)
Посоны! Нахуй нужны ссылки? С указателями всё понятно, это полезная и хорошая вещь чтобы крашить программу самым неожиданным методом.
Но нахуя ссылки? Они просто заменяются препроцессором на имя ссылочной переменной или как то по другому? Есть профит от использования ссылок, кроме как создания константного типа ссылки чтобы не покрашить данные случайно?
Аноним 11/02/18 Вск 19:12:52  1136811
>>1136805 алсо, лет 10 назад забил на вышку на втором курсе. На сишнике писал успел написать одну тупую лабу. Так вот, с той поры С++ обновил две, а то и три версии. Можно в двух словах, разница кардинальна или просто новых функций в стандартные библеотеки понапихали.
Про ссылки вот я кстати не помню, были они в С++99 или нет.
Аноним 11/02/18 Вск 19:15:29  1136817
>>1136805
Ссылка это автоматически разыменовываемый указатель. Профиты те же самые.
Аноним 11/02/18 Вск 19:56:01  1136872
>>1136805
ссылка ощутимо "безопаснее" чем указатель, за счет того, что не может быть нулем. А висячую ссылку сделать сильно сложнее, чем кривой указатель.
Аноним 11/02/18 Вск 20:10:19  1136881
>>1136775
> вызывается 1 раз, а все остальные разы move constructor
Да
> std::make_shared<Someclass>() каждый раз довольно длинно
Если под "каждый раз" ты подразумеваешь один раз на цепочку вызовов, то да. Если рассматривать именно со стилистической точки зрения то использовать смарт поинтер может быть действительно не совсем правильно. std::shared_ptr нужен для того чтобы гранить указатели на объект в нескольких местах, с автоматическим контролем за использованием. Просто передача объекта по цепочке вызовов не совсем использование по прямому назначению. Лучше передавать просто объект и надеяться на оптимизации. Может в будущем компиляторы смогут вообще оптимизировать эту хуйню, так чтобы никаких мув конструкторов не вызывалось (они то в принципе нахуй не нужны). Но по эффективности это примерно одинаковые подходы. Асло, есть же еще std::unique_ptr - я где-то читал что компиляторы во многих случаях способны оптимизоровать std::unique_ptr так что у него вообще нет накладных расходов, незнаю насколько это правда - но он может оказаться эффективней.
Аноним 11/02/18 Вск 20:12:23  1136884
>>1136497
Бамп.
Аноним 11/02/18 Вск 20:22:01  1136900
>>1136817
>>1136872
А вот ещё спросить хотел тип bool в новых редакциях имеет автоматическю защиту от переполнения?
Аноним 11/02/18 Вск 20:37:56  1136913
>>1136881
>Асло, есть же еще std::unique_ptr - я где-то читал что компиляторы во многих случаях способны оптимизоровать std::unique_ptr так что у него вообще нет накладных расходов, незнаю насколько это правда - но он может оказаться эффективней.
Я изначально его и попытался заюзать, но в моем компиляторе был какой-то косяк, поддержка shared_ptr была, а unique_ptr не было или типа того. Ну, это давно было.
Поэтому заюзал shared_ptr, чтобы не греть голову по поводу своевременного освобождения памяти.
Аноним 11/02/18 Вск 21:13:43  1136951
>>1136900
От какого переполнения?
bool++ - так делать просто не надо и все. Скорее всего даже варнинг схватишь.
Аноним 11/02/18 Вск 22:37:21  1137037
class B {
explicit B(int a);
};
class A : public B
explicit A(int a, int c);
};

A::A(int a, int c)
: B(a) // 1
{
DoSomeShit(a); // 2
B(a);
}

Можно ли сделать, чтобы конструктор предка вызывался не перед вызовом конструктора, а после? Без аггрегации
Аноним 11/02/18 Вск 22:39:55  1137044
>>1137037
Нет. Предок должен быть полностью сконструирован перед тем как конструируется потомок.
Аноним 12/02/18 Пнд 12:59:08  1137406
image.png (256Кб, 1920x1080)
Что значит int? То есть это указатели на указатель?
Аноним 12/02/18 Пнд 13:03:44  1137409
>>1137406
Да но зачем
Аноним 12/02/18 Пнд 13:07:45  1137413
>>1137409
Динамический массив.
Аноним 12/02/18 Пнд 13:41:31  1137447
>>1137413
Так и объявляй динамический массив.
Аноним 12/02/18 Пнд 13:49:06  1137452
>>1137447
Ну я объявил.
Аноним 12/02/18 Пнд 13:50:21  1137453
>>1137452
Пiчальна, чо.
Аноним 12/02/18 Пнд 13:52:56  1137456
>>1137406
Удалил плохо.
Аноним 12/02/18 Пнд 13:56:03  1137458
>>1137453
А что не так? Как правильно, сеньор?
Аноним 12/02/18 Пнд 14:08:40  1137475
>>1137456
Надо циклом удалять сначала все строки массива, потом весь массив?
Аноним 12/02/18 Пнд 14:09:59  1137478
>>1137475
У тебя десять массивов, которые являются элементами другого массива. Ты стер массив из десяти указателей на десять массивов, но те десять массивов по десять чисел в каждом всё ещё существуют.
Аноним 12/02/18 Пнд 14:10:54  1137480
image.png (265Кб, 1920x1080)
>>1137478
Вот так надо?
А вообще как я сейчас делаю, делают?
Или юзают векторы и тому прочее?
Аноним 12/02/18 Пнд 14:22:20  1137495
>>1137480
Да, вот так.

Юзают, абсолютно верно - векторы, или std::array. Сырые владеющие указатели после 2011 года юзать запрещено.
Аноним 12/02/18 Пнд 14:23:27  1137498
>>1137495
>запрещено
Почему? Утечки хуечки?
Аноним 12/02/18 Пнд 14:27:29  1137504
>>1137495
>абсолютно верно - векторы, или std::array
А они же больше жрут ресурсы?
Аноним 12/02/18 Пнд 14:33:07  1137518
maxresdefault.jpg (54Кб, 1280x720)
>>1137504
Аноним 12/02/18 Пнд 14:37:23  1137522
>>1137518
Меньше что ли жрут?
Аноним 12/02/18 Пнд 14:37:30  1137523
>>1137498
exception safety равный нулю. И да, человеческий фактор с утечками.

>>1137504
std::array - жрет столько же сколько обычный массив на стэке.

vector - чуточку тяжелее. Но если ты будешь делать reserve\resize для пре-аллокации нужного количества памяти - то по производительности будет почти тоже самое
Аноним 12/02/18 Пнд 14:40:50  1137529
>>1137523
Значит лучше array там где надо СКОРОСТЬ.
Аноним 12/02/18 Пнд 14:43:30  1137533
>>1137529
лучше сначала профайлером пройтись, а потом уже на скорость дрочить.
Аноним 12/02/18 Пнд 14:47:48  1137537
image.png (303Кб, 1920x1080)
Вот смотрите, если делать так, вместо using std::cout, то я буду пидором?
Аноним 12/02/18 Пнд 15:03:06  1137552
>>1137537
да, будешь. Макросы в современном С++ использовать строжайше не рекомендуется, кроме для кроссплатформенной разработки ну или когда код шарится между кернел-модом и юзер-модом, как у меня на работе
Аноним 12/02/18 Пнд 15:03:24  1137553
Возможно ли в 2018 студенту устроиться стажёром с++ в ДС за еду? Или сразу идти учить джаву/sharp?
Аноним 12/02/18 Пнд 15:11:13  1137557
>>1137553
> устроиться стажёром с++ в ДС за еду? Или сразу идти учить джаву/sharp?
ЦМС 1С, чекай
Аноним 12/02/18 Пнд 15:22:20  1137566
>>1137553
С++ вообще такой язык, где нужны только мидлы и выше, а лучше вообще одни сениоры. Это не ангуляр-мартыха.
Аноним 12/02/18 Пнд 15:28:09  1137569
>>1137566
Не рождаются же C++ кодеры мидлами. К тому же, на hh есть вакансии, где указано без опыта, но как-то подозрительно всё это. Что вообще в сейчас на крестах пишут?
Аноним 12/02/18 Пнд 15:29:54  1137570
>>1137569
Без опыта != студент-интерн. Я собесил на вакансию "без опыта", приходили совсем нулевые дауничи. То, что у тебя нет опыта - это значит, что ты что-то заебись умеешь и знаешь.

Что пишут - я писал в разное время;
qt-парашу для железной дороги, сервер управления поездами для нее же, бэкенд-утилитки для хостинг панели, прошивку для роутера, сейчас пишу драйвер для винды.
Аноним 12/02/18 Пнд 15:35:13  1137573
image.png (349Кб, 604x604)
>>1137570
> То, что у тебя нет опыта - это значит, что ты что-то заебись умеешь и знаешь.

Да как так то. Ну знаю всякие основы ОС, сетей, алгоритмы, жму/пинусы с гитами и С++ на уровне базового курса, я нулёвый даунич?
Аноним 12/02/18 Пнд 15:49:35  1137583
>>1137573
>
>Да как так то. Ну знаю всякие основы ОС, сетей, алгоритмы, жму/пинусы с гитами и С++ на уровне базового курса, я нулёвый даунич?

Знание алгоритмов и прочих основ не делает из тебя не говнокодера. Нужно иметь умение структурировать код и проектировать его, чтобы потом через полгода или год, тебя ногами не пиздили за то, что ты написал. Ну еще знание всяких жизненных ситуевин очень помогает. Опыт карочи.
Аноним 12/02/18 Пнд 15:55:32  1137592
>>1137573
C++ на уровне базового курса == не подпускать к продакшен кодбазе на расстояние пушечного выстрела.
Аноним 12/02/18 Пнд 16:07:46  1137602
>>1137583
> Чтоб получить опыт, нужно устроиться на работу, чтоб устроиться на работу, нужен опыт.
>>1137592
Понял, пойду выпиливаться, спасибо за ответы.
Аноним 12/02/18 Пнд 16:16:26  1137611
>>1137602
>Понял, пойду выпиливаться, спасибо за ответы.
Короче блять. Совет тебе. Пробуй делать хоть какие-то мизерные, но все же проекты. Со временем ты увидишь, что у тебя начинают возникать бойлерплейты и ты постараешься их избегать и изобретешь для себя паттерны, но пока ты ничего не понимаешь в этом, паттерны будут только во вред, потому что их нужно грамотно применять.
Попробуй написать какой-нибудь обменник сообщениями по TCP, потом улучшай, улучшай и улучшай. Переписывай все заново. Так и набивается опыт.
Аноним 12/02/18 Пнд 18:20:28  1137689
>>1137611
> Попробуй написать какой-нибудь обменник сообщениями по TCP, потом улучшай, улучшай и улучшай. Переписывай все заново. Так и набивается опыт.

Спасибо за совет, няша. Родители уже гонят на работу, а на собеседования страшно идти. Может ещё успею, а то сейчас вообще тьма, депрессия и боль.
Аноним 12/02/18 Пнд 18:56:15  1137712
Так, а такой вопрос, возможно ли вообще проверять в шаблоне, что не было передано никакого параметра?

template<typename T, typename std::enable_if<
std::is_signed<T>::value ||
std::is_void<T>::value
,T>::type>
void f(T t = 0);

Можно ли вообще такое сделать валидным?
Аноним 12/02/18 Пнд 19:04:27  1137721
>>1137712
обычная перегрузка?
Аноним 12/02/18 Пнд 19:04:56  1137722
>>1137712
вдогонку - в вариадик шаблоне да, sizeof...(), а в обычном - только специализация\перегрузка и тд
Аноним 12/02/18 Пнд 19:10:40  1137727
>>1137721
Можно, но хотелось, чтобы было одной функцией.
>>1137722
Спасибо, почитаю.
Аноним 12/02/18 Пнд 23:48:02  1137880
Подскажите самый простой компилятор кода под Винду, чтобы ещё был без установки
Аноним 13/02/18 Втр 00:05:43  1137885
>>1137880
https://nuwen.net/mingw.html

если ты совсем маргинал - то www.cpp.sh
Аноним 13/02/18 Втр 11:41:59  1138023
>>1137495
>Сырые владеющие указатели после 2011 года юзать запрещено.
А мне норм.
Аноним 13/02/18 Втр 11:44:26  1138025
Собираюсь полностью перейти с g++ на clang, какие подводные?
Аноним 13/02/18 Втр 11:44:41  1138027
>>1137885
Как всё сложно.
В никсе нажал две кнопки и уже собираешь.
Аноним 13/02/18 Втр 12:10:18  1138040
>>1138023
Лови сишника

>>1138027
Если тебе архив сложно распаковать - ну, хуй знает, что тут сказать
Аноним 13/02/18 Втр 12:13:41  1138045
Бля, как хуёво жить.
Не было доступа к родной пеке, быстро накатил dev-c++ на виндах, написал всё, прогнал тесты - всё ок.

Перегнал исходники на никсы, написал скрипт, который генерирует скрипт запуска по передаче 500+ аргументов в последовательных запусках. Где-то на сотом файле всё умерло. Ну, думаю, что-то упустил. Ручками запускаю с этим файлом под виндой - всё ок. Ручками запускаю в никсах - обрабатывает файл по кругу, не останавливаясь в eof, лог вырастает в гигабайт за 10 секунд.

Хуле ему надо.
Аноним 13/02/18 Втр 12:29:11  1138056
>>1138045
Нет, это, блядь, невозможно просто.

Шапка цикла: while(pos < length) {

Вывод в конце цикла:
[code]
code_length = length - pre_pos;
rintf("END OF FILE in %d bytes\n", code_length);
printf("length is %04x\n", length);
printf("pos is %04x\n", length);
[/code]

END OF FILE in 5 bytes
length is 0f5b
pos is 0f5b

pos больше не меняется. length больше не меняется.
После этого проверяется шапка цикла.
Под виндой ок, под никсами файл начинает обрабатываться заново (то есть pos = 0).
Аноним 13/02/18 Втр 12:37:20  1138062
>>1138056
Блядь.
Аноним 13/02/18 Втр 12:49:37  1138067
>>1138062
Разобрался, всем спасибо.
Аноним 13/02/18 Втр 13:29:12  1138092
А в плюсы нормальный билд тул с менеджментом зависимостей подвезли или мне надо устанавливать либы в систему?
Аноним 13/02/18 Втр 13:39:07  1138096
>>1138092
vcpkg
Аноним 13/02/18 Втр 14:06:57  1138114
>>1137689
>Родители уже гонят на работу
>ещё успею, а то сейчас вообще тьма, депрессия и боль
зря ты решил в кресты инвестировать свое время
Аноним 13/02/18 Втр 14:09:51  1138116
>>1137553
>Возможно ли в 2018 студенту устроиться стажёром с++ в ДС за еду?
если совсем кратко, то в случае если ты учишься по профильной специальности, те на программиста, тогда, да, возможно
Аноним 13/02/18 Втр 14:15:59  1138120
>>1137523
все же различия между std::vector и std::array глубже рассуждений быстрее-медленней..
Аноним 13/02/18 Втр 15:42:44  1138213
>>1138096
А что-нибудь не для винды и не для vs?
Аноним 13/02/18 Втр 16:19:12  1138238
image.png (237Кб, 1920x1080)
АХУЕТЬ МОЖНО ЧТО ЛИ ТАК БЕГАТЬ ПО МАССИВУ? ЕБАННЫЙ В РОТ, ЭТО ТАК КРУТО ПРЯМ КАК ЧЕЧНЯ
Аноним 13/02/18 Втр 16:44:26  1138263
>>1138238
Ага, оно ж по порядку лежит.
Аноним 13/02/18 Втр 16:52:06  1138270
>>1138263
Есть профит от такого способа?
Аноним 13/02/18 Втр 17:44:14  1138308
>>1138270
Это одно и тоже, просто квадратные скобки - это синтаксический сахар для читаемости кода, особенно, когда у тебя двух-, трех- и т.д. мерный массив через указатели совершенно нечитабельно. А так компилятор генерирует абсолютно один и тот же код. Пруф: https://godbolt.org/g/5oxxc6
Аноним 13/02/18 Втр 18:40:18  1138339
>>1138067
Что сделал то?
Аноним 13/02/18 Втр 19:23:01  1138357
Чому биты представляют не в десятеричной системе исчисления?
Аноним 13/02/18 Втр 19:23:37  1138358
image.png (244Кб, 1920x1080)
Пацаны, клевый код?
Аноним 13/02/18 Втр 19:23:59  1138359
>>1138357
Нахуя, если у него два положения?
Аноним 13/02/18 Втр 19:24:17  1138360
>>1138358
Сильный.
Аноним 13/02/18 Втр 19:27:44  1138361
>>1138359
Чтобы ты вопрос задал.
Аноним 13/02/18 Втр 19:33:45  1138363
>>1138308
Прости, что доебываю, но у меня вопрос. Массив же состоит из элементов типа int? Почему тогда при смещении адреса указателя на единицу выдается другое число? По идее же, должно быть смещение адреса на 4.
Выходит, в массиве хранятся указатели на числа по которым можно так проходить?
Аноним 13/02/18 Втр 19:55:50  1138374
>>1138363
Вот, что написал Прата в "Языке программирования С": "добавление
1 к указателю" означает добавление одной единицы хранения. Для массивов данный
факт означает, что адрес увеличивается до адреса следующего элемента, а не просто
до следующего байта. Это одна из причин того, почему нужно объявлять
вид объекта, на который указывает указатель. Одного лишь адреса недостаточно, т.к.
компьютер должен знать, сколько байтов требуется для хранения объекта.
Аноним 13/02/18 Втр 20:43:46  1138396
>>1138374
Норм книга? Стоит почитать под пивас?
Аноним 13/02/18 Втр 20:44:31  1138397
>>1138374
Спасибо большое. Добра тебе.
Аноним 13/02/18 Втр 20:49:06  1138400
>>1138374
Если я указал int, то он по байту будет прибавлять значит?
Аноним 13/02/18 Втр 21:28:38  1138411
>>1138396
Не знаю, многовато воды и совершенно неинтересные упражнения, но очень подробно все объяснено, так что решай сам.
>>1138400
Будет прибавлять к адресу sizeof(int) байт. Стандарт не гарантирует, что это будет 4 байта, но, как правило, это именно столько. Чтобы прибавлять по байту нужно сделать приведение в Си-стиле к указателю на char.
Аноним 13/02/18 Втр 23:20:24  1138469
Не тренировался на крестах где-то год. Переустановил lubuntu 16.04 установил g++ geany. Открыл файлики( типа a.cpp b.cpp c.h) с учебника праты и получаю ошибки undefined reference. Помню раньше надо было открыть и нажать сборку именно на том файле где есть функция int main, сделал именно так, всё равно таже ошибка. Пробуюв консолечке g++ a.cpp b.cpp -o a всё норм работает. Понимаю что почему-то geany теперь не хочет автоматом подхватывать второй файл b.cpp (c.h он должен вставить ведь он заинклюжен). Как исправить?
Аноним 13/02/18 Втр 23:35:48  1138475
>>1138358
замени на 'new long long'
Аноним 13/02/18 Втр 23:35:57  1138476
>>1138469
я нихуя не понял, но .cpp файлы надо руками указывать, а хедеры "подцепятся автоматически" (препроцессор их хуйнет текстом в cppшники)
Аноним 13/02/18 Втр 23:41:08  1138479
>>1138476
Может и я чето подзабыл, может и не было такой функции в geany чтоб *.cpp подхватывались сами
Аноним 13/02/18 Втр 23:45:38  1138482
>>1138479
я не знаю, что такое geany, но абсолютно точно уверен, что .cpp нужные надо вручную перечислять
Аноним 14/02/18 Срд 01:46:23  1138528
>>1138238
Ща я тебе мировосприятие сломаю. Попробуй cout<<2[andron];
Аноним 14/02/18 Срд 10:48:37  1138597
Анчоусы, а вообще описывать метод вне класса, а в классе оставлять онли прототип функции - это норм? Как по мне - это ухудшает понимает понимание кода и читаемость в разы. Нахуй оно вообще нужно, можете объяснить?
<пример. где такая хуйня встречается https://pastebin.com/Qstf02Wv
Аноним 14/02/18 Срд 11:15:36  1138609
>>1138528
Зачем ты так с неокрепшим умом...

>>1138238
Анончик, если уж занялся изучением плюсов, то дам пару советов:
1. Создавая проект в Visual Studio, создавай "Пустой проект". Тогда, у тебя не будет лишних файлов в твоем проекте по типу stdafx и иже с ними. Плюс уберутся лишние флаги к компилятору, суть которых ты не будешь понимать еще пару лет.

2. Изучая разделы плюсов, отвади по 1-2 дня на каждый раздел, нарешивая задачки. Или придумай задачку по-крупнее (написать консольный калькулятор, игру в слова, крестики-нолики, решить квадратное уравнение, запилить класс Matrix для матричных вычислений и т.п.)

3. Даже не пытайся запилить игры. Minecraft ты не напишешь еще очень долго. Могут уйти годы. Причем, minecraft это пожалуй один из немногих проектов, которые вмещаются в одну голову, все дальше только командная разработка, готовые фреймворки (Unity, UE4, CryEngine и т.п.).
Gamedev это вообще, глубокая область. Тебе придется разобраться в матане, графических библиотеках, работе со звуком, работа с артефактами (ассетами), разобраться как работает GPU (что такое Vertex Shader, Fragment Shader, Computer Shader и т.п., Shader buffer и т.п.). Плюс тут еще много подводных камней касаемых target platform, drivers, deploying, native OS API, hardware, build (dynamic linking vs static linking). Понятно, что тут еще будет накручен сбоку VCS, и всякие гиты ты должен будешь знать как пять пальцев. Это Single Player Game.
Если игра будет Multi-player specific, то нужен будет чувак, который еще шарит в сетях, сетевых протоколах, знает про то как мониторить и тестировать RPS, будет знать в каких БД хранить инфу о пользователях и т.д и т.п....
Еще можно долго писать про наличие Художника, Звуковика, Сценариста.
_______
Если хочешь для себя сделать что-то не сложное и за короткие сроки (пару месяцев, год). То бери только готовые решения - Unity (C#), UE4 (Blueprints, C++), м.б. какой-нибудь GameMaker. (GoDot не трогай, там много нюансов).

4. Если не планируешь изучать в дальнейшем английский, хотяб на уровень B1, C2, то спецом ты НЕ станешь однозначно. В доках ты ничего прочитать не сможешь - инфа 100%. Статьи ты будешь понимать коряво, а не то что пытался передать автор. И т.д.

5. (Если знаешь EN, или хотяб планируешь его изучать). Начинай смотреть канал - TheCherno (https://www.youtube.com/channel/UCQ-W1KE9EYfdxhL6S4twUNw). Отруби русский язык везде, где только возможно. Телефон и Компьютер на анг. поставь. Каждый день пытайся проговаривать в слух все что говорят Англоговорящие с youtube.

6. Держи в голове поговорку: "Повторение - мать учения". Также следуй принципу: "Все решения доводить до конца". Старайся концентрироваться на задаче/проблеме. Хотя, пох, можешь не следовать им, все равно через пару лет ты к ним придешь. Не всё сразу....

7. Старайся мыслить своей головой, и лишь затем пользоваться готовым решением.

Думаю к остальному, что я здесь не перечислил ты сам придешь или столкнешься в скором времени.
______________
П.С. Сам 23 лвл. Играл лет 10 в дотку и лол, а потом захотелось создать игру.
За 5 лет, так игру и не создал, зато прочитал 20 книжек по программированию. Узнал кучу полезной и бесполезной инфы. И еще 10000 статей с хабра и прочей фигни. По-работал по 2+ лет на каждой из популярных ОС.
Похоронил для себя C++ и перешел в web (пару лет назад) - мучу RESTful сервисы.

Аноним 14/02/18 Срд 11:17:44  1138614
>>1138597
нет, не норм. Потенциальное замедление компиляции - плюс в наших петушиных кругах принято отделять интерфейс от реализации
Аноним 14/02/18 Срд 11:18:12  1138615
>>1129255 (OP)
[fq
Аноним 14/02/18 Срд 11:22:36  1138619
>>1138597
Похоже на пример из Лафоре.

Это чувак посмотри на мой пост, там я канал посоветовал где, все очень хорошо объясняется:
>>1138609

Аноним 14/02/18 Срд 11:36:27  1138635
>>1138614
>>1138619
Спасибо)
Аноним 14/02/18 Срд 12:00:46  1138644
>>1138609
>Даже не пытайся запилить игры
Я уже сделал гениальные крестики-нолики и арканоид... Дороги назад нет?
Аноним 14/02/18 Срд 12:19:29  1138649
>>1138528
Как так? Почему это работает?
Аноним 14/02/18 Срд 12:32:40  1138659
>>1138649
a это (a+b). b[a] это (b + a).

Догадался?
Аноним 14/02/18 Срд 12:33:02  1138660
>>1138659
ебаный двач звездочки перед круглыми скобками сьел
Аноним 14/02/18 Срд 12:35:54  1138664
>>1138659
Ага
a[5]==(a+5)==(5+a)==5[a]
Аноним 14/02/18 Срд 12:35:55  1138665
>>1138659
АХУЕТЬ. ЕБАТЬ СПАСИБО. АХ ВОТ КАК КВАДРАТОСКОБКИ РАБОТАЮИТ.
Аноним 14/02/18 Срд 12:36:48  1138666
>>1138660
>>1138664
Лол, та же хрень. Короче ты понял
Аноним 14/02/18 Срд 12:54:10  1138676
>>1138644
Если тебе интересна эта тема (gamedev), то развивайся конечно!!
Просто сделать что-то большее чем minecraft в одного будет почти нереально, если ты конечно не со школьлной скамьи фигачил лин.алг, computer science и т.п.
Арканоид - норм. Если прям шаришь, в том что сделал и все понимаешь, и можешь уместить весь проект в голове, то пробуй что-то большее. А если нет, то смотри в сторону UE4.

Лично, я дальше 2д поделок не смог уйти. Теперь понимаю, что нужно было в школе учить косинусы, тангенсы и нарешивать всякие СЛАУ. Щас, уже времени нет на все это, да и голова не свежа.

У тебя память кстати норм? Родичи заставляли в свое время учить стихи и прочее?
Аноним 14/02/18 Срд 13:18:29  1138691
>>1138528
ЕБАТЬ МОЙ ХУЙ
Аноним 14/02/18 Срд 13:20:01  1138693
>>1138676
>2д поделок
Как будто что-то плохое.
Жаспер Брин же смог в Lone Survivor, например.
Аноним 14/02/18 Срд 14:20:05  1138726
Господа байтобоги, пытаюсь разобраться с Cmake на примере одного опенсурс проекта, но что-то нихуя не выходит, чувствую только боль и унижение. Вечно какие-нибудь субдиректории не так подключаться/не найдуться и т.д. Куча магических переменных, пзц. Есть ли какая-нибудь годная книга по этой системе сборки, чтобы все аспекты сразу пояснили?
Аноним 14/02/18 Срд 14:29:27  1138733
>>1138726
Начните с корневой директории. Всего доброго.
Аноним 14/02/18 Срд 14:34:17  1138737
>>1138676
>У тебя память кстати норм? Родичи заставляли в свое время учить стихи и прочее?
С памятью все хорошо. В школе много зубрил всякой терминологии гуманитарной.
>Теперь понимаю, что нужно было в школе учить косинусы, тангенсы и нарешивать всякие СЛАУ. Щас, уже времени нет на все это, да и голова не свежа
Насколько нужен сильный уровень математики? Если он чуть выше/равен школьному, то сойдет?
>UE4
Мне почему-то удобнее работать с SDL. Уеч слишком монструозен.
Аноним 14/02/18 Срд 15:22:16  1138774
У С++ вообще есть перспективы или скоро всему настанет пиздец и нужно будет всего полтора специалиста, поддерживающих древее говно? Есть смысл перекатываться в нейронки или ещё куда?
Аноним 14/02/18 Срд 15:23:08  1138775
>>1138664
Вот коммутативность такой операции нихуёвый такой брейнфак
Аноним 14/02/18 Срд 15:39:54  1138794
>>1138774
Если перекатываться, то только в веб.
Аноним 14/02/18 Срд 15:49:05  1138812
image.png (237Кб, 600x600)
>>1138794
Аноним 14/02/18 Срд 15:54:43  1138817
Есть на С или крестах нормальные serverless базы данных? Про SQLite знаю, там Decimal всратый.
Аноним 14/02/18 Срд 16:20:04  1138841
Господа, делаю задачи из учебника Лафоре застрял. Не пойму в чем проблема. Признателен буду за помощь.
https://pastebin.com/4vzmApEi
Аноним 14/02/18 Срд 16:26:58  1138844
>>1138733
Слишком сложно для меня. Много нерелевантной инфы.
https://github.com/mapsme/omim/blob/master/CMakeLists.txt
Я хочу скомпилить только нужный мне кусок.
https://github.com/mapsme/omim/blob/master/qt/CMakeLists.txt
Но как я не ебусь с этими мэйклистами нихуя не выходит, постоянно какая-нибудь хуитка не находиться.

1.Можно ли в cmake как то добавлять префиксы для инклюдов в исходниках?
Т.е. если у меня huilta1.hpp и huita2.hpp чтобы между собой в коде писать не #include "huita1.hpp", а #include "PREFIX/huita1.hpp"?
2.Можно ли как-то вывести список всех директорий, которые подключаются к проекту?
3.Можно ли то же самое сделать для всех файлов?
Аноним 14/02/18 Срд 18:58:41  1138910
>>1138737
Память это core resource. Успех интеллектуальной деятельности от нее слишком сильно зависит. Мне вот не повезло, я прочитал от силы 3 книги за всю школу и выучил "Бородино". Теперь, вот даже не получается запомнить функции фреймворков с которыми работаю, каждый день. Всегда держу откртыми доки и стак.

Углубленный матан нужен, если ты пишешь с нуля физический движок. (движение частиц, упрогость объектов, кинематические функции для скелетов гуманойдов, баллистические уравнения и т.п.), все это нужно будет быть способным понять и реализовать.

Конечно есть готовые либы и функции на github, в частных блогах, книгах.
Если с матаном будет не очень складываться, то тогда только готовые движки, либы и т.д. Ну хотя, может с школьными знаниями (геометрия, тригонометрия, лин.алг) дейсвительно можно делать примитив на уровне 2Д платформеров и др. жанров.
Аноним 14/02/18 Срд 19:05:31  1138911
>>1138910
>3 книги за всю школу и выучил "Бородино"
Ничего себе. У нас в школе палками пиздили если ты не читал и не учил.

Спасибо за ответы вообще. Ты сам почему с плюсов ушол?
Аноним 14/02/18 Срд 19:08:40  1138914
>>1138910
>если ты пишешь с нуля физический движок
Можно про вот это по-подробнее? Как их вообще пишут? На OpenGl и DirectX?
Аноним 14/02/18 Срд 19:09:39  1138915
>>1138841
В проверке символа ты делаешь переприсваивание. поставь ==
Аноним 14/02/18 Срд 19:13:09  1138919
Какой же вас язык лаконичный! Такой простой, изящный и прямолинейный! И главное, он всегда делает то, что ты задумывал. Никаких подвохов!
Аноним 14/02/18 Срд 19:29:25  1138926
>>1138919
Как будто где-то жизнь проще.
Аноним 14/02/18 Срд 19:34:19  1138930
>>1138926
Всяким пыхаблядям, джаваскриптопидорам и питонистом проще.
Аноним 14/02/18 Срд 19:55:58  1138938
>>1138774
C++ активно используется в яндексе и мейле из русского. В Фейсбуке, Гугле, Майкрософте, Амазоне из зарубежного.

Я ответил на твой вопрос?
Аноним 14/02/18 Срд 19:58:41  1138939
>>1138911
>>Ты сам почему с плюсов ушол?
0. Ну про память я тебе написал свою. Как рыбка Дори =).
1. Слишком долго разбирался в тонкостях языка и его экосистемы, как итог - просто перегорел, стало даже тошнить от расширения файлов cxx, cpp и тд. Теперь понимаю, что нужно было искать работу после двух лет изучения (и идти пусть даже стажером). Пожалуй, основная причина. Все-таки, на старте нужна хоть какая-то отдача. Если то, чем ты знаимаешься не приносит тебе денег в течение года, то что-то тут не так..
2. Интерес к основным штукам для которых предназначен сейчас C++ - у меня пропал. (Embedded, gamedev, ROS, OS, "SUPER ULTRA HIGH PERFORMANCE SYSTEMS", и т.п.) - эти области Мне более неинтересны.
3. Архаичность. Когда имеешь дело с C++, то нужно всегда помнить про тонкости и хаки чистого C. Количество подходов к тому как писать либы и код, менялось более 40 лет, отсюда слишком разная структура у third party либ. Каждый раз нужно разбираться, как inject-ить либу в проект, потом настривать compiling, linking, building. Всегда нужно читать все header файлы. Ибо может быть какая-нибудь особенность конкретной либы. Порядок подключения хедеров, тоже иногда может быть важен.
4. Просто выпишу из своего дневника пару минусов:
- Total absence of Unified Package manager
- Total lack of Unified Best Practices
- Exuberant Syntax, therefore it has Poor Readability && Many ways to solve a problem
- If you write C++ code, then you need understand old C code. Because C++ founded on top of C.
- Hard to configure IDE or code editor to make a builds. Real good IDE is just for Windows.
- Dependency Injecting is so fucken mindgames. You always need to read source code and headers to understand library specific traps and pitfalls.
- (RAII) Manual work with memory allocation/deallocation. (OFC if you work with C++ approx 5 years, then you know about SMART POINTERS), but this approach has overhead, and decrease performance of target system.

В целом я рад, что начал в свое время с C++. Мир веба, кажется теперь простым детским садиком.

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

>>1138914
>>Можно про вот это по-подробнее? Как их вообще пишут? На OpenGl и DirectX?
Да это обыкновенный набор cpp, h, c, cxx, hpp, dll, lib, dll.lib, so и д.р. файлов.
В этих файлах описываются шаблоны игрового мира, шаблоны объектов, шаблоны устройств ввода (джойстики, клавиатуры, мышки, геймпады, рули, стики и т.п.), шаблоны свойств объектов и т.д. Там очень богатая иерархия шаблонов классов.
Там будет обязательно реализация state machine. Реализация renderer (отрисовщика кадров) и т.п. В отрисовщике кадров уже используются всякие функции Direct3D (если проект собирается под Windows платформу), OpenGL (под все поддерживаемые им платформы, опять же видеокарта должна поддерживать соотв. стандарт OpenGL-ля), Metal (для MacOS), Vulkan (под все, если производитель карты замутил соотв. драйвера) и тд.
Понятно, что пишут их только спецы, которые понимают как работает ОС и Железки.
Остальные их только дорабатывают, фиксят баги.
Аноним 14/02/18 Срд 21:26:45  1138977
>>1138938
> нужно будет всего полтора специалиста, поддерживающих древее говно

Значит, всё так.
Аноним 14/02/18 Срд 21:27:46  1138978
>>1138939
Спасибо большое тебе. Удачи. Не гори.
Аноним 14/02/18 Срд 21:30:30  1138979
>>1138659
А если это как у дверного массива? Andron [3][3]
Аноним 14/02/18 Срд 21:36:59  1138985
>>1138977
нет.
Аноним 14/02/18 Срд 22:19:52  1139002
>>1138528
добью
int * ukoz = &andron
Аноним 15/02/18 Чтв 01:38:31  1139074
#ятупой
почему эта хуйня работает? Под неё будет выделена какая то память или что?

const int &r=42;
Аноним 15/02/18 Чтв 01:49:44  1139076
>>1139074
Нет конечно, но будет одна косвенная адресация.
https://godbolt.org/g/3xReRN
Аноним 15/02/18 Чтв 09:00:17  1139137
>>1138978
Спасибо) И тебе удачи, не забрасывай, не теряй мотивации, доделывай дела до конца и все будет пучком. :)
Аноним 15/02/18 Чтв 12:14:59  1139207
>>1139002
Это я знал. Так в Qt пишут.
Аноним 15/02/18 Чтв 12:16:20  1139208
>>1138659
А как это просиходит с двумерный массивом?
b[a][b1], это (b+a) и *(b + b1)?
Аноним 15/02/18 Чтв 12:31:50  1139224
>>1139208
проебал указатель
Аноним 15/02/18 Чтв 12:53:39  1139243
image.png (287Кб, 1920x1080)
Это по-пацански так пихать везде указатели?
Аноним 15/02/18 Чтв 14:07:17  1139293
MustDie.jpg (39Кб, 440x437)
>>1139243
Да.
Аноним 15/02/18 Чтв 14:12:35  1139297
>>1139208
Чтобы макакопараша не сходила с ума {} - это []
звездочка это 'з'
arr{a}{b} это з(з(arr + a) + b)

Это валидно и для статических двумерных массивов, и для динамических
Аноним 15/02/18 Чтв 14:13:14  1139299
>>1139243
чем меньше указателей - тем лучше. В идеале справлятся вообще без них.
Аноним 15/02/18 Чтв 14:19:37  1139302
>>1139299
Хм...
Аноним 15/02/18 Чтв 15:51:57  1139357
>>1139243 вместо указателей лучше бы ссылки использовать.
Аноним 15/02/18 Чтв 17:32:38  1139427
>>1139137
И если не утомил тебя, то ты не можешь сказать о том стоит ли учить Си? Мне он просто больше как-то заходит.
Аноним 15/02/18 Чтв 17:36:23  1139432
>>1139357
Гей плез
Аноним 15/02/18 Чтв 18:47:23  1139489
сап, программач!
понадобилось подправить cout, это я нагуглил, но не пойму, как его использовать правильно в нескольких файлах .cpp(с одним работает), компилятор говорит что-то об ошибке линковщика.
https://pastebin.com/bXEz814y
Аноним 15/02/18 Чтв 19:12:48  1139515
Как я понял, длительные цепочки else if преобразуются компилятором в switch? Switch вообще быстрее else if?
Аноним 15/02/18 Чтв 19:14:14  1139517
>>1139515
Неправильно ты понял. Компилятор делает из всех условных конструкций последовательности cmp и jump
Аноним 15/02/18 Чтв 19:14:27  1139518
>>1139297
Спасибо!
Аноним 15/02/18 Чтв 19:19:47  1139522
>>1139517
нет, свитч-кейсы оптимизируются в O(1), если могут

https://godbolt.org/g/sTqvj7
Аноним 15/02/18 Чтв 21:13:26  1139620
OBHEr1J.png (1009Кб, 2000x2210)
slide6.jpg (63Кб, 960x720)
cvscpp.jpg600x3[...].jpg (46Кб, 600x381)
>>1139427
Не, не утомил)
В первую очередь определись с тем, что тебе интереснее - какая конкретно область тебя интересует (может тебе хочется железки программировать, писать драйвера для GPU, или там Движки писать для игр).

Твой вопрос очень сильно похож на:
"Какой язык учить? немецкий, японский, итальянский или иврит?"
Без доп. информации я не смогу нормально ответить)

__________
Если ты точно не знаешь, или еще не определился с областью, то тогда три КЛАССИЧЕСКИХ варианта для старта:

1. Архаичный вариант (Turbo Pascal), неплох для совсем новичков, чтобы пройти именно след. темы: Алгоритмизация, Структуры данных, Array, functions, procedures, input/output stream, и тд. Потом перескакивают на прагматические языки, на которых можно будет зарабатывать.
В отличии от C, имеет понятный для новичков синтаксис.

2. Более сложный вариант (C). В начале будет сложнее, но зато не нужно тратить время на Turbo Pascal. Изучая язык, ты столкнешься со всеми важными топиками: Алгоритмы, структуры данных, looping, conditional statements, память, stack, heap, calling conventions, functions, functions returning void (procedure), linker, compiler, input/output streams, descriptors, pointers, constant values, ascii, posix/winapi, memory allocations/deallocations/reallocation и т.д.

3. Самый простой в начале это Python. Но многие моменты (по типу адресной арифметики, указателей (pointers), структуры данных, типы, и почти все выше перечисленное из пункта 2 - пройдут вскользь, а следовательно - будет плохая база, если ты соберешься делать что-то крутое и продвинутое. Тот же CPython будет уже так просто не заюзать. Но зато, на нем ты быстро можешь заценить результат твоих трудов, сможешь делать более крупные задачи раньше чем на C или C++. Начинать вкатываться в программирования с применением этого языка, это как - учиться вождению на Mercedes S Class, а потом придется вдруг пересесть на Subaru (у которой еще движок не собран), а потом вообще в копейке придеться копаться. К хорошему быстро привыкаешь. Не советую начинать вкатываться с этого языка.
_______________

Прямой ответ на твой вопрос:

C++ не бывает без C. Используя C++, ты так или иначе юзаешь C.
А юзая C ты всегда используешь часть C++.
С лишь подмножество C++.

Если ты новичок, то иди по пункту 2 (выше).
В противном случае бери любую Толстую книжку по C++ и прорешивай, осмысливай все что там написано. В таких книжках косвенно объясняется весь твой C. А затем начинается специфика самого C++. Параллельно можешь, смотреть канал - "TheCherno" на youtube. Как только наберешься умных слов и практики, начинай мутить сколько-нибудь сложные программы (десяток консольных программ и пару графических). Дальше ищи работу стажером.
Вообщем, действуй!! Карты еще могут сто раз переиграться.
Аноним 15/02/18 Чтв 21:26:55  1139635
>>1139620
Спасибо за такие полные развернутые ответы!

Вообще, я не особо нуб. Я два месяца до этого кодил на C#, но мне захотелось чего-то более низкоуровневого.

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

Кстати, насколько сильно нужна физика программисту?
Аноним 15/02/18 Чтв 21:31:44  1139645
>>1139635
Астрофизика, говорят, нужна
Аноним 15/02/18 Чтв 21:33:44  1139648
>>1139645
Я играл в kerbal space program. Я знаю ее.
Аноним 15/02/18 Чтв 21:34:18  1139649
>>1139635
А если серьезно, то вообще не нужна. Именно для программирования физика не нужна. Программисту нужно знать алгоритмы, а анализ этих самых алгоритмов происходит с помощью всеми любимой математики.

Если речь идёт о разработке движков, то, опять же, всё зависит от конкретной задачи, т.к. такие штуки обычно создаются командой, где есть четко распределенные роли.
Аноним 15/02/18 Чтв 21:35:55  1139652
>>1139649
А то мне бухой батя втирал про ее важность.
Аноним 15/02/18 Чтв 21:39:28  1139657
>>1139652
Ну, изучать CS обычно начинают с самого "низа", т.е. с самого базового устройства ПК (устройство процессора, транзисторы, логические вентили, триггеры и т.д.). Может он умудрился связать с физикой работу транзистора, например?
Аноним 15/02/18 Чтв 21:46:14  1139669
>>1139657
Видимо да. Он еще с ламповыми компами работал...
Аноним 15/02/18 Чтв 21:53:41  1139678
Жрется ли память при абстнакциях?
Аноним 15/02/18 Чтв 22:09:22  1139712
Сап. Читаю книгу по джаве Шилдта, там такие слова:
>В C++ можно определить значение, которое будет принимать параметр, при вызове функции без аргумента, соответствующего этому параметру."

Это вроде как он на вариадики намекает? Или это про обычную перегрузку void foo(int p) <===> void foo()?
Аноним 15/02/18 Чтв 22:20:44  1139738
>>1139712
http://en.cppreference.com/w/cpp/language/default_arguments
Аноним 15/02/18 Чтв 23:11:54  1139804
>>1139635

Я тебе отвечу конечно, но тебе лучше начать решать практические задачи (больше практики, меньше форумов на болтовню).

Физика тебе как-таковая ненужна, если ты будешь программировать Software. Но она дает, некоторые фичи для тебя, как для будущего инженера, а именно знание и понимание физических процессов (напр. процесс кипения, процесс перемещение объектов, процесс изменения состояний какого-либо вещества, процесс движения частиц (в зависимости от агрегатного состояния - газ, плазма, жидкость, тверд. тело), интерференция волн, и т.п.). Таких процессов просто овер 9999999999, поэтому нет смысл это все досконально изучать.

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

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

Аноним 15/02/18 Чтв 23:18:11  1139810
>>1139804
UPD:
Если че, я оффаюсь на пару недель. Много работы.

А тебе анончик здоровья и воли, не ленись и все будет оки-доки. =)
Аноним 16/02/18 Птн 00:43:58  1139913
Какой проект можно создать, чтобы он выглядил нормально в портфолио(я же правильно понимаю, что джуна без хотя бы парочки проектов никто даже рассматривать не будет?). У меня была идея кое-что запилить на boost asio, но по сути же это будет куча функционала библиотеки а поверх немного моей логики. Про OpenCV и SFML тоже думал, но в обоих случаях надо лопатить огромные библиотеки ради написания достаточно простеньких вещей. Делал свои реализации стандартных вещей(библиотеки для работы с большими числами, математики кватернионов, обертку для сокетов и tcp/udp соединений), но быстро бросал, потому что это всё уже тысячу раз делали и много лучше чем я. Может у вас есть какие мысли?
Аноним 16/02/18 Птн 00:52:57  1139922
>>1139913
блокчейн
Аноним 16/02/18 Птн 01:01:53  1139928
>>1139922
Серьёзно? Это же какое-то дануство, не? Не, конечно, можно как-то сделать это более интресно, но разве в этом есть что-то кроме модного слова?
Аноним 16/02/18 Птн 01:18:10  1139947
>>1139913
boost asio это очень круто, если сделаешь даже говночат
Аноним 16/02/18 Птн 01:32:05  1139956
>>1139947
Хм, я даже не думал, что это будет кому-нибудь интресно, а вот если взять идею говночата и на него накрутить ssl, всякий функционал в виде комнат, конф, может гуи, возможность передавать зашифрованные файлы и тп. Это нормальный проект для портфолио?
Аноним 16/02/18 Птн 03:03:53  1140022
>>1139947
А что по распространению либ? Вот есть буст асио, а есть ливень, а есть вангл. На что из этого стоит посмотреть в первую очередь?
мимо тоже хочу написать хоть говночат
Аноним 16/02/18 Птн 03:04:29  1140023
>>1140022
Ливень -> либивент
Аноним 16/02/18 Птн 11:33:59  1140091
>>1140022
буст асио скоро в стандарте будет. Стандарт > все остальное.

>>1139956
если ты просто сделаешь говночат с комнатами и личкой - уже отлично.
Аноним 16/02/18 Птн 12:09:45  1140122
>>1139804
Спасибо, анон.
пока не могу практиковаться ибо ноутбук продать пришлось
Аноним 16/02/18 Птн 12:14:43  1140124
>>1139913
>SFML
Не такой он огромный.
Аноним 16/02/18 Птн 14:41:57  1140218
image.png (368Кб, 1920x1080)
Что не так?
Аноним 16/02/18 Птн 15:11:36  1140237
Почему во многих крутых фреймворках пишут свои контейнеры, которые схожи с теми, что есть в стл?

У нас с другом две теории, он считает что они пишут более производительные/оптимизированные варианты. Я считаю, что они скорее расширяют как-то функционал и серьезно оптимизировать стл не получиться.(Иначе почему это еще не в стл?). Есть еще варианты?
Аноним 16/02/18 Птн 15:18:55  1140241
>>1140237
Видимо стл слишком тяжеловесен для их нужд?
Аноним 16/02/18 Птн 15:46:27  1140263
Стоит ли кидать в гитхаб текстовый рогалик? Или работодателю будет ПОХУЙ?
Аноним 16/02/18 Птн 15:49:13  1140266
Пацанлар, допустим, я решил написать свой велосипед-аналог list. Как реализовать удаление элементов правильно? Иначе же хуита выходит! Всем элементам нужно сместится на единичку, что при больших объемах затруднительно?
Аноним 16/02/18 Птн 15:58:10  1140280
Captured1.png (132Кб, 1254x883)
>>1140266
Посмотри «Mastering Algorithms with C» (Kyle Loudon), там в картинках рассказано.
Аноним 16/02/18 Птн 16:03:08  1140283
>>1140263
Стоит.
Аноним 16/02/18 Птн 16:03:54  1140284
>>1140263
Работодатель посмотрит на то, какие используешь указатели, как оформлен код, нет ли диких констъюкций вроде оператора возврата из середины функции и т.д.
Текстовый режим или графика — менее важно. По крайней мере, насколько знаю лично я (лично).
Аноним 16/02/18 Птн 16:05:59  1140288
>>1140284
>Работодатель посмотрит на то, какие используешь указатели, как оформлен код
То есть их не волнует просто наличие/не наличие.
Аноним 16/02/18 Птн 16:06:30  1140289
>>1140218
не прилинковал библиотеку

>>1140237
STL обязана соблюдать контракт, написанный в стандарте. Стандарт позиционируется как универсальная штука-дрюка. Свои велосипдеы, если будут писаны крутыми чуваками - конечно лучше. Можно в векторе сделать Small Vector Optimization, можно изменить паттер аллокации с x2 на что-то более сложное. Можно нахуй выкинуть все эксепшены еще. Вариантов так-то много очень. Та же хэш-таблица может быть реализована разными способами.

>>1140263
Кидай конечно.

>>1140266
В варианте листа ты просто соединяешь линками предыдущий и следующий элемент. А текущий нахуй удаляешь потом.
Аноним 16/02/18 Птн 16:12:17  1140293
IR Stalin.jpg (23Кб, 428x342)
>>1140288
Так, а треугольные скобки у него для множественного наследования?
Расстрелять.
Аноним 16/02/18 Птн 16:28:38  1140302
>>1140293
>треугольные скобки для множественного наследования
Так делают?
Аноним 16/02/18 Птн 16:30:24  1140306
>>1140293
>множественного наследования
Уже стоит растрелять.
Аноним 16/02/18 Птн 16:53:20  1140322
Я написал проект. Ни разу не тестил. Нажал кнопу запуска... все заработало с первого раза... что за хуйня?
Аноним 16/02/18 Птн 17:11:55  1140337
>>1140322
Теперь попробуй написать что-то сложнее, чем Hello world
Аноним 16/02/18 Птн 17:18:35  1140344
>>1140337
В этом то и прикол, что я написал крестики и нолики с ИИ...
Аноним 16/02/18 Птн 17:34:29  1140351
Есть аналог system("PAUSE")? Эта функция слишком медленна для моей задачи.
Аноним 16/02/18 Птн 17:36:38  1140352
>>1140351
_getch()
Аноним 16/02/18 Птн 17:39:18  1140353
>>1140351
system("cls")*
Аноним 16/02/18 Птн 18:05:49  1140368
>>1140353
Взять хэндл на стдаут и насрать в буфер при помощи оснвого апи
Аноним 16/02/18 Птн 18:26:07  1140385
>>1140368
Лол. Я так и сделал, думал что говнокод сраный.
Аноним 16/02/18 Птн 19:44:16  1140438
Если я в map нахуячу разного невпопад в духе:

map[0xF4] = "asd";
map[0x09] = "ffgf";
map[0xAB13] = "eed";
map[0x00] = "cvcccc";
map[0x05]= "ddd";

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

Допустим, в данном примере std::map<int, std::string>
Аноним 16/02/18 Птн 19:48:30  1140442
>>1140438
Сортировка по ключу идет, а не по значению
Аноним 16/02/18 Птн 21:01:59  1140472
>>1139678
https://www.youtube.com/watch?v=_fu0gx-xseY
Аноним 16/02/18 Птн 21:53:13  1140501
Cтарый хрен, сука. На хую вертел Седжвика и его книгу. Примеры - самое кривое, что я видел в своей жизни после Кочана
Аноним 16/02/18 Птн 22:23:57  1140516
>>1140237
Др. аноны уже все расписали. Можешь глянуть EA STL, как раз писалась для перформанса и юзабилити.
Аноним 16/02/18 Птн 22:28:17  1140518
>>1140351
std::cin.ignore();
std::cin.get();
Аноним 16/02/18 Птн 22:46:17  1140524
>>1140501
Мне почему-то кажется, что они специально так сделаны, чтобы у тебя горело и ты разбирался.
дважды кидал книга на пол, когда читал обход бинарного дерева
Дойди до сортировок анон, дальше попроще
Аноним 16/02/18 Птн 22:47:13  1140525
>>1140524
*книгу
слепой дебил
Аноним 17/02/18 Суб 00:45:26  1140578
image.png (15Кб, 401x241)
https://ideone.com/zy8aBH
При завершении программы выдает ошибку. На сколько правильно я создал алгоритм увеличивающегося массива.
В прошлый раз я приходил сюда с этим же алгоритмом и мне сказали использовать vector. Не уже ли нельзя нормально реализовать программу с увеличивающимся массивом?Жду ваших советов.
Аноним 17/02/18 Суб 00:49:58  1140579
>>1140578
https://en.wikipedia.org/wiki/Variable_shadowing
28 строка
Аноним 17/02/18 Суб 00:55:17  1140581
>>1140578
1)Ты увеличил n и лезешь за границу первого массива в цикле на 24 строке.
2)Ты не удаляешь первыц массив после копирования во второй и переопределяешь в 28 строке
Аноним 17/02/18 Суб 00:59:03  1140583
>>1140578
А да, ты еще и в 28 строке сокрытие имени делаешь, как правильно заметили. Короче смотри правило. Если ты переопределяешь переменную, инициализированную через new,то ее нужно скопировать, удалить, создать, скопировать.
Аноним 17/02/18 Суб 01:33:01  1140596
>>1140501
Потому что алгоритмы нужно учить по Кормену (и Ко) или Кнуту.
Аноним 17/02/18 Суб 02:17:58  1140613
>>1140501
Когда главы разбираешь, там есть текст описания алгоритма и есть текст в рамке с программой, читай сначала текст в рамке, сразу начнешь понимать текст в книге при описании алгоритма
Аноним 17/02/18 Суб 11:27:22  1140741
image.png (14Кб, 400x168)
>>1140579
>>1140581
>>1140583
Это другой код здесь я удаляю оба массива
https://ideone.com/fPExiY
Примерно месяц назад я приходил сюда с таким же кодом, мне сказали используй вектор, а затем спросили зачем ты создаешь и удаляешь массивы по два 2 раза, но на мой взгляд все логично. Вообще вся эта проблема пошла с лабораторной работы по программированию. Тогда мы долго с учителем сидели и думали что не так, ну затем он тоже сошелся на том что массив объявленный внутри цикла невидно в другой части программы. Вчера я написал программу где я не удаляю массив arr_one а просто присваиваю ему другой размер и у меня впервые результат был верный я ввел 1 2 3 и мне вывело 1 2 3. Но только выводило ошибку. До этого на лабораторной тоже все было нормально, но в конце мне выводило массив не с моими числами, а со случайными числами. Теперь у меня код примерно такой же как на лабораторной. Но теперь выдает вот эту ошибку.
Аноним 17/02/18 Суб 13:04:05  1140764
>>1140741
Я тебе уже ответил. Ладно, я сегодня добрый, поэтому разжую тебе всё , но лабы всё равно идут нахуй.
Разберем твой говнокод по шагам
Ты инициализируешь n=1. Переменная k, которая на 1 всегда меньше n нахуй не нужна. Далее ты создаешь arr_one в куче размера n==1.
Далее ты заходишь в цикл, инициализируешь единственный элемент массива с клавиатуры. После этого спрашиваешь добавить или нет.
Если да, то ты инкреметируешь n. На первой итерации цикла оно становится n==2.
Далее ты создаешь arr_two размера n==2.
Заходишь в цикл с условием (i=0; i<2;i++)
При i==0 arr_two[0]= arr_one[0]
При i==1 arr_two[1]= arr_one[1]
Но arr_one у тебя размера 1, поэтому элемента arr_one[1] не существует и ты вылазишь за границу массива.
Исправь условие в цикле на i<n-1
И добавь в конце функции delete [] arr_one;

А вообще за ебучий месяц ты мог всю блядскую книжку зазубрить, но нет, пацаны помогите, я сам не хочу разбираться в том, что наваял. А теперь иди читать книжки и доебывать своего мудака препода
Аноним 17/02/18 Суб 13:13:15  1140768
>>1140764

https://ideone.com/ExAbId
Все равно ошибка
Аноним 17/02/18 Суб 15:14:09  1140812
>>1140768
ты совсем долбоеб?
Аноним 17/02/18 Суб 15:23:25  1140820
>>1140812
ну давай скажи что не так
Аноним 17/02/18 Суб 15:29:09  1140823
>>1140820
Сотри весь код и напиши заново, без всех этих new и delete, никто ими в современном мире уже не пользуется, всю необходимую информацию тебе уже дали. Если твоя цель - просто сдать лабу, пройди нахуй и не трать наше время на дваче, лол, время ну вы поняли
Аноним 17/02/18 Суб 15:32:08  1140825
>>1140823
даже несмотря на то что программа выдавала, ошибку лабу мне зачли. Информацию необходимую мне не дали. Мне сказали что сделать я сделал, все равно не работает.
Аноним 17/02/18 Суб 15:33:19  1140826
>>1140825
хах как смешно я запятую поставил
Аноним 17/02/18 Суб 17:10:22  1140906
https://ideone.com/5cmvPS
Почему выдает только 3 названия.
Аноним 17/02/18 Суб 17:15:43  1140911
>>1140906
srand нужно вызвать один раз в самом начале.
Аноним 17/02/18 Суб 17:17:40  1140913
>>1129255 (OP)
Котаны, джаваблядок в треде: какие шансы у меня вкатиться в разработку на C++, если я уже привык к тому что меня неплохо кормят? В теорию программировани умею, инженерный бэкграунд и инглиш в наличии. Просто внезапно осознал, что занимаюсь какой-то хуйнёй.
Аноним 17/02/18 Суб 17:20:27  1140918
>>1140913
>что занимаюсь какой-то хуйнёй
с технологией никак не связано, смысла тебе перекатываться нет
Аноним 17/02/18 Суб 17:21:56  1140921
>>1140918
Всё так плохо?
Аноним 17/02/18 Суб 17:59:09  1140949
image.png (267Кб, 1920x1080)
Что за хрень? Схуяли они меня ограничивают, пидоры. Скоро блять вооббще хуй соснуть без их слова нельзя будет.
Аноним 17/02/18 Суб 18:41:29  1140962
>>1140949
Во-первых, ты пишешь на С, поэтому ты попутал тред. Во-вторых, если все же ты пишешь на С++, то используй iostream и потоки ввода-вывода. Во-вторых, conio.h НЕ является файлом стандартной библиотеки, вместо этого лучше используй getchar() из stdio.h (в С++: cstdio), или cin.get() из iostream.
Аноним 17/02/18 Суб 19:44:55  1140993
>>1140921
С одной стороны мне нравится, что я на С++ пишу охуенно сложные вещи (сейчас на работе виртуализацией файловой системы занимаюсь, кернельный драйвер пишу) - с другой стороны, у меня иногда прям истерики, что кто-то шлепает формы копипастой на ангуляре, а я реально очень сильно напрягаю голову.
Аноним 17/02/18 Суб 19:47:56  1140998
>>1140993
Ну и пусть, зато ты ГЕНИЙ, а они ПИДОРЫ.
Аноним 17/02/18 Суб 19:50:18  1140999
>>1140962
Си - подмонжетство С++. Не выебывайся, умник.
Аноним 17/02/18 Суб 21:43:14  1141100
>>1140999
Страуструп, плес.
Невероятно, но факт Аноним 18/02/18 Вск 02:20:04  1141267
Следующий код не скомпилируется:
int main()
{
int a[10], b[10];
a = b;
}

Но при этом в стандарте нельзя найти никаких правил, которые бы запрещали такой код.
Аноним 18/02/18 Вск 02:36:41  1141276
>>1141267
>Но при этом в стандарте нельзя найти никаких правил, которые бы запрещали такой код.
Да неужели.
Objects of array type are not modifiable lvalues, and although their address may be taken, they cannot appear on the left hand side of an assignment operator.
Аноним 18/02/18 Вск 03:02:39  1141290
>>1141276
>Objects of array type are not modifiable lvalues
Это с цепепереференс, верно? А я говорил что в стандарте нельзя найти.
Кстати,
http://eel.is/c++draft/basic.lval#10: "An lvalue is modifiable unless its type is const-qualified or is a function type."
Поэтому откуда взята информация на цепепереференс — непонятно.
Аноним 18/02/18 Вск 04:03:25  1141302
>>1141290
>откуда взята информация на цепепереференс — непонятно
Точнее, понятно: откуда-то из прошлого. Из C стандарта или из старой версии C++-стандарта. C++ стандарт до сих пор ссылается на отсутствующее правило:
http://eel.is/c++draft/dcl.array#7 [ Note: Conversions affecting expressions of array type are described in [conv.array]. Objects of array types cannot be modified, see [basic.lval]. — end note ]
Только вот [basic.lval] говорит то, что я процитировал выше. Ни слова про массивы.

Так что вот так.
Аноним 18/02/18 Вск 09:10:28  1141335
Пишу FTP клиента, и в протоколе FTP есть такая команда как PORT, вместе с которой я должен передать IP адрес клиента и порт, к которому сервер будет подключаться и по которому будет передавать данные. Вопрос: как получить IP адрес клиента? Именно тот, что например я вижу на 2ip.ru (мой IP в сети интернет, или типо того. Я не силен в сетях пока что).
Аноним 18/02/18 Вск 09:14:01  1141336
>>1141267
>>1141290
Но ведь логично, что это нельзя сделать - не зная, сколько элементов лежит в массиве пытаться его перезаписать - гиблое дело, и хуй знает чем бы оно кончилось.
Аноним 18/02/18 Вск 13:28:55  1141410
>>1141336
>Но ведь логично, что это нельзя сделать
Может быть.
Но внятно написанных формальных запретов это делать нет.

Это, конечно, не проблема. Просто такой маленький забавный факт. Возможно, этот дефект когда-нибудь пофиксят.
Аноним 18/02/18 Вск 13:54:35  1141420
>>1141335
getpeername()
Аноним 18/02/18 Вск 14:35:19  1141441
Почему std::cout быстрее printf?
Аноним 18/02/18 Вск 14:35:59  1141443
>>1141441
всегда медленнее был
Аноним 18/02/18 Вск 14:39:19  1141446
>>1141443
Кто?
Аноним 18/02/18 Вск 15:24:14  1141478
Как объявить через typedef прототип для scanf()?
пытаюсь делать так:
typedef int(__cdecl scanfPrototype) (const char format);
но потом обсираюсь в
scanfPrototype read = &scanf;
Типа сигнатуры не те. Действительно, у scanf там еще ",...". Так вот, как это указать в прототипе ИЛИ как еще можно кроме std::cin >> var и scanf("%d", &var) считать инт в переменную? Желательно без считывания строки с дальнейшей конвертацией в int. Или все эти scanf и cin изолированно от меня всё равно конвертят ввод пользователя из ascii в нужный тип?
Аноним 18/02/18 Вск 15:24:42  1141479
>>1141478
Былять, разметка съела указатели. Ну ты понел
Аноним 18/02/18 Вск 15:58:25  1141505
>>1141478
>Как объявить через typedef прототип для scanf()?
typedef decltype(scanf) scanfPrototype;

>Или все эти scanf и cin изолированно от меня всё равно конвертят ввод пользователя из ascii в нужный тип?
Ну не телепатически из его головы же читают.
Аноним 18/02/18 Вск 16:03:51  1141506
>>1141505
>typedef decltype(scanf) scanfPrototype;
Шаман, однако. Спасибо
Аноним 18/02/18 Вск 16:09:05  1141509
.jpg (8Кб, 480x80)
>>1141478
> scanfPrototype read = &scanf;
auto read = &scanf;
Аноним 18/02/18 Вск 16:12:21  1141510
>>1141478
> через typedef
Если не пишешь на с, закопай обратно.
https://ideone.com/DuT52u
Аноним 18/02/18 Вск 16:19:20  1141512
>>1141510
От __cdecl не сломается?
Аноним 18/02/18 Вск 16:28:20  1141516
std::vector<T> vec;
// какой-то код, сующий в vec, допустим, 3 элемента

`&vec[0] + 2` и `&vec[2]` — не одно и то же, первое приводит к UB на любой реализации вектора, у которой push_back реализован по стандарту, т.е. работает за амортизационно константно евремя.
Аноним 18/02/18 Вск 16:29:13  1141517
>>1141516
В поле тема я написал "Трудно поверить, но факт", но оно почему-то не отобразилось.
Аноним 18/02/18 Вск 22:13:30  1141681
Есть ЭТО:
void SetKeyCallBack(KEY_CALLBACK callback);
typedef void (CALLBACK * KEY_CALLBACK)(int iRow, int iColumn, bool bPressed);

Как мне получить два инта и бул? Да, я умственно отсталый, пожалуйста помогите и объясните во всех деталях.
Аноним 18/02/18 Вск 23:13:35  1141712
>>1141681
тебе их передадут прямо в твой коллбек который ты зарегестрируешь через SetCallback

мимотян, пруфов не будет
Аноним 19/02/18 Пнд 02:02:23  1141820
.PNG (244Кб, 2560x1402)
Решил я тут вкатиться в кодинг на C++ + Qt. Объясните, почему статически слинкованные приложения имеют такой-то размер? И это простой хеллоу ворлд. DEBUG-версия вообще линкуется неадекватно долго (минуты три).
Аноним 19/02/18 Пнд 02:31:44  1141824
Как нормально скачать и подключить ипаный буст на clion?
Аноним 19/02/18 Пнд 07:31:45  1141858
>>1141516
Проверь, &vec[0] и vec.begin() - одно и то же?
Аноним 19/02/18 Пнд 09:00:43  1141865
>>1141820
Нормально все. Ты при статической линковке весь рантайм собираешь и тянешь. А ликовка долгая, т.к. плюсы с шаблонами.
Аноним 19/02/18 Пнд 09:31:32  1141869
>>1141820
Собери релизную версию без отладочной инфы, будет меньше.
Аноним 19/02/18 Пнд 09:39:59  1141870
>>1141869
> With Visual C++ (and other Microsoft compilers) on Windows, symbols aren't part of the binaries. Instead, they are stored in separate files called "Program Database" files (.pdb files). Just don't provide the .pdb files.
Отладочной инфы там нет.
Аноним 19/02/18 Пнд 13:10:10  1141977
>>1141870
Только вот оптимизатор уменьшает код все равно. Иногда в разы.
Аноним 19/02/18 Пнд 13:16:54  1141979
>>1141977
Так релизная оптимизированная версия весит 23.4Мб, а неоптимизированная 57.2Мб + 180Мб отладочной инфы в отдельном файле.

Может это из-за того, что я использую Intel C++ Compiler? Я его по большей части спиздил с рутрекера и поставил потому, что MSVC отображает ошибки конпеляции на русском языке и Qt Creator не в состоянии их отобразить. Подключить clang-cl к Qt Quick я не асилил, а icl полностью мимикрирует под MSVC и для его подключения достаточно заменить батник инициализации и mkspec.
Аноним 19/02/18 Пнд 13:29:27  1141988
>>1141979
> Qt Quick
Qt Creator если быть точнее.
Аноним 19/02/18 Пнд 15:03:28  1142019
>>1141979
Английскую версию мсвц ты не смог поставить?
Аноним 19/02/18 Пнд 15:27:19  1142030
>>1142019
Она мультиязычная изначально, лол. На SO есть старые способы удаления языковых пакетов, но с VS2017 они не работают.
Аноним 19/02/18 Пнд 15:36:17  1142039
Пишу в Code Blocks с SFML, пытаюсь открыть файл, пишет undefined reference to. Файл лежит в той же папке, кириллицы в пути нет, расширение поддерживается. В чём может быть ошибка?
Аноним 19/02/18 Пнд 15:37:40  1142041
>>1142039
> Пишу в Code Blocks
Вот здесь
Аноним 19/02/18 Пнд 15:41:32  1142045
>>1142041
Есть нормальные альтернативы кроме VS?
Аноним 19/02/18 Пнд 15:59:35  1142062
>>1142045
Самый удобный инструмент разработки - это VS. В нем пишут вообще все, кроме поехавших вимоблядей, и всяких унылых дядь с эмбедом, где свои инструменты.
Аноним 19/02/18 Пнд 16:00:23  1142063
>>1142045
если ты хочешь делать упор на изучение qt, но знаний у тебя явно маловато, то наверное удобней будет поставить какой-нибудь user-friendly вариант линукса, кодить в qt creator и в качестве компилятора использовать gcc
но если говорить вообще - похоже, у тебя явно не хватает бэкграунда чтобы спокойно делать что-то рабочее на qt
Аноним 19/02/18 Пнд 16:01:24  1142065
>>1142063
да еще: линукс ты можешь поставить на виртуалку, в этом есть множество преимуществ
Аноним 19/02/18 Пнд 16:07:18  1142072
Ответь на пару вопросов, плюсач
1. Что такое embedded?
2. Реально ли писать на Qt в VS?
Аноним 19/02/18 Пнд 16:11:03  1142076
>>1142072
> 2. Реально ли писать на Qt в VS?
Ну как бы да. Только вот официальный аддон так и не допилен. Какие-то подвижки есть, но например Qt Quick не поддерживается вообще и в ближайшее время не будет. Только если сам хочешь ебаться с cmake (который в последние VS, кстати, встроен).
Аноним 19/02/18 Пнд 16:18:40  1142082
>>1142072
1. Программы для всяких кастомных крошечных микросхемок. Обычно там свои IDE (не всегда) и тулчейны (всегда), и это не совсем типичный С++, скорее просто С с классами. У данных девайсов могут веселейшие ограничение типа 32кб оперативки, отсутствие Heap'a вообще, и прочее.

2. Да, писал с официальным аддоном, все норм. Причем цмейк тут у предыдущего оратора я не понял, но qtquick да, не поддерживался. Мое скромнейшее имхо в том, что удобство студии перевешивает убогость qt creator'a, даже если надо немного поебстись с аддоном.
Аноним 19/02/18 Пнд 17:08:59  1142139
>>1142082
Получается, Arduino - сорт оф эмбед?
Аноним 19/02/18 Пнд 17:44:39  1142185
Антон, я пишу не на плюсах, а на си с классами. Что делать?
Аноним 19/02/18 Пнд 17:51:27  1142189
.jpg (80Кб, 600x738)
>>1142185
Аноним 19/02/18 Пнд 18:05:21  1142204
>>1142189
В том то и дело, что на это у меня агрессия.
Аноним 19/02/18 Пнд 19:43:24  1142345
Бля, как я заебался, в общем пытаюсь сделать свой велосипед - режим подсветки для клавиатуры
Аноним 19/02/18 Пнд 19:46:22  1142351
>>1142345
Бля, обосрался даже тут
Детектить кейпресы - ✔
Делать всякую хуйню - ✔
Иметь хоть какую-то логику - ❌
В общем че я сделал, завел вайл который просит Сдк клавы задектить мне кейпрес, если детектит то срет мне в другую функцию, а я в этой функции делаю что-то еще, теперь блять нужно как-то сделать так, чтобы если я нажал кнопку, эта кнопка подсветилась, попытался через треды и детач, но получилась хуйня, жму кнопку и жму её опять, два треда как альфачи дерутся за ебаную посдветку и кнопку хуярит то ярко, то тускло, пока не погаснет, как вообще логику сделать для этой хуеты?
Аноним 19/02/18 Пнд 19:46:58  1142352
>>1142185
что хочешь то и делай. тебя никто не заставляет использовать все фичи языка. если твои "си с классами" сообразны задаче, то пиши на них. как грится: "ты платишь лишь за то, что используешь".
Аноним 19/02/18 Пнд 19:48:09  1142354
>>1142351
Блять, опять обосрался, нужно сделать чтобы она не просто подсветилась, а ушла из полностью яркой в погашенную, 256 -> 0, такие дела, помогите или подкиньте идей каких-то
Аноним 19/02/18 Пнд 19:49:13  1142356
>>1142351
>завел вайл который просит Сдк клавы задектить мне кейпрес
цпу в соточку бьёт?
Аноним 19/02/18 Пнд 19:49:54  1142358
>>1142354
Ты хоть что за клавиатура скажи. И откуда SDK брал?
Аноним 19/02/18 Пнд 19:50:54  1142359
>>1142351
Ну учись бороться с race-condition, хули. Ебани там очередь какую-нибудь, блокировок понаставь.
Аноним 19/02/18 Пнд 19:52:28  1142361
>>1142356
Если бы там, с учетом того, что я сделал, должно было бить в 2 соточки, а бьет в 1 процент макс, это при этом что два вайла и куча потоков
>>1142358
CM masterkeys pro L rgb, брал с их сайта
>>1142359
Да я итак на кнопки очередь ебанул, че дальше делать не ебу
Аноним 19/02/18 Пнд 19:53:02  1142363
Двач, есть ли смысл делать геттеры/сеттеры когда в них смысла нет и отдать пользователям класса просто публичную переменную? Просто в отличии от других языков, в C++ я не видел что-бы кто-то оставлял в классах публичные переменные вместо геттеров/сеттеров.
Аноним 19/02/18 Пнд 19:55:27  1142368
>>1142363
Ну если под "пользователями" класса ты понимаешь себя любимого, то не похуй ли?
Аноним 19/02/18 Пнд 19:58:43  1142371
>>1142351
> В общем че я сделал, завел вайл который просит Сдк клавы задектить мне кейпрес,
Что-то я в их пдфе функция для получения клавиши не вижу: https://makerhub.coolermaster.com/custom-lighting/assets/sdk/sdk-document.pdf

Может просто сделаешь старый добрый глобальный хук в винде?
Аноним 19/02/18 Пнд 20:02:59  1142373
>>1142371
Да забей ты хуй на их SDK, я хук уже делал, да у них в SDK все есть(SetKeyCallBack()), там просто в самом SDK Тайваньские комментарии от 2008 года, а на сайте 3/4 SDK
Аноним 19/02/18 Пнд 20:07:30  1142379
>>1142373
Короче, почитал про эти рейс кондишон, пиздаааа, я ж головой ебанусь там, ну да ладно, пара вопросов:
Как можно избавиться от бесконечных циклов чтобы задектить кейпрес и можно ли вообще от них избавиться?
Как один тред бить по голове, если он лезет вперед другого и срет ему в руки?
Аноним 19/02/18 Пнд 20:07:32  1142380
>>1142373
Так в чём проблема? Ты хочешь убрать дребезг (debounce)? Ну, таймер тебе в руки. После прихода сообщения устанавливаешь таймер, по окончании которого он вызывает функцию установки цвета с последним сообщением. При каждом новом сообщении таймер сбрасывается, и пришедшее сообщение ставится последним пришедшим. И так для каждой клавиши.
Аноним 19/02/18 Пнд 20:08:49  1142384
>>1142380
> При каждом новом сообщении таймер сбрасывается
Точнее сбрасывается и устанавливается вновь.
Аноним 19/02/18 Пнд 20:16:37  1142390
>>1142380
Алсо, если есть такая логика: Нажатие -> Ярко -> Нажатие -> тускло, то чтобы не терять слишком быстрые нажатия клавиш, можно добавить Atomic-переменную, которая будет считать нажатия с момента последнего срабатывания таймера. Таким образом можно будет сохранить логику и при этом игнорировать слишком быстрые изменения.
Аноним 19/02/18 Пнд 20:19:46  1142394
>>1142390
> Atomic
Хотя её будет мало. Лучшеиспользуй полноценный мютекс. http://en.cppreference.com/w/cpp/thread/lock_guard
Аноним 19/02/18 Пнд 20:19:51  1142395
>>1142390
На счет атомиков гуглил, но чет хз, логика такая, нажатие->кнопка и 4 ближние к ней загораются ярко->изначальные 5 кнопок чуть тускнеют, загорается следующий слой кнопок(ряд/колонка + 1)->опять кнопки предыдущий стадии тускнеют(кнопки самой первой стадии уже почти погасли) загорается следующий слой и на этом следующие слои больше не загораются, все предыдущие уходят в фейд, вот на моменте фейда и нажатие кнопок которые задевают уже нажатые кнопки проблема
Аноним 19/02/18 Пнд 20:20:28  1142396
>>1142394
Бля, а мютекс может помочь, спасибо, попробую потестить потом
Аноним 19/02/18 Пнд 21:27:53  1142441
>>1142395
У тебя там лапша из ифов небось? Наворачивай MVC. Делаешь контроллер. Он подписывается и получает вызовы колбеки (тоесть метод контроллера передается как колбек в SDK). И связан с моделью. Модель (предположительно) сосоит из массива с яркостями кнопок. По вызову колбека контроллер передает модели инфу что нажата такая то кнопка (вызывает метод модели "кнопка нажата"). Модель обновляет свою инфу - пробегается по всем кнопкам и у всех кнопок где яркость больше нуля уменьшает яркость и добавляет в массив обновленных кнопок, после этого яркость нажатой кнопки и соседних повышается до максимума и их айдишки тоже добавляются в массив обновленных кнопок. После этого этот массив передается контроллеру. Контроллер разгребает массив обновленных кнопок и посылает в SDK команды с новыми яркостями. Все ждут нового колбека. Естественно, это как вариант. Может повляют какие именно возможности предоставляет SDK. Что-то подобное можно и на лапше ифов сварганить. Если совладаешь с таким то можешь дальше навернуть абстракций, например DI - всю логику по которой определяется яркость кнопок выделить в отделную стратегию. Модель будет заниматься только собственно хранением инфы, общением с контроллером и вызовами стратегии. Если тебе захочеться изменить правила по которымподствечиваются кнопки - тебе нужно будет только заменить стратегию.
Аноним 19/02/18 Пнд 21:37:58  1142451
image.png (58Кб, 512x719)
> атомиик!
> мьютекс!
> запускай таймер!
> наворачивай MVC!
А могли просто взять FRP-фреймворк и сделать throttle.
Аноним 19/02/18 Пнд 21:47:09  1142460
.PNG (42Кб, 977x643)
>>1142451
Только не throttle, а debounce, как я и писал. Можно сделать на https://github.com/Reactive-Extensions/RxCpp если нужен именно С++. Только вот нужно хоть как-то понимать что такое реактивное программирование, а он даже про мютексы не в курсе.
Аноним 19/02/18 Пнд 21:56:58  1142462
>>1142460
>Только не throttle, а debounce
Да, debounce более правильное название. Я решил сохранить терминологию из кода на картинке.
Аноним 20/02/18 Втр 00:15:12  1142545
>>1142189
Ох нахлебался я от парня, который темплейты как недо-миксины использовал. Просьба всему треду - используйте темплейты по назначению, а не как средство превратить код в кашу.
Аноним 20/02/18 Втр 03:03:10  1142577
>>1142030
на VS2017 инсталлятор жи, там все настраивается легко
Аноним 20/02/18 Втр 11:43:52  1142652
>>1142363
Геттеры/сеттеры вообще зло, особенно которые "лишь бы были". Могу пояснить поподробнее где-нибудь.
Аноним 20/02/18 Втр 12:25:39  1142681
>>1142652
Поясни-ка.
Аноним 20/02/18 Втр 12:56:16  1142700
>>1142681
Ну вообще всё помещается в одну фразу:
Don't ask for the information you need to do the work; ask the object that has the information to do the work for you.

Если у тебя весь код в геттерах и сеттерах, то это может (но не обязательно) свидетельствовать о проблемах в архитектуре.

Это не всегда так (а в каком-нибудь шарпе или спринге геттеры и сеттеры вообще являются НЕЗЫБЛЕМЫМ ЦЕНТРОМ МИРОЗДАНИЯ, вокруг которого всё крутится), так как некоторые хитрые алгоритмы работы с объектами не могут без этого обойтись (либо требуют один рефакторинг за другим снова и снова), поэтому если ты видишь, например, в плюсах, что тебе оба класса надо значительно перекраивать, чтоб изменить логику их работы, то можно вместо этого дать геттер в одну сторону или сеттер с поинтером/референсом в другую (тут уже тоже надо смотреть по ситуации, чтоб выбрать из двух зол меньшее, иначе иногда получаются совсем дикие цепочки, где референс/поинтер передается на 3+ родителя вверх / ребёнка вниз, потому что там что-то с ним надо сделать).

А создание геттера и сеттера для каждого поля — вообще слабоумие (ну или необходимость, если этого требует какой-нибудь слабоумный фреймворк, который не может адекватно воспользоваться конструктором), потому что это равнозначно public type x, но лишь с другой формулировкой. Инкапсуляция, понятное дело, идёт по пизде.

А вообще вот статья:

http://www.yegor256.com/2014/09/16/getters-and-setters-are-evil.html
Аноним 20/02/18 Втр 12:57:13  1142701
>>1142700
Туда же.
https://www.javaworld.com/article/2073723/core-java/why-getter-and-setter-methods-are-evil.html
Аноним 20/02/18 Втр 13:03:09  1142707
>>1142577
>>1142700
> а в каком-нибудь шарпе или спринге геттеры и сеттеры вообще являются НЕЗЫБЛЕМЫМ ЦЕНТРОМ МИРОЗДАНИЯ, вокруг которого всё крутится
Тому що это единственный способ сделать виртуальную переменную, которая определена в интерфейсе. Множественное наследование ведь не завезли.
Аноним 20/02/18 Втр 14:29:17  1142740
>>1142707
>множественное наследование не завезли
Интерфейсы для кого придумали?
Аноним 20/02/18 Втр 14:39:41  1142747
>>1142740
Ну так и переменные в интерфейсе можно определить только геттерами/сеттерами. Ты бы мой пост прочитал сначала.
Аноним 20/02/18 Втр 14:44:48  1142750
>>1142747
Что-то я слепой пиздец.
Аноним 20/02/18 Втр 15:41:33  1142780
>>1142394
Короче получилась хуета, которая послала мою многопоточность нахуй, шо делать не знаю...
Аноним 20/02/18 Втр 16:36:58  1142806
>>1142082
> Мое скромнейшее имхо в том, что удобство студии перевешивает убогость qt creator'a, даже если надо немного поебстись с аддоном.
Кстати, для студии рекомендую использовать недавно релизнувшийся verdigris. Там всего два hpp-файла добавить в проект. Тогда вместо emit, slots и прочих непотребностей можно будет использовать старые добрые макросы и не смущать intellisense и всякие статические анализаторы. Т.е. в итоге получается чистейший C++ без каких либо дополнений. Алсо, qt quick писать вполне себе можно. Просто нужно при создании проекта подключить в аддоне нужную библиотеку, и в готовый *.qrc-файл добавлять qml-формы с гуем. Ну и заменить сгенерированный main.cpp файл на qt quick-ный.

https://github.com/woboq/verdigris
Аноним 20/02/18 Втр 16:38:33  1142809
>>1142806
> рекомендую использовать недавно релизнувшийся verdigris
Только из недостатков: ему нужен C++14 конпелятор.
Аноним 20/02/18 Втр 19:32:48  1142964
Сап ананасы.
Хотел такой вопрос задать.
Начал учить плюсы (до этого был си диез) чисто для себя.
В последствии хочу вкатитца в ИИ/микроконтроллеры/реверс- инженегринг шото из этого (не хочу я ваш питон, нинужон он мне).
Взял книжку лафоре. Оч годная. Прохожу с примерами где-то 1 главу за 1-2 дня. День читаю главу\разбираю какую- никакую алгоритмитизацию примеров, другой день - решаю примеры с книжки и кодварса.
Вопрос. Сколько примерно времени пройдет, прежде, чем я начну понимать что к чему и куда мне двигаться ?
Аноним 20/02/18 Втр 19:52:23  1142992
>>1142809
Недостатком является отсутвтсие С++14 компилятора на твоей работе
Аноним 20/02/18 Втр 19:52:40  1142993
>>1142964
~полгода минимум, а то и год.
Аноним 20/02/18 Втр 19:53:46  1142995
>>1142964
> чем я начну понимать что к чему и куда мне двигаться ?
Для программирования мк C++ нинужен. Достаточно Си с классами, а на изучение этой хуйни много времени не уйдёт. Ты же не собираешься постигать template-fu? Для мк более важно понимать как работают процессоры, про организацию памяти, про способы взаимодействия с периферией и прочее. Короче работа с железом. Для нейросетей нужно изучать алгоритмы, и опять таки ЯП тут не так важен.
Аноним 20/02/18 Втр 19:56:06  1143001
>>1142992
Для MSVC требуется минимум версия 2017, поскольку он использует фичи C++17 для обхода багов компилятора. Там вообще хеадери пиздец какие сложные. Как такую хуйню вообще написать можно?

https://github.com/woboq/verdigris/blob/master/src/wobjectdefs.h
https://github.com/woboq/verdigris/blob/master/src/wobjectimpl.h
Аноним 20/02/18 Втр 20:01:30  1143011
>>1143001
Это не так сложно, как кажется. Надо понимать, что вся эта компайл-тайм параша - фактически свой собственный язык
Аноним 20/02/18 Втр 20:04:48  1143014
>>1143011
Там не просто теймлейты. Они ещё приправлены макросами и на всём это сделан синтаксический анализатор и транслятор.
Аноним 20/02/18 Втр 23:05:51  1143126
КТо нибудь пробовал к vs2017 прикрутить gcc вместо/рядом с vc++? Получилось? Есть ссылка на гайд рабочий? Как себя потом intellisence ведет?
Аноним 21/02/18 Срд 00:19:53  1143177
>>1143126
gcc только на ремоутной линуксовой машине, или локально через WSL.

Для локальной шиндоразработки вроде как-то clang\LLVM можно прикрутить, но не пробовал.
Аноним 21/02/18 Срд 12:42:41  1143347
Я недавно вкатился в C++ из C#. И мне кажется я пишу не на C++, а на C# со странным синтаксисом. Особенно касаемо генериков и абстрактных классов. Например мне нужен класс с двумя типами, которые должны наследоваться от interface1 и interface2 соответственно и должны иметь конструктор не принимающий аргументов.

В сишарпе я это опишу так:
public class azaza<T1, T2>
where T1: interface1, new()
where T2: interface2, new() {...}

В плюсах пишу так:
template <typename T1,
typename T2,
typename = std::enable_if_t<(std::is_base_of_v<interface1, T1> && std::is_constructible_v<T1>)>,
typename = std::enable_if_t<(std::is_base_of_v<interface2, T2> && std::is_constructible_v<T2>)>>
class azaza {...}

Это нормальный C++ код или надо делать как-то по-другому?
Аноним 21/02/18 Срд 12:50:28  1143356
>>1143347
> typename = std::enable_if_t<(std::is_base_of_v<interface1, T1> && std::is_constructible_v<T1>)>,
> typename = std::enable_if_t<(std::is_base_of_v<interface2, T2> && std::is_constructible_v<T2>)>>

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

static_assert(std::is_base_of_v<interface1, T1> && std::is_constructible_v<T1>);
static_assert(std::is_base_of_v<interface2, T2> && std::is_constructible_v<T2>);

вместо аргументов шаблона?
Аноним 21/02/18 Срд 15:41:04  1143437
>>1143347
И ещё один вопрос. Если я захочу использовать статический полиморфизм вместо динамического, то единственный нормальный способ проверить соответствие "интерфейсу" аргументов шаблона (пока не сделали концепты), это создать такие структуры:

template<typename T>
struct interface1_check
{
static_assert(std::is_class_v<T> && std::is_default_constructible_v<T>);
static_assert(std::is_same_v<decltype(std::declval<T>().method()), void>);
};

(в данном случае тип должен быть классом, иметь конструктор по-умолчанию и метод `method` который без аргументов возвращает `void`)

а затем наследовать эту структуру вот так:

template <typename T1>
class azaza: interface1_check<T1> {...}

?

Просто я не хочу, чтобы ошибки вылезали только когда полиморфный объект будет непосредственно использоваться. Хочу, чтобы всё вылезало ещё при создании класса azaza.
Аноним 21/02/18 Срд 15:59:00  1143450
>>1143437
Хотя, ещё можно сделать так:

template<typename T>
struct interface1_check_t
{
static constexpr bool value = std::is_class_v<T> && std::is_default_constructible_v<T> &&
std::is_same_v<decltype(std::declval<T>().method()), void>;
};
template<typename T>
constexpr bool interface1_check = interface1_check_t<T>::value;


template <typename T1>
class azaza {
static_assert(interface1_check<T1>);
...
}

Код выглядит красивее, правда сообщение об ошибке стало похуже.
Аноним 21/02/18 Срд 16:11:59  1143468
>>1143450
Наверное гибрид будет самым лучшим решением. Как-то так:
template<typename T>
struct interface1_check_t: std::true_type
{
static_assert(std::is_class_v<T> && std::is_default_constructible_v<T>);
static_assert(std::is_same_v<decltype(std::declval<T>().method()), void>);
//static_assert(std::is_same_v<decltype(std::declval<T>().method1()), bool>);
};

Тогда если будет много методов, можно будет сразу увидеть какой не совпадает.
Аноним 21/02/18 Срд 17:03:43  1143518
>>1143437
>>1143450
>>1143468
Это какой-то вайп?
Аноним 21/02/18 Срд 17:10:13  1143526
>>1143518
Чувак, похожу, шаблонов объелся. Несите сюда пуфон
Аноним 21/02/18 Срд 17:10:31  1143527
>>1143526
>> похоже
Извините
Аноним 21/02/18 Срд 17:22:22  1143548
>>1143518
Нет, я просто изучаю C++ и спрашиваю, правильно я делаю или нет. Вот придумал макрос для определения наличия метода в типе

#define PP_CAT(a, b) PP_CAT_I(a, b)
#define PP_CAT_I(a, b) PP_CAT_II(~, a ## b)
#define PP_CAT_II(p, res) res
#define LINE_NAME(base) PP_CAT(base, __LINE__)

#define HAS_METHOD(type, method, result) \
template<typename, typename = std::void_t<>> \
struct LINE_NAME(m) : std::false_type {}; \
template<typename U> \
struct LINE_NAME(m)<U, decltype(std::declval<U>().##method())> {\
static constexpr bool value = std::is_same_v<decltype(std::declval<U>().##method()), ##result>;\
}; \
static_assert(LINE_NAME(m)<##type>::value);

Теперь можно просто написать:

template<typename T>
struct interface1_check_t
{
static_assert(std::is_class_v<T> && std::is_default_constructible_v<T>);
HAS_METHOD(T, method, void)
HAS_METHOD(T, getBool, bool)
};

и выдаются очень красивые ошибки при несовпадении сигнатуры.
Аноним 21/02/18 Срд 17:45:49  1143585
>>1143548
Ты какую-то хуйню делаешь.
Аноним 21/02/18 Срд 17:47:42  1143588
>>1143585
Чому? Я "переизобретаю" концепты (которые обещают к C++20), чтобы компилятор не выводил кучу непонятных ошибок при работе с типами из шаблонов.
Аноним 21/02/18 Срд 18:26:43  1143627
>>1143548
Пиздец, хотел научиться программировать на C++, а тут такие страшные сообщения.

Это вы так реально программируете?
Аноним 21/02/18 Срд 18:31:17  1143630
>>1143627
Нет, это он балуется.
Аноним 21/02/18 Срд 19:19:01  1143688
>>1143627
> а тут такие страшные сообщения.
А что там страшного? Алсо, удалось упростить проверку. Теперь она выполняется один раз, а не два как в предыдущем варианте.

#define HAS_METHOD(type, method, result) \
struct LINE_NAME(struct) { \
template<typename U, typename = std::enable_if_t<std::is_same_v<decltype(std::declval<U>().##method()), ##result>>> \
static std::true_type test(void*); \
template<typename> static std::false_type test(...); \
}; \
static_assert(std::is_same_v<decltype(LINE_NAME(struct)::test<##type>(nullptr)), std::true_type>);
Аноним 21/02/18 Срд 20:19:50  1143730
>>1143627
я подобную хуету на работе пишу фо фан. Проект маленький, всем похуй, что там я и как хуярю. У меня там модерн С++ курильщика во всей красе, рофл
Аноним 21/02/18 Срд 21:23:00  1143794
Ииии, последняя версия:

#define HAS_METHOD(type, method, result, ...) \
template<typename... Args> \
struct LINE_NAME(struct) { \
template<typename U, typename = std::enable_if_t<std::is_same_v<decltype(std::declval<U>().##method(std::declval<Args>()...)), ##result>>> \
static std::true_type test(void*); \
template<typename> static std::false_type test(...); \
}; \
static_assert(std::is_same_v<decltype(LINE_NAME(struct)<__VA_ARGS__>::test<##type>(nullptr)), std::true_type>);

Теперь можно проверять как возвращаемый тип, так и типы аргументов.

HAS_METHOD(T, method, void) // возвращает void, аргументов нет
HAS_METHOD(T, method1, const bool&, int, bool, float) // возвращает const bool&, аргументы int, bool, float
Аноним 21/02/18 Срд 22:16:16  1143851
>>1143794
> так и типы аргументов.
Только вот он их почему-то не проверяет, только количество. При этом никак заставить его сделать это невозможно. Видимо какая-то "фича" `declval` либо я криворук.
Аноним 22/02/18 Чтв 00:06:21  1143956
>>1143730
В реальном коде я и близко к самописным темплейтам не подхожу и считаю их в почти любом проявлении вредными, что они должны быть только в библиотеках общего пользования и самим писать - только схватишь потом, поэтому настоятельно не рекомендую.
Но вот ради прикола и самообразования конечно можно. Например, я реализовал монады на концептах, которые "подключаются" к стандартным вещам вроде std::vector и std::optional. И можно делать вещи вроде
std::vector<int> x {1, 10};
auto y = x >>= [](int x) { return std::vector<int>{x, x*2}; };

Там примерно похожий уровень магии темплейтов, хотя концепты и позволили повысить читаемость.
Аноним 22/02/18 Чтв 00:11:14  1143964
>>1143851
>Только вот он их почему-то не проверяет, только количество
Посмотри в сторону is_invocable. Если нужны точные параметры, то придётся какой-нибудь трейт писать (или использовать бустовский). Смотри:
https://stackoverflow.com/questions/9065081/how-do-i-get-the-argument-types-of-a-function-pointer-in-a-variadic-template-cla
http://www.boost.org/doc/libs/1_41_0/libs/type_traits/doc/html/boost_typetraits/reference/function_traits.html
Аноним 22/02/18 Чтв 00:17:41  1143974
Что делать, если я ленивое хуйло и даже не могу прочитать первую книжку? Как заставить себя
Аноним 22/02/18 Чтв 01:29:41  1144011
Короче я ебанутый, но мне нужно нацти ответ на этот вопрос, есть консольная приложуха, в ней дрочево с битмапой, создаю битмапу 22на 6, крашу ее в красный, сохраняю как пнг, круто, теперь делаю функцию, которая мутит всякую хуцню с битмапоц и изменчет цвет раз в пол секунды или быстрее, да, я успеваю сохранять битмапу, но просомтр картинок не успевает так бытсро обновлятьсч и я из за этого пропускаю какие то моменты, вопрос следующий, как эту ебаную битмапу видеть как изображение в риалтайме???да я бы мог перецти на какую нибудь хуету вроде цлр, сделать канвас в канвас запихнуть битмапу и ноль проблемы, но я бы и собаку тоже мог выебать, но мне нкжно именно в консоли это все делать, думал на счет того, чтобы вывести в консоль тупо один и тот же символ и тупо красить отпут консоли в разные цвета, но там цвета ограниченные, вроде бы можно через констыли сделать ргб, но костыль нашел только один с нулем апвотов на стаке, так шо надежды на это особо нет
Аноним 22/02/18 Чтв 02:07:18  1144021
>>1144011
https://stackoverflow.com/questions/931093/how-do-i-make-my-program-watch-for-file-modification-in-c
Аноним 22/02/18 Чтв 05:26:08  1144051
А вот такой вопрос, есть ли какой простой способ сделать регулярку рекурсивной? Как я понял, в стандарте такая вещь не поддерживается, надо использовать буст или другую библу, но такой возможности нет. Суть проблемы - есть условная строка, которая разбивается на подстроки согласно регулярке, но эти сами подстроки тоже могут содержать подстроки и так далее.
Аноним 22/02/18 Чтв 07:21:31  1144057
>>1144051
Регулярные выражения, совершенно внезапно, могут матчить только регулярные языки. Это ограничение _частично_ обходится разными реализациями, но только частично. Погугли что такое регулярные языки и why you shouldn't parse html with regex.
Аноним 22/02/18 Чтв 08:20:32  1144064
>>1143964
> http://www.boost.org/doc/libs/1_41_0/libs/type_traits/doc/html/boost_typetraits/reference/function_traits.html
> The template argument F is a function type, note that this is not the same thing as a pointer to a function.
Видимо проблема в этом. У меня именно ссылка на функцию. А так я делаю так же как и стандартный std::invoke_result из C++17, (только вместо std::declval<Args>()... надо написать std::forward<Args>(std::declval<Args>)... чтобы он prvalue-ссылки не убирал). И даже если заменить мою самописную проверку на `invoke_result`, он тоже работает точно так же неправильно. А именно: все примитивные типы неявно приводятся друг в дружку, а вот типы классов он определяет нормально.
Аноним 22/02/18 Чтв 08:21:23  1144065
>>1144064
> У меня именно ссылка на функцию.
Точнее указатель.
Аноним 22/02/18 Чтв 12:12:06  1144140
>>1143794
Таки сделал эту хуйню. Кто сделает мне code review? https://pastebin.com/sGCwjXcU

Прикольно писать функции времени компилирования на чистом Си, поскольку фичи С++ не поддерживаются.

TODO: портировать на GCC и CLANG. Сейчас работает только с MSVC.
Аноним 22/02/18 Чтв 12:17:07  1144143
>>1144140
Немного исправленная версия: https://pastebin.com/fx29X2mM
Аноним 22/02/18 Чтв 13:07:39  1144172
>>1144143
Добавил поддержку проверки указателей на функции в агрументах: https://pastebin.com/VuaqADVs

А вот с возвращением указателей на функции бида-бида. Если с простыми функциями ещё можно замутить простую предварительную проверку на SFINAE, то вот при возврате указателя на метод класса только вручную писать проверку. Слишком сложно. И так сойдёт.
Аноним 22/02/18 Чтв 14:12:11  1144207
>>1144172
Одно слово: github
Аноним 22/02/18 Чтв 14:20:47  1144213
>>1144207
Что гитхаб? Выложить туда мою библиотеку рефлексии для бедных? Тогда надо ещё поддержку GCC/CLANG добавить (там нужен макрос __PRETTY_FUNCTION__ вместо __FUNCSIG__ и формат функций/шаблонов чуть другой). Ну и тесты + CI. Я вообще гитхабовские библиотеки не скачиваю, если там нет CI.
Аноним 22/02/18 Чтв 23:15:34  1144533
>>1141858
Конечно нет.
Аноним 24/02/18 Суб 00:24:24  1145025
//8===================================3
#include <iostream>

class A
{
public:
int foo(double x) {return 0;}
};

class B: public A
{
public:
int foo(short x) {return 777;}
};

int main()
{
B b;
std::cout << b.foo(1.1) << std::endl;
return 0;
}
//8===================================3

Чому этот код у меня выдаёт 777 ? По идее ведь 1.1 - это double, и потому должен вызваться метод класса А. Или если метод с именем foo() найден внизу иерархии наследования, то под него уже подгонится полученный параметр (ну тип 1.1 урежется до 1)? В джаве не так, там аналогичный код вызвал метод суперкласса.

Есть ли специальное выражение, по которому можно это загуглить подробнее?
Аноним 24/02/18 Суб 01:41:22  1145043
>>1145025
Вообще http://en.cppreference.com/w/cpp/language/overload_resolution плюс http://en.cppreference.com/w/cpp/language/adl
Конкретно в твоем случае проблема в том что поиск (вообще) происходит по имени, начиная с самого узкого скоупа постепенно его расширяя пока не будет найдено имя. Когда найдено имя, только тогда в текущем скоупе ищется подходящий вариант. Если его нет то поиск прекращается. Тебе нужно или напрямую указывать в каком скоупе искать имя b.A::foo(1.1), или включить функцию суперкласса в скоуп наследуемый класс, добавив using A::foo; где-то среди деклараций методов. Какого хуя так сделано не знаю, может хотели максимально ограничить видимость "по умолчанию" методов классов чтобы не происходило непонятной хуйни с вызовом каких-то странных методов.
Аноним 24/02/18 Суб 17:31:30  1145304
image.png (27Кб, 823x342)
Что ему нахуй нужно?
inb4 посадить программиста за клавиатуру: ха-ха
Аноним 24/02/18 Суб 17:33:57  1145306
>>1145304
точку с запятой он ждет, а не запятую
Аноним 24/02/18 Суб 17:36:35  1145307
>>1145306
Я в глаза ебусь, извините.
Аноним 24/02/18 Суб 17:39:31  1145308
>>1145307
кстати, твой алгоритм копирования настолько неэффективен, насколько это вообще возможно.
Аноним 24/02/18 Суб 17:41:58  1145310
>>1145308
Да это для лабораторной, там обязательное условие - использование буферной переменной. Хотя я и в полевых условиях делал бы что то такое же, либо memcpy
Аноним 24/02/18 Суб 18:12:03  1145330
>>1145310
Может ты задание не правильно понял? Условие какое-то слишком уж тупое.
Аноним 24/02/18 Суб 18:14:31  1145333
>>1145330
Не не, 5% выполнения за это задание. Суть всей лабораторной - подготовка различных задач под распараллеливание под openMP
Аноним 24/02/18 Суб 18:33:44  1145356
>>1145333
> распараллеливание
> буферная переменная
Неплохо.
Аноним 25/02/18 Вск 13:01:52  1145717
123.PNG (15Кб, 555x390)
321.PNG (10Кб, 1520x124)
Вечер в хату, подскажите, что он хочет и как это исправить? Пытаюсь третью неделю в кресты с абсолютного нуля, переписал листинг этого говна из книги Лафоре, выдает ошибку ссылаясь на 19 строку, гугол молчит, надежда только на вас, просветлённые
Аноним 25/02/18 Вск 13:25:35  1145729
>>1145717
Раз уж занимаешься байтоёбством, то используй c_str и memcpy.

http://ru.cppreference.com/w/cpp/string/basic_string/c_str
Аноним 25/02/18 Вск 14:21:31  1145748
>>1145717
strncpy
Аноним 25/02/18 Вск 14:30:28  1145752
Какая IDE самая пиздатая ?
Аноним 25/02/18 Вск 18:07:33  1145877
>>1145752
Windows - Visual Studio
Linux - Qt
Mac - Xcode / Qt
___
Еще можно глянуть CLion, но мне лень и она на java.
Аноним 25/02/18 Вск 18:37:58  1145881
>>1145752
Любая, поддерживающая cmake-проекты.
Аноним 25/02/18 Вск 21:04:10  1145960
image.png (310Кб, 1920x1080)
Как при создании экземпляра класса string сделать так чтобы в нем имелось место для 4 членов без такой хуйни как на пике?
Аноним 25/02/18 Вск 21:05:34  1145961
Кто шарит в ImGui
Есть ли ру документация ?
Аноним 25/02/18 Вск 21:19:10  1145971
>>1145960
>место для четырёх членов
Какое ещё место и для каких членов?
Аноним 25/02/18 Вск 21:20:43  1145973
>>1145971
Место для четырех символов.
Аноним 25/02/18 Вск 22:21:16  1145992
>>1145960
buffer.reserve(4);
Аноним 26/02/18 Пнд 13:26:06  1146278
>>1145960
в конструкторе задай
Аноним 26/02/18 Пнд 13:26:24  1146279
>>1145961
программист без знания английского должен писать только на 1С
Аноним 27/02/18 Втр 07:19:46  1146740
Че тред на дне?
Аноним 27/02/18 Втр 14:09:18  1146896
Что, к вам или в с# или в яву?
Аноним 27/02/18 Втр 17:06:48  1146975
>>1146896
Все заебись по-маленьку.
Аноним 27/02/18 Втр 17:08:42  1146976
>>1146975
Ну тогда к вам, нет! к нам! гвахаха
Аноним 28/02/18 Срд 01:32:59  1147301
>>1146896
в JS-петухам
Аноним 18/03/18 Вск 18:33:28  1158401
Отдельный qt-тред есть или всё тут можно поныть?


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