М.Двач / Программирование

Этого треда уже нет.
Это копия, сохраненная 15 ноября 2017 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

138 Кб, 510x514

C++ #61 24 окт, 17:20 #1081237 В конец треда | Веб

Вместо шапки — https://github.com/sosachbot/cppthreadhat/wiki
Ответы на все вопросы — http://en.cppreference.com/w/ http://www.cplusplus.com/reference/
Прошлый — >>1074841 (OP)

Ответы8132481330833048375984053842808470485299

24 окт, 19:29 #2 #1081324

>>1081237 (OP)
Как учить кресты, если я даун аутист с icq 70?

Ответы8135581371

24 окт, 19:32 #3 #1081330

>>1081237 (OP)
Кто шапку на гите держит? Там
>го философия построена на минимальном ограничении программиста в выборе методов и инструментов простреливания ноги решения задачи.
зачеркивание у "простреливания ноги" походу проебалось

24 окт, 19:51 #4 #1081343

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

Ответы813458134881355

24 окт, 19:52 #5 #1081345

>>1081343
Если ты такие вопросы задаешь, ты не просто ньюфаг ты еще вообще дух блять, которому надо бы почитать книжку по основам С++.

24 окт, 19:56 #6 #1081348

>>1081343
Пока ты не пишешь ничего сложнее лабораторок в универе - низачем.

24 окт, 20:06 #7 #1081355

>>1081324
Neekaque.
>>1081343
А если ты копируешь класс с полем-указателем, штатный конструктор копирования с ним что сделает? А если это unique_ptr?

24 окт, 20:24 #8 #1081371

>>1081311
Тебя лучше нахуй, а не буст.
>>1081324
Составить книгу рецептов и писать только то, что в ней написано.

24 окт, 20:29 #9 #1081375

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

Ответы81396

24 окт, 20:40 #10 #1081382

>>1081311
https://github.com/fffaraz/awesome-cpp#cli

24 окт, 21:04 #11 #1081396

>>1081375
Читай седжвика, у него были книги по алгоритмам на крестах

Ответы8140281408

24 окт, 21:13 #12 #1081402

>>1081396
Спасибо анон, но сама идея алгоритмов мне понятна, проблема в том, что я не могу их закодить на плюсах. Особенно ломают мой мозг структуры, ссылающиеся сами на себя.

Ответы81419

24 окт, 21:26 #13 #1081408

>>1081396
Тоже хотел его написать, статью про связный список читай или в книге С.Прата есть разбор, как написать структуру очередь. Называется, что то типа: Моделирование очереди

Ответы8140981413

24 окт, 21:27 #14 #1081409

>>1081408
статью = главу
*самофикс

24 окт, 21:30 #15 #1081413

>>1081408
Я хочу не научиться просто реализовывать стек или списки, а разобраться с указателями и структурами, потому что дальше придётся именно с ними работать, а не с этими структурами данных.

Ответы81430

24 окт, 21:38 #16 #1081419

>>1081402
Они не ссылаются сами на себя. Это один объект какого-то класса ссылается на другой объект этого же класса. Как в камере хранения среди всякого хлама лежала бы бумажка с номером другой камеры хранения с похожим набором хлама.

24 окт, 21:54 #17 #1081430

>>1081413
Тогда читай обычную книгу по крестам, например в шапке есть книга липпмана для ньюфагов. Думаю, после нее все будет понятно.

Ответы81431

24 окт, 21:55 #18 #1081431

>>1081430
Спасибо, анон.

25 окт, 00:16 #19 #1081505

Анонче, тренируюсь тут в SFML и вдруг мне понадобилось создать стек функций, для более грамотного отображения картинки на экране. У всех разные аргументы, очевидно.
Каким образом это можно организовать? Ну, ясен хуй через стек указателей на функцию, но каким конкретно образом реализовать?

Ответы81506

25 окт, 00:17 #20 #1081506

>>1081505
> стек
Обосрался, очередь мне нужна

Ответы81577

25 окт, 03:27 #21 #1081554

"Напишите тип указателя на функцию, которая принимает size_t и char const и возвращает указатель на void."

Вот что это должно значить? Указатель на функцию это же void, не? В чём я обсираюсь?

Ответы815558155681841

25 окт, 03:27 #22 #1081555

>>1081554
Быстрофик, void со звёздочкой.

Ответы81557

25 окт, 03:44 #23 #1081556

>>1081554
void(function)(size_t f, char const s);

Ответы81557

25 окт, 03:45 #24 #1081557

>>1081555
>>1081556
void(function)(size_t f, char const s);

25 окт, 03:46 #25 #1081558

void(function)(size_t f, char const s);

25 окт, 03:47 #26 #1081559

Двач ебаный звёзды не вставляет, короче разбирайтесь сами куда их вставлять, там их 2 должно быть.

25 окт, 03:49 #27 #1081560

Это я и сам понял. Но нужно же не это, а тип указателя на вот эту функцию. Вот чего я не понимаю.

25 окт, 03:53 #28 #1081561

typedef void(tip)(size_t f, char const s);

25 окт, 03:57 #29 #1081564

Да не в этом вопрос. Какова типа будет указатель на эту функцию?

Ответы815668162181670

25 окт, 04:03 #30 #1081566

>>1081564
Идентификаторы убери, вот тебе и тип.

25 окт, 06:14 #31 #1081577

>>1081506
std::list<void()(sf::Image &)> fn_list;
fn_list.emplace_back(...);
//
for (auto && ptr : fn_list) (ptr)(image);

ну както так чтоле, можешь в класс обернуть

Ответы81578

25 окт, 06:15 #32 #1081578

>>1081577
void(ЗВЕЗДАЧКА)(sf::Image &)

25 окт, 09:50 #33 #1081621

>>1081564
Ну уж не воид звёдочка, блядь. Твой вопрос подобен вот этому:
>Какого типа будет указатель на int?
>>int *pt
>Да не в этом вопрос. Какого типа будет указатель на этот инт?
Да вот такого и будет, блядь! Статическая типизация - не хуй моржовый, вызвать через указатель на функцию ты можешь функции с одной и той же сигнатурой (возвр. тип и аргументы), и это часть типа указателя.

25 окт, 11:35 #34 #1081658

>2к17
>C++
>не использовать std::function<>

Ответы81665

25 окт, 12:21 #35 #1081665

>>1081658
Одна std-приблуда, ради упрощения роботы с другой std-приблудой. Могут пройти туда, где им самое месть.

25 окт, 12:26 #36 #1081670

>>1081564
>Какова типа будет указатель на эту функцию?
std::add_pointer_t<void°(size_t, char const° s)>

25 окт, 12:46 #37 #1081677

Поясните плиз, зачем нужны функциональные объекты.
Я о
struct A{
void operator() () {/что-то/}
}
Я как понимаю потом это можно вызывать в коде как
A a;
a(); вызов функционального объекта.
Вопрос в том, зачем это вообще нужно, если можно просто использовать функции? Какой профит от функциональных объектов? Типа передавать их можно как параметры не зная сигнатуры вызова? Потому что обычные функции тоже можно в виде параметров передавать.

Ответы8167881724817598179281874

25 окт, 12:47 #38 #1081678

>>1081677
>Какой профит от функциональных объектов?
Хранить состояние.

Ответы81679

25 окт, 12:48 #39 #1081679

>>1081678
Хм. И то верно. Но можно же использовать глобальные переменные

Ответы8168181874

# OP 25 окт, 12:49 #40 #1081681

>>1081679
Можно за твоей щекой ещё хранить состояние

25 окт, 14:18 #41 #1081724

>>1081677
Лямбды, например

25 окт, 15:25 #42 #1081759

>>1081677
Жалкая имитация функций высшего порядка.

Ответы8181781874

25 окт, 16:11 #43 #1081792

>>1081677
>их можно как параметры не зная сигнатуры вызова
Как же их тогда вызывать-то, не зная сигнатуры?

>Потому что обычные функции тоже можно в виде параметров передавать.
Нельзя.

Ответы82102

25 окт, 17:16 #44 #1081817

>>1081759
Или функции высшего порядка — жалкая имитация объектов.

48 Кб, 1280x720

25 окт, 17:21 #45 #1081822

Приветствую весь честной люд. Ебусь с сокетами и winapi ещё с прошлого треда.
Есть оконное приложение. В нём есть поле ввода текста и кнопка. При нажатии на кнопку из поля считывается IP-адрес.
https://pastebin.com/NGSM0Fyk

Затем этот IP передаётся в конструктор, который определён вот так:
https://pastebin.com/1tjHxzLi

Функция findMAC() работает нормально, а вот findName()
(//найти доменное имя) - нет.
https://pastebin.com/VkN3LzGG
Пишет, что LPHOSTENT hn = nullptr;

Раньше findName была определена вот так:
https://pastebin.com/uBzba0iE и выдавала то же самое.
ИЧСХ, в консольном приложении всё работает нормально.

Что я делаю не так?

Ответы8182581889818938194182049

# OP 25 окт, 17:24 #46 #1081825

>>1081822
>Ебусь с сокетами и winapi ещё с прошлого треда.
Ты тредом ошибся.

Ответы81875

25 окт, 18:00 #47 #1081841

>>1081554
Нет, void* это указатель на результат, возвращаемый функцией. Так понятно?

25 окт, 19:26 #48 #1081874

>>1081759
Зато компилируемая и оптимизируемая.
>>1081677
>Типа передавать их можно как параметры не зная сигнатуры вызова?
Нет. Можно передавать их в шаблоны, которые инстанциируются для каждого типа функциональных объектов, и если опустить шаблонные параметры (пользуясь автоматической дедукцией), то выглядит это, как функциональное программирование, ведь снаружи не видно увеличения размера скомпилированного кода.
>>1081679
Это будет ОДНО состояние.

25 окт, 19:26 #49 #1081875

>>1081825
Я просто предпологаю, что дело в особенностях С++. Потомучто куда-то как-то странно теряются данные

Ответы8188081899

25 окт, 19:30 #50 #1081880

>>1081875
Может быть, разница в окружении при запуске консольного и винапи?

Ответы81886

25 окт, 19:38 #51 #1081886

>>1081880
И об этом тоже думаю, но решения проблемы не вижу

25 окт, 19:41 #52 #1081889

>>1081822
>Функция findMAC() работает нормально, а вот findName()
>
WSAStartup сделан? Что возвращает сама функция (код ошибки)?

Ответы81947

25 окт, 19:48 #53 #1081893

>>1081822
WSAGetLastError что возвращает? попробуй обратный dns для хоста, с которым тестишь, дёрнуть через сосноль, вернёт ли что-нибудь?

Ответы81948

25 окт, 19:54 #54 #1081899

>>1081875
Я просто предпологаю, что дело в нежелании пользоваться отладчиками.
и схуяли там nullptr?

Ответы8191581917819228193382255

25 окт, 20:09 #55 #1081915

>>1081899
Лол. Я который день пытаюсь узнать почему nullptr

25 окт, 20:11 #56 #1081917

>>1081899
А встроенный в студию дебаггер чем плох?

Ответы8193281933

25 окт, 20:18 #57 #1081922

>>1081899
А вообще, wsagetlasterror() выдаёт ошибку 11004

Ответы81932819478194881949

25 окт, 20:28 #58 #1081932

>>1081917
тем, что его еще запускать нужно

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

Ответы81937

25 окт, 20:28 #59 #1081933

>>1081899
>>1081917
Проигрываю с этих макак не могущих в с++ без отладчика. Отцы принтами отлаживают.

Ответы81951

25 окт, 20:32 #60 #1081937

>>1081932
На мсдн написано: удалённый комп найден, но не удаётся считать данные в структуру хостент, если обобщённо

Ответы81951

25 окт, 20:34 #61 #1081941

>>1081822
Я тебе еще в прошлом треде писал, проверь ширину char. Наверняка у тебя тупо мусор в строке, типа "1 9 2 . 1 6 "... или подобная поебень с вопросиками. Которую ты скармливаешь винапи, она думает что это типа "http://1 9 2 . 1 6 ...com", пытается его резолвнуть через DNS и закономерно обламывается.

Ответы81953

25 окт, 20:37 #62 #1081947

>>1081889
Сделан
>>1081922

25 окт, 20:40 #63 #1081948

>>1081893
>>1081922

25 окт, 20:40 #64 #1081949

>>1081922
А что это вообще за хуйня? Как оно может работать? Если у хостера на одном айпи два сайта (acmecorp.com и honestahmed.com), какое имя он выдаст? А если учесть обилие CDN.
Алсо, из MSDN:
[gethostbyaddr is no longer recommended for use as of Windows Sockets 2. Instead, use getnameinfo.]

Ответы81955

25 окт, 20:41 #65 #1081951

>>1081933
>не могущих в куски чужой пасты
поправил немного проигравшего

>>1081937
мне кажется, или ты таки нашел, откуда растут ноги у nullptr?

Ответы81957

25 окт, 20:42 #66 #1081953

>>1081941
Отнюдь. Я проверял через messagebox, что доходит до функции findName(). Там IP нормально доходит

Ответы81956

25 окт, 20:44 #67 #1081955

>>1081949
Консольное приложение работает норм. Я ищу доменные имена компов в локальной сети

25 окт, 20:46 #68 #1081956

>>1081953
>DWORD IP = inet_addr(Info.IP_address);
>gethostbyaddr((LPSTR)&IP, ...
Может я чего-то не понимаю в этой жизни. Но разве ты тут не кастишь dword к строке?

Ответы8196182026

25 окт, 20:46 #69 #1081957

>>1081951
>мне кажется, или ты таки нашел, откуда растут ноги у nullptr?

Допустим, а фиксить-то как?

Ответы81962

25 окт, 20:50 #70 #1081961

>>1081956
В консоли это работает

Ответы8196381964

25 окт, 20:52 #71 #1081962

>>1081957
сравнивай с соснольной версией же

Ответы81976

25 окт, 20:52 #72 #1081963

>>1081961
Меня не ебет что там за мусор в консоли у тебя случайно совпал с каким то айпи.

Ответы81972

25 окт, 20:52 #73 #1081964

>>1081961
Что у тебя работает в сосноли? Какой результат работы?

Ответы81972

25 окт, 21:09 #74 #1081972

>>1081963
>>1081964
Я забиваю в консольную любой локальный айпишник в своей организации, мне выдаётся соответствующие доменное имя

Ответы82026

25 окт, 21:11 #75 #1081976

>>1081962
Было бы всё так просто, не пришёл бы я сюда

Ответы81992

25 окт, 21:14 #76 #1081979

Вы понимаете что вы — спермобляди уже, всё?

25 окт, 21:25 #77 #1081992

>>1081976
okay, попробуем иначе
какие могут быть причины неудачи считывания данных в структуру хостент?
+ мусор в строке(как уже подмечалось)
- не инициализирована сама структура?
- указатель на ложный адрес?
- неправильный формат данных?

Ответы81997

107 Кб, 1280x853

25 окт, 21:31 #78 #1081994

#include <windows.h>
#include <iostream>
using namespace std;
int main()
{
MEMORYSTATUSEX statex;
statex.dwLength = sizeof(statex);
GlobalMemoryStatusEx(&statex);
cout << "Physical RAM => " << (float)statex.ullTotalPhys / 1073741824 << endl;
}
Объясните, что тут происходит? MEMORYSTATUSEX, как я понял, это структура, которая хранит инфу о памяти. А что такое statex? Дальше тоже ничего не понимаю, кроме вывода размера ОЗУ в гигабайтах.

Ответы820008200282005

25 окт, 21:38 #79 #1081997

>>1081992
>мусор в строке
Завтра на работе проверю с помощью strlen()
>не инициализирована сама структура
Так она инициализируются с помощью gethostbyaddr()
>неправильный формат данных
Быть может
>указатель на ложный адрес
Ты о чём?

Ответы82017

25 окт, 21:41 #80 #1082000

>>1081994
Работает не трогай.
Че там непонятного то?
-ex значит расширенная версия чего-либо.
statex - расширенная версия stat, то есть статов.
1073741824 очевидное 1024*1024.

Ответы82003

25 окт, 21:42 #81 #1082002

>>1081994
>MEMORYSTATUSEX
Пха-ха-ха

Ответы82004

25 окт, 21:42 #82 #1082003

>>1082000
ull очевидное unsigned long long
statex переменная созданная в первой же строчке

132 Кб, 490x274

25 окт, 21:43 #83 #1082004

>>1082002

25 окт, 21:44 #84 #1082005

>>1081994
MEMORYSTATUSEX structure
Contains information about the current state of both physical and virtual memory, including extended memory. The GlobalMemoryStatusEx function stores information in this structure.

25 окт, 22:00 #85 #1082017

>>1081997
мог бы захардкодить айпи в обход гуя и таким образом проверить, влияет ли форма ввода на запрос
она может инициализироваться позже, а в момент запроса быть nullptr(сорян, не держу пасту перед глазами, чекни assert'ом ее мож)
формат данных также не должен зависеть от гуя(хардкод для теста, или как ты там выводишь)
и я имел ввиду оператор взятия адреса, который может брать совсем не то, что нужно

Ответы82038

25 окт, 22:07 #86 #1082026

>>1081972
Я считаю, что ты врешь, и исходники не идентичны в консольной и виндовой версии. Причина указана здесь >>1081956

Ответы82039

25 окт, 22:09 #87 #1082030

Как вкатиться в QT? Что там есть кроме гуя (который я вообще не писал никогда)?
Какие простенькие проекты на гитхабе глянуть как примеры использования?

25 окт, 22:12 #88 #1082038

>>1082017
Проверю завтра. Я проверял с помощью messagebox. Айпи передаётся вроде норм, но чекну тип передаваемых данных. Завтра отпишусь

25 окт, 22:14 #89 #1082039

>>1082026
Что тебе не нравится? Это просто специфичные типы винды

Ответы8204382044

25 окт, 22:28 #90 #1082043

>>1082039
Я еще раз повторяю, у тебя DWORD (грубо говоря int32_t), когда ты вызываешь inet_addr, у тебя в него попадает упакованный в 4 байта IPv4, например 192.168.1.1 превратиться 0x0101A8C0.
Далее, LPSTR это грубо говоря char*. Охуеть, что по твоему делает (LPSTR)&IP? Ты берешь адрес переменной IP в памяти, например при тестовом запуске у меня это 0x0032FBEC. И УТВЕРЖДАЕШЬ КОМПИЛЯТОРУ ЧТО У ТЕБЯ ТАМ НЕ ИНТ, А СТРОКА БЛЖАД. И передаешь ее первым аргументом в функцию. Функция честно пытается распарсить мусор, который там лежит, что в моем запуске выглядит как AЁ\x1\x1MMMMM и так до ближайшего \0 символа, пытается заресолвить эту строку через DNS как http адрес и обламывается. И че тут непонятного то? Пиздуй с такими кастами (LPSTR)&IP нахуй в C-тред а лучше вон из профессии.

Ответы8205382255

19 Кб, 915x544

25 окт, 22:31 #91 #1082044

>>1082039
>Что тебе не нравится?
>специфичные типы винды
this

а вообще сокеты интересная тема

Ответы8204782054

25 окт, 22:37 #92 #1082047

>>1082044
>~
>~
>~
>~
>-- INSERT --
Тебя только пожалеть если, инвалид.

Ответы8205782060

25 окт, 22:39 #93 #1082049

>>1081822
https://stackoverflow.com/questions/9825114/gethostbyaddr-returns-0

25 окт, 22:43 #94 #1082053

>>1082043
Если ты чего-то не понимаешь, это не означает, что это не правильно. Я передаю в inet_addr() айпи в сетевом формате, он преобразовывает его в целое число. А потом это число передаю в gethostbyaddr(), но там первый параметр строковый.

Короче, завтра приведу в порядок типы и отпишусь

Ответы8205582060

25 окт, 22:45 #95 #1082054

>>1082044
Это что Линукс? Ну и мерзость

Ответы8205782060

25 окт, 22:45 #96 #1082055

>>1082053
>А потом это число передаю в gethostbyaddr(), но там первый параметр строковый.
Шизик.

25 окт, 22:48 #97 #1082057

>>1082047
>>1082054
Ебать и с этими олигофренами я сижу на одной борде.

Это блять VIM. Линукс.. ебать какие же вы конченые пиздец просто.
мимо другой анон

Ответы8205882059

25 окт, 22:49 #98 #1082058

>>1082057
>VIM
Я так и сказал - инвалидов надо жалеть.

25 окт, 22:50 #99 #1082059

>>1082057
Да похуй. Теперь это винапи-тред

Ответы8207582081

25 окт, 22:51 #100 #1082060

>>1082054
шindoшs7 жи + cygwin

>>1082047
>инвалид
это не я, это vim такой, лал

>>1082053
>gethostbyaddr
во всем цивилизованном мире deprecated и только в msdn no longer recommended, лал

Ответы82063820748208682115

23 Кб, 604x340

25 окт, 22:58 #101 #1082063

>>1082060
>шindoшs7 жи + cygwin
Да ты отличный парень, держи тогда няшку

25 окт, 23:16 #102 #1082074

>>1082060
>cygwin
Нахуя, когда уже есть msys2?

Ответы82076

11 Кб, 861x242

25 окт, 23:17 #103 #1082075

>>1082059
>винапи

Ответы82082

25 окт, 23:19 #104 #1082076

>>1082074
>msys2
Зачем, если есть mingw?

Ответы82085

25 окт, 23:24 #105 #1082081

>>1082059
>винапи
https://mollyrocket.com/casey/stream_0029.html

Ответы82090821068210882116

25 окт, 23:24 #106 #1082082

>>1082075
Ну да, есть такое

25 окт, 23:39 #107 #1082085

>>1082076
Там есть удобный pacman. И все работает из коробки

25 окт, 23:39 #108 #1082086

>>1082060
>шindoшs7 жи + cygwin
Зачем, если есть зонд10 + WSL?

> во всем цивилизованном мире deprecated и только в msdn no longer recommended
Это по смыслу одно и то же.

Ответы82090

25 окт, 23:52 #109 #1082090

>>1082081
>ProcessTrace is defined to never return
ахуенчик

>>1082086
когда придет время ПЕРЕУСТАНАВЛИВАТЬ, тогда и обмажусь

26 окт, 00:19 #110 #1082102

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

Ответы8224682256

26 окт, 00:29 #111 #1082106

>>1082081
Спс, поржал

26 окт, 00:32 #112 #1082108

>>1082081
Напомнило историю, как из ядра линукса пытались выпилить какую то блочную хуергу лет 10.

26 окт, 00:48 #113 #1082115

>>1082060
>во всем цивилизованном мире deprecated и только в msdn no longer recommended
http://whatis.techtarget.com/definition/deprecated
> In IT, deprecation means that although something is available or allowed, it is not recommended

Ответы82127

26 окт, 00:48 #114 #1082116

>>1082081
какой-то игродел бомбанул от того, что нужно использовать тред, и поэтому winapi это плохо. охуительные истории

Ответы82128

26 окт, 01:05 #115 #1082127

>>1082115
okay, пусть так, спасибо за просвещение
беда в менталитете прост скорее всего в моем
- устарело, знач устарело, нах это говно мамонта трогать, мы же не лохи, да?
- не рекомендовано? эт кто там такой умный? да у меня асе работает, ЧЯДНТ?

отличия заметны, надеюсь

26 окт, 01:05 #116 #1082128

>>1082116
winapi это действительно пиздец. Я сам пишу часто на чистом С под апи линукса, и если сравнивать винапи и линукс апи это не то что даже небо и земля, это просто земля и космос. Ибо хуже АПИ чем винапи я нигде не видел еще. Там без преувеличения хуево абсолютно все. Даже их code style это полнейший тотальный нечитабельный пиздец.

Ответы8214982155

26 окт, 02:24 #117 #1082149

>>1082128
Ох лол.
Это троллинг такой?
А ну ка приведи код для линукс апи ох лол ох лол создающий формочку с кнопкой и текстом.

Ответы82153

9 Кб, 480x360

26 окт, 02:45 #118 #1082153

>>1082149
Мудак что ли совсем? Какая нахуй формочка блять? Ты сука иди нахуй в JS тред со своими пидарскими формочками. У ядра нету никаких формочек хуермочек для пидоров.

26 окт, 02:53 #119 #1082155

>>1082128
>api линукса
Не, ну если сравнивать winapi и отсутсвие api то отсутствие конечно выигрывает.

Ответы82156

26 окт, 02:55 #120 #1082156

>>1082155
Ммм интересно эти дегенераты вообще программисты или залетные аутисты вкатывальщики 500кк/наносекунда?

Ответы82216

26 окт, 11:00 #121 #1082216

>>1082156
Двачую. Нашли какой то api линукса, лол. Ведь всем известно, что в линухе придерживаются политики "no stable api nonsense"

Ответы8231382417

26 окт, 12:58 #122 #1082246

>>1082102
>Можно. Передать в параметре указатель на эту функцию.
Но не функцию.

>Не вызвать, а передать
А нахрена нужны функциональные объекты, если в последствии их не вызывать?

sage 26 окт, 13:30 #123 #1082255

>>1082043
>И УТВЕРЖДАЕШЬ КОМПИЛЯТОРУ ЧТО У ТЕБЯ ТАМ НЕ ИНТ, А СТРОКА БЛЖАД. И передаешь ее первым аргументом в функцию. Функция честно пытается распарсить мусор, который там лежит,
Невинной душе позволительно не знать, что таким образом винда действительно принимает инт32.
>>1081899
nullptr у него потому, блядь, что запрос ошибку вернул, а ошибку он даже на MSDN не посмотрел.

Ответы8226182263

26 окт, 13:34 #124 #1082256

>>1082102
>Просто берёшь созданный объект и передаёшь его. А в случаи указателей на функцию тебе нужно создать такой указатель, который бы удовлетворял сигнатуре функции на которую он ссылается
Что ты за хуйню пишешь? Не можешь ты передать функциональный объект, это не самостоятельный тип. Все самые полезные функции, принимающие функциональные объекты - это шаблоны, которые инстанциируются для каждого типа, который ты в них передаёшь - то есть, барабанная дробь, "создают" сигнатуру, под которую подходит метод operator() объекта.

Ответы8225882508

26 окт, 13:38 #125 #1082258

>>1082256
>Не можешь ты передать ЛЮБОЙ функциональный объект
Ну, то есть, в лучшем случае ты напишешь функцию, которая принимает std::function<pizda(huynya)>, то есть, объект должен иметь оператор() с заранее известной сигнатурой.

166 Кб, 959x716

26 окт, 13:44 #126 #1082259

Здаров. На связи кун, который вчера да и сегодня ебался с винапи и сокетами. Сегодня, с помощью strlen, я понял где ошибка.
Вот есть форма ввода и кнопка:
https://pastebin.com/NGSM0Fyk

1.Если я забиваю в поле ввода N-значную С-строку, GetWindowText() сохраняет её в массив IPstr.
2.Я чекнул длину IPstr после ввода. strlen() возвращает кол-во символов без '\0', то есть только кол-во введённых. Но вместо этого он возвращал кол-во символов N+1.
3.C помощью прохода циклом for, я выяснил, что текст из формы записывается в IPstr ВНЕЗАПНО не IPstr[0], а с
IPstr[1].
4. Таким образом, в конструктор класса computer я передаю
&IPstr[1] и всё работает.

Бля, я понимаю, что это говнокод в кубе. И я даже не знаю почему это происходит. Имеет ли значение, что в свойствах проекта я изменил кодировку c Unicode на многобайтовую.

Короче, спасибо большое всем кто вчера вечером помогал

26 окт, 13:46 #127 #1082261

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

вчера раз 5 пояснил, что посмотрел. И хули ты тут сагаешь?

Ответы82265

26 окт, 13:50 #128 #1082263

>>1082255
>Невинной душе позволительно не знать, что таким образом винда действительно принимает инт32.
Схуяли? Там принимается строка, а не хэндл.

Ответы82265

26 окт, 13:58 #129 #1082265

>>1082261
Приклеилось.
>>1082263
>A pointer to an address in network byte order.
Как бэ намекаэ, что это не строка, так как на строки endianness не влияет, а число. Смотри примеры на MSDN.

Ответы8270782835

26 окт, 15:13 #130 #1082313

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

26 окт, 19:31 #131 #1082417

>>1082216
Stable api nonsense - только про дрова же, а не интерфейс ядра с миром.

26 окт, 20:12 #132 #1082430

Анон, подскажи плиз, я что-то туплю.

У меня есть (на самом деле нет, но хотелось бы) массив объектов. Ключи - int, значения - объекты моего класса.
В процессе работы происходит цикл, в котором каждый объект класса выполняет операцию и получает результат, который он должен куда-то записать. Мне кажется хорошей идеей записывать результат вместо текущего ключа объекта.
Как это реализовать? Контейнеры желательно stl или qt
В PHP всё было проще, пара операций, а в С++ я уже пол дня долблюсь

Ответы82447

26 окт, 20:44 #133 #1082447

>>1082430
В stl есть MAP. Это типа массив в виде хеш-таблиц как в ПХП. Т.е. ключом может быть всё что угодно

Ответы82470

26 окт, 21:28 #134 #1082457

пуканы, что посоветуете по qt?

Ответы82463

26 окт, 21:38 #135 #1082463

>>1082457
Шлее.

Ответы82484

26 окт, 21:54 #136 #1082470

>>1082447
Спасибо. У меня был косяк в том, что я, по пхп-привычке, пытался изменить ключ multimap, Как только я перестал это делать и начал изменять значение, то всё заработало.

Ответы82489

26 окт, 22:23 #137 #1082484

>>1082463
https://www.bookvoed.ru/book?id=4708132
а вот такую йобу?

26 окт, 22:34 #138 #1082489

>>1082470
Тэкс. Отсортировать multimap из коробки нельзя. Ладно, окда, напишим алгоритмик.

Ответы82510

26 окт, 23:15 #139 #1082508

>>1082256
Функциональный объект
struct A{
void operator() () {/что-то/}
}
Создаёшь его экземпляр как A a;
И передаешь этот a куда тебе угодно.

Ответы82610

26 окт, 23:16 #140 #1082510

>>1082489
Может лучше отдельным вектором из пар ключа с указателем на объекты?

27 окт, 01:40 #141 #1082557

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

Ответы8256482567

27 окт, 01:58 #142 #1082564

>>1082557
Что же с тобой тогда будет, если ты попробуешь какой-нибудь функциональный язык?

Ответы82601

27 окт, 02:22 #143 #1082567

>>1082557
>передавать функции в качестве параметров.

так через указатель можно и аллаха передать

Ответы82601

27 окт, 09:37 #144 #1082601

>>1082567
>>1082564
Я на плюсах только опенгл попердолил и укатился на шарп

Ответы82815

27 окт, 10:05 #145 #1082610

>>1082508
У тебя все функции в программе - это воид()? Ответ через глобальные переменные возвращаешь? 1/10 за смехуёчки.

Ответы82851

27 окт, 14:56 #146 #1082707

>>1082265
>на строки endianness не влияет
UTF-16LE, UTF-16BE

Ответы82711

27 окт, 15:12 #147 #1082711

>>1082707
>char звёздочка address

27 окт, 17:50 #148 #1082815

>>1082601
В шарпах же тоже лямбды есть, и много. Шарпы без LINQ - говно же.

Ответы82826

27 окт, 18:12 #149 #1082826

>>1082815
Знатно пригорело. То ли еще будет

27 окт, 18:24 #150 #1082835

>>1082265
Я понял, там указатель на массив байтов, это тот шизик сам придумал LPSTR, а чо, указатель же? На байтики? Значит можно писать.

Ответы82924

27 окт, 18:51 #151 #1082846

При передаче вектора в функцию по значению - содержимое вектора копируется в новый объект?

void t( std::vector<float> _in ) {}

Ответы8285582924

27 окт, 18:56 #152 #1082851

>>1082610
В чем проблема хранить возвращаемое значение в самом функциональном объедке?

Ответы82924

27 окт, 18:59 #153 #1082855

>>1082846
Все элементы копируются, как я понимаю.

27 окт, 21:22 #154 #1082924

>>1082835
LPSTR - это и ест char звёздочка в мире WinAPI.
>>1082846
Да.
>>1082851
Толстовато уже, хватит.

27 окт, 21:33 #155 #1082931

Хочу писать игровой движок. В книге Game Engine Architecture пишут, что обычно все крупные подсистемы (манагер файловой системы, ресурсов, рендеринга и прочие) для удобства делают глобальными. Значит их конструкторы будут вызываться до входа в main, и не в определенном порядке (что иногда может стать проблемой). И соответственно деструкторы тоже. И предлагают оставлять их тела пустыми, а вместо этого сделать методы SturtUp и ShutDown, чтобы дергать их вручную в нужном порядке, где-то внутри main или метода инициализации движка а потом, может даже напердолить это все автоматом на графах.
Норм ли это или есть более подходящий для таких целей дизайн?

Ответы82934829398294082943

27 окт, 21:37 #156 #1082934

>>1082931
Рановато тебе с твоим скилом писать игровые движки.
А глобальные объекты можно сделать в виде указателя и инициализировать потом.

Ответы82940

27 окт, 21:43 #157 #1082939

>>1082931
Можно и так, но ещё лучше будет сделать глобальный объект, конструктором которого будет содержимое StartUp, a деструктором - содержимое ShutDown. Так ты исключаешь один источник багов.

27 окт, 21:43 #158 #1082940

>>1082931
Пока делаю так:

//шаблон абстрактного манагера manager.h

#pragma once

template <typename T>
class Manager
{
public:
static T& Instance()
{
static T s;
return s;
}

virtual void StartUp() final
{
std::cout << " Starting manager: " << typeid(T).name() << "..." << std::endl;
OnStartUp();
std::cout << " Manager [" << typeid(T).name() << "] is started." << std::endl;
};

virtual void ShutDown() final
{
std::cout << " Stopping manager: " << typeid(T).name() << "..." << std::endl;
OnShutDown();
std::cout << " Manager [" << typeid(T).name() << "] is stopped." << std::endl;
};

protected:
Manager() = default;
~Manager() = default;
virtual void OnStartUp() = 0;
virtual void OnShutDown() = 0;

private:
Manager(Manager const&) = delete;
Manager& operator=(Manager const&) = delete;
};

//объявление конкретного манагера inputmanager.h

#pragma once

#include "manager.h"

namespace ENGINE
{
class InputManager : public Manager<InputManager>
{
public:

private:
virtual void OnStartUp() override;
virtual void OnShutDown() override;
};
}

extern ENGINE::InputManager input;

//Реализация конкретного манагера inputmanager.cpp

#include "inputmanager.h"
#include "graphicsmanager.h"

using namespace std;

ENGINE::InputManager input;
void ENGINE::InputManager::OnStartUp()
{
auto window = graphics.window;
//glfwSetInputMode(window, GLFW_STICKY_KEYS, GL_TRUE);
glfwSetKeyCallback(window, key_callback);
glfwSetCursorPosCallback(window, cursor_position_callback);
glfwSetInputMode(window, GLFW_CURSOR, GLFW_CURSOR_DISABLED);
//glfwSetInputMode(window, GLFW_STICKY_MOUSE_BUTTONS, 1);
glfwSetMouseButtonCallback(window, mouse_button_callback);
glfwSetScrollCallback(window, scroll_callback);
}

void ENGINE::InputManager::OnShutDown()
{
//пока хз что здесь может понадобиться
}

>>1082934
>Рановато тебе с твоим скилом писать игровые движки.
Разве это может меня остановить?

27 окт, 21:43 #158 #1082940

>>1082931
Пока делаю так:

//шаблон абстрактного манагера manager.h

#pragma once

template <typename T>
class Manager
{
public:
static T& Instance()
{
static T s;
return s;
}

virtual void StartUp() final
{
std::cout << " Starting manager: " << typeid(T).name() << "..." << std::endl;
OnStartUp();
std::cout << " Manager [" << typeid(T).name() << "] is started." << std::endl;
};

virtual void ShutDown() final
{
std::cout << " Stopping manager: " << typeid(T).name() << "..." << std::endl;
OnShutDown();
std::cout << " Manager [" << typeid(T).name() << "] is stopped." << std::endl;
};

protected:
Manager() = default;
~Manager() = default;
virtual void OnStartUp() = 0;
virtual void OnShutDown() = 0;

private:
Manager(Manager const&) = delete;
Manager& operator=(Manager const&) = delete;
};

//объявление конкретного манагера inputmanager.h

#pragma once

#include "manager.h"

namespace ENGINE
{
class InputManager : public Manager<InputManager>
{
public:

private:
virtual void OnStartUp() override;
virtual void OnShutDown() override;
};
}

extern ENGINE::InputManager input;

//Реализация конкретного манагера inputmanager.cpp

#include "inputmanager.h"
#include "graphicsmanager.h"

using namespace std;

ENGINE::InputManager input;
void ENGINE::InputManager::OnStartUp()
{
auto window = graphics.window;
//glfwSetInputMode(window, GLFW_STICKY_KEYS, GL_TRUE);
glfwSetKeyCallback(window, key_callback);
glfwSetCursorPosCallback(window, cursor_position_callback);
glfwSetInputMode(window, GLFW_CURSOR, GLFW_CURSOR_DISABLED);
//glfwSetInputMode(window, GLFW_STICKY_MOUSE_BUTTONS, 1);
glfwSetMouseButtonCallback(window, mouse_button_callback);
glfwSetScrollCallback(window, scroll_callback);
}

void ENGINE::InputManager::OnShutDown()
{
//пока хз что здесь может понадобиться
}

>>1082934
>Рановато тебе с твоим скилом писать игровые движки.
Разве это может меня остановить?

Показать весь текст
Ответы83468

27 окт, 21:47 #159 #1082943

>>1082931
Есть, называется Dependency Injection.
Выглядит примерно так

#include "di.hpp"
namespace di = boost::di;
...
auto injector = di::make_injector(di::bind<IScene>.to<Scene2D>(), di::bind<IComponent>.to<Component2D>())
View2D view = injector.create<View>();
Суть в том, что оно само пройдется по зависимостям и создаст экземпляры классов в правильном порядке.

Ответы8295882971

27 окт, 22:17 #160 #1082958

>>1082943
Господи какой же с++ уебищный.

Ответы8295982961

27 окт, 22:20 #161 #1082959

>>1082958
>Мааам, тут две функции на шаблонах - СЛОЖНААААА

27 окт, 22:25 #162 #1082961

>>1082958
Ну да, есть немножко. Но так то все понятно. Если без спецсимволов почти чистый англюсик.
make injector
bind IScene to Scene2D
bind IComponent to Component2D
injector.create View
Алсо нам не видно откуда ты кукарекаешь и как решаешь подобную задачу (порядок инициализации типа глобальных объектов)

27 окт, 22:43 #163 #1082969

Может кто дать цитату из стандарта почему в классе можно обращаться к закрытым членам другого объекта этого-же класса?

Ответы8297082996

27 окт, 22:46 #164 #1082970

>>1082969
Ты уверен что обращаешься к членам другого объекта, а не этого же?

Ответы82974

27 окт, 22:46 #165 #1082971

>>1082943
Ну там по идее вообще 5 функций должно быть.
Но ты видимо сам не понял что криво что-то откуда то скопипастил ибо выражение >di::bind<IScene>.
Не скомпилируется.

Ответы82976

27 окт, 22:48 #166 #1082974

>>1082970
Да, как по твоему конструкторы копирования работают?

27 окт, 22:49 #167 #1082976

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

Ответы82979

27 окт, 22:57 #168 #1082979

>>1082976
Хорошо, как ты объяснись тогда что это?
>bind<IScene>
Экземляр объекта или тип?
Если бы это был экземпляр то там бы стояли круглые скобки в конце, а если тип, то как ты из него методы вызываешь?

Ответы8299483008

27 окт, 23:30 #169 #1082994

>>1082979
Да не, все работает, вот перепроверил
https://wandbox.org/permlink/wHhM6f5WT7IbzBYt
Объяснять как работает магия буста внутри не берусь.

Ответы8301583066

27 окт, 23:31 #170 #1082996

>>1082969
http://eel.is/c++draft/class.access
> its name can be used only by members and friends of the class in which it is declared.
Как видишь, про экземпляры ни слова, только про классы. private - это защита только от пользователя кода, а не от автора кода.

27 окт, 23:40 #171 #1083006

class FileNotFoundException : public std::runtime_error
{
public:
explicit FileNotFoundException(std::string_view filename) : _filename(filename) {};
virtual ~FileNotFoundException() throw () {}
virtual const char* what() const throw () {
return ("File " + _filename + " not found.").c_str();
}
protected:
std::string _filename;
};

>error C2512: 'std::runtime_error': no appropriate default constructor available
Как это унаследовать, то?

Ответы8301383225

27 окт, 23:42 #172 #1083008

>>1082979
Точнее так (этот вариант с bind)
https://wandbox.org/permlink/A6HdvOAftcwGMe7Q

27 окт, 23:49 #173 #1083013

>>1083006
Блин, вот зачем ему нужен этот глупый конструктор?
explicit FileNotFoundException(std::string_view filename) : _filename(filename), std::runtime_error("") {};

27 окт, 23:52 #174 #1083015

>>1082994
>Объяснять как работает магия буста внутри не берусь.
Вся суть С++ макак. Не могут объяснит ькак работает их язык. лол.

Ответы83019

27 окт, 23:53 #175 #1083019

>>1083015
А ну да, так то любой питонист или яваскриптер, естественно, сразу же объяснит все внутренности пакетов, которые он скачал с npm и дергает. Ору с дегенерата.

Ответы83028

28 окт, 00:00 #176 #1083028

>>1083019
Ору с дегенерата ""пишущего"" на С++ и равняющегося на явасриптеров и питунхонов.

С++ - БУДУЩИЕ УЖЕ ЗДЕСЬ!

Ответы8304383046

28 окт, 00:03 #177 #1083034

Сап, решил я запилить свой велосипед в виде обертки над sqlite3. В процессе у меня встал вопрос: насколько безопасно можно использовать ф-ю sqlite3_column_type для определения типа в колонке и использования его для выбора функции получения данных типа sqlite3_column_double?
В доках написано: "The value returned by sqlite3_column_type() is only meaningful if no automatic type conversions have occurred for the value in question. After a type conversion, the result of calling sqlite3_column_type() is undefined, though harmless.". Что-то я не осилил момент про авто конверсию типов. Когда она происходит? Короче, взываю к вам, всезнающие аноны.

Ответы83044

28 окт, 00:25 #178 #1083043

>>1083028
Сам-то кем будешь?

Ответы83053

28 окт, 00:30 #179 #1083044

>>1083034
Кажется, тут речь идет про автоконверсию внутри sql. https://sqlite.org/datatype3.html#affinity

28 окт, 00:31 #180 #1083046

>>1083028
Да, это так. Проблема в чем? Срать я хотел на байтики, просто беру и пишу на плюсах как на яве.

Ответы8305383332

28 окт, 00:44 #181 #1083053

>>1083043
Боюсь это за гранью твоего разума.

>>1083046
Так при чем тут байтики, если ты не понимаешь синтаксических конструкций языка? Можно сказать ты не понимаешь самых основ и базиса.

Ответы83068

28 окт, 01:08 #182 #1083066

>>1082994
Как-то ты странно logger используешь в main.

28 окт, 01:13 #183 #1083068

>>1083053
Давно boost::di стал основой синтаксиса языка?

Ответы83077

28 окт, 01:42 #184 #1083077

>>1083068
Ты в курсе что буст это всег лишь библиотека написанная в рамках синтаксический правил языка С++? И там нету никаких специальных конструкций меняющих синтаксис, не входящих в стандарт языка.
А ты не в состоянии пояснить за синтаксическую конструкцию языка, на котором ты пишешь.

Ответы83080

28 окт, 01:58 #185 #1083080

>>1083077
Судя по всему, я понял в чем твоя проблема, походу Visual Studio использует устаревший стандарт и не может собрать без так необходимых тебе скобочек.
То, что это работает в современном компиляторе, показано по ссылке выше.
Он не ребенок и сам может вывести, что bind<IWindow> и bind<IWindow>() - один и тот же (структура).
>буст это всег лишь библиотека написанная в рамках синтаксический правил языка
Разницу между использованием буста и переписыванием всего буста с обоснованием не понимаешь?

Ответы8308683134

28 окт, 02:44 #186 #1083086

>>1083080
> Visual Studio
>твоя проблема
>не может собрать
Лол, не поверишь но у меня этого говна даже нету на компьютере.
Я хоть и давно не пишу на С++, но знаю его достаточно хорошо, чтобы понимать синтаксис не вставляя его в IDE и т.п.
И вот такое выражение myclass<T> считается типом, а myclass<T>() является созданием нового инстанса этого класса. А вот что означает myclass<T>.foo() я не представляю, ибо это выглядит как доступ к методу типа, что является бессмыслицей. А вот myclass<T>().foo() выглядит вполне легитимно.
Но ты даже этого не знаешь, и не можешь объяснить как работает то, что ты используешь в своем хеловорде. Грубо говоря ты не знаешь базовый синтаксис языка.
Если бы тебе задали такой вопрос на собеседовании, ты бы конечно не ответил на него и тебе бы сказали - Мы вам перезвоним...
Вот я и говорю на что во-первых с++ уебищный язык потому, что превратился в язык типа write only, ибо разобрать что-то что там наговнокодили на шаблонах в том же бусте или просто васян-либе если и реально то довольно тяжко и очень муторно, поэтмоу и на нем только пишут, без предусматривания возможности чтения программы.
Во-вторых, новое поколение макак даже языка не знает, что демонстрирует пример выше и не понимает основных синтаксических конструкций, что я вполне понимаю, ибо разбираться в том, что там наковнокодили в новых стандартах поехавшие из комитета, которые решили ухудшить и окончательно доебать язык, который и без того bad by design.
Думаю ( и очень надеюсь ) С++ умрет через пару десятков лет окончательно, ибо кому нужна максимальная производительность, они как и писали на С так и пишут. А кому это не важно пишут на нормальных языках с изначально хорошим дизайном. Даже возьми тот же питон ( хоть я и не считаю это хорошим языком, но точно лучше с++), который очень сильно используется в дата саенсе, где критические по производительности модули написаны на С и просто вызываются из питона.
В общем-то от с++ отказались уже все нормальные люди, которые не повязанны на нем легаси кодом.

28 окт, 02:44 #186 #1083086

>>1083080
> Visual Studio
>твоя проблема
>не может собрать
Лол, не поверишь но у меня этого говна даже нету на компьютере.
Я хоть и давно не пишу на С++, но знаю его достаточно хорошо, чтобы понимать синтаксис не вставляя его в IDE и т.п.
И вот такое выражение myclass<T> считается типом, а myclass<T>() является созданием нового инстанса этого класса. А вот что означает myclass<T>.foo() я не представляю, ибо это выглядит как доступ к методу типа, что является бессмыслицей. А вот myclass<T>().foo() выглядит вполне легитимно.
Но ты даже этого не знаешь, и не можешь объяснить как работает то, что ты используешь в своем хеловорде. Грубо говоря ты не знаешь базовый синтаксис языка.
Если бы тебе задали такой вопрос на собеседовании, ты бы конечно не ответил на него и тебе бы сказали - Мы вам перезвоним...
Вот я и говорю на что во-первых с++ уебищный язык потому, что превратился в язык типа write only, ибо разобрать что-то что там наговнокодили на шаблонах в том же бусте или просто васян-либе если и реально то довольно тяжко и очень муторно, поэтмоу и на нем только пишут, без предусматривания возможности чтения программы.
Во-вторых, новое поколение макак даже языка не знает, что демонстрирует пример выше и не понимает основных синтаксических конструкций, что я вполне понимаю, ибо разбираться в том, что там наковнокодили в новых стандартах поехавшие из комитета, которые решили ухудшить и окончательно доебать язык, который и без того bad by design.
Думаю ( и очень надеюсь ) С++ умрет через пару десятков лет окончательно, ибо кому нужна максимальная производительность, они как и писали на С так и пишут. А кому это не важно пишут на нормальных языках с изначально хорошим дизайном. Даже возьми тот же питон ( хоть я и не считаю это хорошим языком, но точно лучше с++), который очень сильно используется в дата саенсе, где критические по производительности модули написаны на С и просто вызываются из питона.
В общем-то от с++ отказались уже все нормальные люди, которые не повязанны на нем легаси кодом.

Показать весь текст
Ответы8313283134

28 окт, 02:45 #187 #1083088

Байтаны, мне тут нужно визуализировать в реалтайме пару тысяч движущихся объектов. Как мне их обработать? OpenGL в кьюте слишком медленный получается. Мне проще самому что-то сделать, или я просто делаю что-то не так? Что делают разработчики движков, чтобы получать высокопроизводительную отрисовку на калькуляторах?

Ответы83136

28 окт, 09:55 #188 #1083132

>>1083086
Я понимаю, что ты решил троллить тупостью, но никакого write only в указанном примере и близко нет, наоборот, он максимально прозрачен, и ты можешь его настроить как угодно под свои синглтоны. Напоминаю, что я этот пример предложил как простейшую замену говнокоду, где глобальные инстансы всяких ресурсменеджеров инициализируются в неопределенном порядке. Эту проблему DI полностью устраняет, записью буквально в одну строчку. Ты же доебываешься до сраной реализации, в которой я могу тебя отправить лишь к авторам буста, поскольку я упомянул, что мои познания в языке ниже, чем у авторов буста. Если они могут сделать автовывод типа без скобочек, значит они могут. Я же показал пример простого использования сложной библиотеки, а ты требуешь чтобы я описал реализацию этой библиотеки. Как работает - тут все совершенно очевидно, make_injector принимает гребаный тип, а что и как в этом типе выводится - это детали реализации, которые никого не ебут в данном случае, все что нам надо сделать в этом простейшем примере - декларативно описать, какому твоему интерфейсу соответствует какая твоя реализация, и вызвать соответствующий метод. Все, как в твоем любимом пайтоне.

Ответы8320283468

28 окт, 10:12 #189 #1083134

>>1083080
> Он не ребенок и сам может вывести, что bind<IWindow> и bind<IWindow>() - один и тот же (структура).
Ебать дебил.

>>1083086
В C++14 завезли шаблонные переменные. http://en.cppreference.com/w/cpp/language/variable_template

Ответы83202

28 окт, 10:20 #190 #1083136

>>1083088
опенгл должен быть норм, если его правильно использовать.

28 окт, 14:25 #191 #1083202

>>1083132
> доебываешься до сраной реализации
Ну ты и дегенерат. Я 10 раз писал постами выше, про синтаксическую конструкцию аля foo<T>.bar(), которую ты объяснить не можешь и это не относится к бусту это относится к СИНТАКСИСУ языка, а не к реализации. Сука какой же ты тупой олень, тебе не на с++ писать надо, а вообще программировать нельзя.

>>1083134
>В C++14 завезли шаблонные переменные
Вот это многое объясняет, благодарствую.
А дебил выше, судя по всему, даже не утруждал себя в изучении уже ненового стандарта, зато кукарекать начал.

Ответы83217

28 окт, 14:51 #192 #1083213

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

Ответы834748359983631

28 окт, 14:56 #193 #1083217

>>1083202
Какой же ты даун, тебе уже раза три ответили, что можно писать синтаксическую конструкцию как foo<T>.bar(), так и foo<T>().bar(), потому что это вообще никого не ебет, это внутренняя реализация библиотеки, по сути её DSL. Ладно, заканчиваю кормить зеленого.

Ответы8321983280

143 Кб, 480x429

28 окт, 15:01 #194 #1083219

>>1083217
>можно писать синтаксическую конструкцию как foo<T>.bar(), так и foo<T>().bar()
Поциэнт с синдромом дауна, до сих пор не понял в чем отличие, хотя ему даже ссылку на описание привезли.

Ответы83272

28 окт, 15:29 #195 #1083225

>>1083006
Инициализируй его в конструкторе:
struct A:B{
A():B{} {}
};

Ответы83261

28 окт, 16:46 #196 #1083261

>>1083225
>A():B{} {}
скорее A(std::string_view s): B{s}{}

Ответы8327183279

28 окт, 17:07 #197 #1083271

>>1083261
И пустой строкой не стоит инициализировать, там не просто так нет конструктора по умолчанию, там должно быть осмысленное сообщение об ошибке

28 окт, 17:09 #198 #1083272

>>1083219
В том вызове make-shared разницы и нет. Погоди, ты реально считаешь, что там вызывается какой-то метод?

28 окт, 17:33 #199 #1083279

>>1083261
До этого он и сам догадается.

28 окт, 17:36 #200 #1083280

>>1083217
>можно писать синтаксическую конструкцию как foo<T>.bar(), так и foo<T>().bar(), потому что это вообще никого не ебет, это внутренняя реализация библиотеки, по сути её DSL
Боже, какой дибил. Ты серьезно?

Ответы83321

36 Кб, 1062x521

28 окт, 17:45 #201 #1083289

Задача по переводу числа в другие системы счисления. Вроде все верно происходит, кроме самого последнего момента: вывода массива. Понял это по тому принципу, что элементы массива пишутся через пробел. Что я не так сделал?

Ответы8329283298

28 окт, 17:49 #202 #1083292

>>1083289
Какая-то лютая хуйня, найди образец на стековерфлоу и сверь.

Ответы83299

28 окт, 18:00 #203 #1083298

>>1083289
>int c;
>buffer[c] << i;
Ну нихуя ж себе.

Ответы83302

28 окт, 18:09 #204 #1083299

>>1083292
А по существу нечего сказать? На stackoverflow одни printf и itoa. При этом мне желательно обойтись как раз без этих вещей. Я только не могу понять, почему элементы в массивах имеют такое значение.

Ответы83301

28 окт, 18:11 #205 #1083301

>>1083299
Видишь ли, гнида, я по существу говорю только людям, которые сами работали. Ты сюда какой-то выблев принёс, который из хуя высосал, мне в нём разбираться не по масти. Ищи лучше, мразь, раз уж сам написать такую простую вещь не в силах. Это крест твой, творог подзалупный.

Ответы8330383311

28 окт, 18:11 #206 #1083302

>>1083298
При
buffer[c] = i
тоже полную хрень выводит.

Ответы83322

28 окт, 18:13 #207 #1083303

>>1083301
>которые сами работали
>сам ни в чем разобраться не могу
Ну так бы и сказал.

Ответы83311

28 окт, 18:19 #208 #1083304

>>1081237 (OP)
Я правильно понимаю, что С++ это С с ООП?

Ответы833058331283324

28 окт, 18:20 #209 #1083305

>>1083304
Нет.

Ответы83307

28 окт, 18:25 #210 #1083307

>>1083305
Может быть ты программист?

28 окт, 18:26 #211 #1083308

Анонасы, надо DLL ебануть на плюсах с C++ AMP/CUDA, но не ебу как из шапра туда данные передавать. Может кто рассказать по теме?

Ответы83310

28 окт, 18:28 #212 #1083310

>>1083308
https://stackoverflow.com/questions/16332701/how-to-call-c-dll-in-c-sharp

Ответы83314

28 окт, 18:29 #213 #1083311

>>1083303
Не обращай внимания на шизика >>1083301
и напиши уж тогда buffer[c]=i+'0'. Но это тебе поможет только для двоичной системы. Тебе бы про ASCII коды узнать.

28 окт, 18:30 #214 #1083312

>>1083304
Кроме ООП, С++ обрёл ещё и капельку функционального программирования и STL. А так - да.

28 окт, 18:30 #215 #1083314

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

Ответы83317

28 окт, 18:38 #216 #1083317

>>1083314
Дальше сам, добрый человек. Ключевые слова я тебе дал, теперь попотей, поищи, как твой тип передавать, тем более что ты, сука, даже не удосужился его в своём вопросе упомянуть.
https://www.codeproject.com/Articles/66244/Marshaling-with-C-Chapter-Marshaling-Simple-Type

Ответы83327

28 окт, 18:45 #217 #1083321

>>1083280
>пук
Аргументы будут? То, что это работает, и соответствует документации библиотеки, приведено по ссылке выше.

28 окт, 18:46 #218 #1083322

>>1083302
Он тебе пишет про то, что
int c
эквивалентно
int c = random(seed(phaseOfMoon));

Ответы83362

28 окт, 18:47 #219 #1083324

>>1083304
С с ООП это Си-с-классами

28 окт, 18:57 #220 #1083327

>>1083317
В хуй мне нужны ключевые слова по ссылкам, на которых я сто раз был? Одни, блядь, целые трактаты про marshalling выдают, другие про какой-то interop загоняют, третьи вообще предлагают пересесть на c++/cli. Мне нужно передать объект, либо хитровыебанный массив, назад скорее всего вернуть только хитровыебанный массив.

Ответы8333083660

28 окт, 18:59 #221 #1083328

Сап, смотрю на cppreference документацию по одному из контейнеров STL, там про метод iterator insert( iterator pos, const T& value ); пишут:
>If an exception is thrown, there are no effects (strong exception guarantee)
Про возможные типы выбрасываемых исключений ничего.
А что может выкинуться, кроме std::bad_alloc / std::invalid_argument ?
inb4: ничего.

Ответы83360

28 окт, 19:06 #222 #1083330

>>1083327
> на которых я сто раз был?
И чё, не попёрло? Тогда вон из профессии.
> Мне нужно передать объект
Класс это не только данные, но и тесно связанные алгоритмы. Как ты их передавать собрался, холоп? Придумывай как абстрагироваться до данных. Ты справишься.

Ответы83597

103 Кб, 1000x667

28 окт, 19:07 #223 #1083332

>>1083046
Лол, тебе поебать на байтики, но когда-нибудь байтики выебут тебя

28 окт, 19:22 #224 #1083338

Сап, допустим есть метод класса, который просто изменяет значение поля (поле - встроенного типа, типа int, char и т.п.) в экземпляре этого класса. Может ли быть так, что поле вдруг стало read-only (например, сломались - перестали записываться, но остались доступными для чтения - ячейки памяти, которые хранили значение этого поля). Что тогда вообще должно произойти? Произойдет terminate()?

Ответы83340

28 окт, 19:25 #225 #1083340

>>1083338
Да, только libastral подключи.

28 окт, 19:30 #226 #1083347

72 Кб, 1388x902

97 Кб, 1382x886

Анон, подскажи пожалуйста, почему у меня невнятно пидорасит сборку.
Есть 3 класса.
QtGuiApplication1
selector
bot_V_0

Если я пытаюсь добавить #include "bot_V_0.h" в "selector.h", то получаю пик 1.
Если пытаюсь добавить #include "bot_V_0.h" в "selector.cpp", то сначала всё норм, но потом, после реализации какой-либо функции, я получаю пик 2
То же самое, но с большим успехом касается и включения "bot_V_0.h" в "QtGuiApplication1.h" - пидорасит, а при включении в "QtGuiApplication1.cpp" работает и позволяет создавать объекты bot_V_0 и использовать функции.

У "bot_V_0.h" есть только одно включение #include "QtGuiApplication1.h". Везде есть #pragma once

Что я делаю не так?

Ответы83366

28 окт, 20:00 #227 #1083360

>>1083328
>А что может выкинуться, кроме std::bad_alloc / std::invalid_argument ?
Всё, что может выкинуть конструктор T.

28 окт, 20:02 #228 #1083362

>>1083322
>int c
>эквивалентно
>int c = random(seed(phaseOfMoon));
Но ведь это чуж

Ответы8336683367

28 окт, 20:09 #229 #1083366

>>1083347
>Что я делаю не так?
Делаешь так, чтобы нам не хотелось помочь тебе.
>>1083362
идинахуй

Ответы83372

28 окт, 20:14 #230 #1083367

>>1083362
Неинициализированная переменная = неопределенное поведение = может быть любое значение. Всегда ваш, сегфолт.

Ответы83369

28 окт, 20:18 #231 #1083369

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

Ответы8337183390

28 окт, 20:20 #232 #1083371

>>1083369
Инжой
https://habrahabr.ru/company/infopulse/blog/338812/

Ответы83373

53 Кб, 1394x892

28 окт, 20:23 #233 #1083372

>>1083366
>Делаешь так, чтобы нам не хотелось помочь тебе.
После твоих слов решил ещё покопаться и выявить косяк. Создал новый проект, полностью пустой из трёх классов
QtGuiApplication2
С1
С2
Начал потихоньку его нагружать.
Сделал включения классов C1 и C2 в QtGuiApplication2, а класса QtGuiApplication2 в каждый из них.
Идентичный косяк появился при следующем шаге - объявлении в классе С1 указателя на экземпляр класса QtGuiApplication2;

Листинг класса с косяком:
#pragma once
#include "QtGuiApplication2.h"
class C1
{
private:
QtGuiApplication2 * mainpr;
public:

C1();
~C1();
};

Почему так нельзя? Как тогда передать указатель на объект?

Ответы83374

28 окт, 20:25 #234 #1083373

>>1083371
Во-первых, бойан.
Во-вторых, что ты этим собрался сказать?

Ответы83375

28 окт, 20:27 #235 #1083374

>>1083372
>Сделал включения классов C1 и C2 в QtGuiApplication2, а класса QtGuiApplication2 в каждый из них.
Ну вроде очевидно в чем косяк, не? Перед C1 и C2 сделай форвард вида: class QtGuiApplication2 ;

Ответы83377

28 окт, 20:27 #236 #1083375

>>1083373
То, что там может быть любое значение, буквально.

Ответы83376

28 окт, 20:31 #237 #1083376

>>1083375
Ещё раз: UB это неопределённое поведение. Вообще неопределённое. Никак. А не "считывание случайного значения".

Ответы83380

28 окт, 20:31 #238 #1083377

>>1083374
Если бы ты был рядом я бы тебе отсосал.

28 окт, 20:37 #239 #1083380

>>1083376
Ты аутист. Формально там будет то значение, которое там было до этого. А это может быть много чего. Фрейм прошлого вызова какой-то функции. Кусок системы. Трамплин. Дебажный филлер. ASLR.

Ответы8338183390

28 окт, 20:39 #240 #1083381

>>1083380
>Формально
Ну раз сказал это слово, тащи ссылки на стандарт.

Ответы83384

28 окт, 20:43 #241 #1083384

>>1083381
Аутист, плес. Читай устройство твоей операционной системы.

Ответы83385

28 окт, 20:43 #242 #1083385

>>1083384
Быстро же ты слился, мда.

Ответы83387

28 окт, 20:44 #243 #1083387

>>1083385
>пук
Тут вообще одни школьники, что ле? Удачных каникул.

28 окт, 20:52 #244 #1083390

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

Ответы83391

28 окт, 20:55 #245 #1083391

>>1083390
>Если компилятор видит использование неинициализированной переменной, он может хоть тебе в тапки нассать без предупреждения
Я ровно это и написал. А вот что там окажется по этому адресу, уже определяется не стандартом с++, а внешними факторами, некоторые из которых я упомянул - реализация фреймов, реализация ос.

Ответы83396

28 окт, 21:24 #246 #1083396

>>1083391
Компилятор в том числе может породить код, который никогда не прочтёт то, что там написано.

Ответы83397

28 окт, 21:28 #247 #1083397

>>1083396
Зачем кормить слившуюся лалку?

Ответы83403

28 окт, 21:38 #248 #1083403

>>1083397
Тебя никто и не кормит, толстячок.

28 окт, 23:14 #249 #1083468

>>1083132
Так, падажжи, с про синглтоны спрашивал я, а ты говоришь с каким-то другим агрессивным аноном, если что.
>>1082940-кун

28 окт, 23:19 #250 #1083474

>>1083213
Забей, в армейке тебя будут достаточно заебывать. Лучше на месте сориентируйся, если время будет, попроси чтоб книжку какую прислали.
>как-то договориться чтобы был доступ к компьютеру
Да. Вас спрашивают, кто умеет в компы, ты вызываешься, и потом жалеешь об этом. Потому что придется быть секретарем всей части, а обычные обязанности никто не отменял.

29 окт, 06:42 #251 #1083597

>>1083330
Класс не как абстрактную структуру данных, а как нечто, наследованное от Object. Какая, в жопу, абстракция?

Ответы83655

29 окт, 06:45 #252 #1083599

>>1083213
Прогай в уме, лол.

29 окт, 09:17 #253 #1083631

>>1083213
Попросись в десонт, там много прогают.

29 окт, 10:24 #254 #1083655

>>1083597
>нечто, наследованное от Object
Как ты собрался передавать то, чего в плюсах нет?

Ответы83667

29 окт, 10:35 #255 #1083660

>>1083327
>Одни, блядь, целые трактаты про marshalling выдают, другие про какой-то interop загоняют, третьи вообще предлагают пересесть на c++/cli.
И что тебя смущает? Именно этим и надо заниматься.

29 окт, 10:35 #256 #1083662

Какую IDE использовать?

Ответы8366483680

29 окт, 10:45 #257 #1083664

>>1083662
VS Code.
Visual Studio Community Edition.
CLion идеевский.
VIM не IDE

Ответы83677

29 окт, 11:06 #258 #1083667

>>1083655
В этом и заключался вопрос, не?

Ответы83672

29 окт, 11:12 #259 #1083672

>>1083667
Через маршалинг и интероп, а можно на c++/cli. Ну или скачай ReactOS и перепиши весь WinAPI.

29 окт, 11:41 #260 #1083677

>>1083664
> Visual Studio Community Edition
А чем он лучше обычной?

Ответы83679

29 окт, 11:44 #261 #1083679

>>1083677
Официальной бесплатностью. Впрочем может для студентов есть варианты и получше.

29 окт, 11:48 #262 #1083680

>>1083662
Microsoft Visual Studio C++ 2005

Ответы83686

29 окт, 12:01 #263 #1083685

Сап, не могу понять:
Есть метод getData:
...
struct Data
{
...
}
...
Data arr[10];
...
...
Data getData(int i)
{
...
return arr;
}

Этот return как бы должен вернуть a по ссылке, или же он вернёт временную структуру Data, скопировав её содержимое из a?

Ответы83687

29 окт, 12:03 #264 #1083686

>>1083680
2015 update 3?

Ответы83688

29 окт, 12:04 #265 #1083687

>>1083685
Твоя функция возвращает один экземпляр Data.

29 окт, 12:08 #266 #1083688

>>1083686
Стоит с этой версии начинать?

Ответы83689

29 окт, 12:11 #267 #1083689

>>1083688
Не, смотри 2017 сразу. Не будет каких то фич c++17. У меня 2015 u3

Ответы83692

29 окт, 12:14 #268 #1083692

>>1083689
Я только хочу вкатиться

Ответы83738

29 окт, 13:30 #269 #1083727

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

Ответы83736

29 окт, 14:09 #270 #1083736

>>1083727
>strtok
Это не тред Си.

29 окт, 14:30 #271 #1083738

>>1083692
Ставь 2017 сразу.

Ответы83743

29 окт, 15:21 #272 #1083743

>>1083738
Она же весит очень много

Ответы8374783931

29 окт, 15:31 #273 #1083747

>>1083743
Там больше зависит от того, что ставить. Если добавить UWP, Кородовы и прочие ASP.NET, выйдет дохера.
Только что поставил чистую установку, выбрав Desktop development with C++, без C# даже. Заняла 2 гига. Может еще в других папках что-то. Поверь, у меня SSD всего 120ГБ, из них 10 свободно, я бы заметил если бы она не влезла.

Ответы83931

21 Кб, 508x249

29 окт, 15:43 #274 #1083756

Я не разу не сталкивался с такой установкой, это Микрософт двигается в сторону Линукса? Ладно, там хоть будет меню выбора? я скачал компилятор на всякий, вот сейчас буду качать студию

Ответы83762

29 окт, 15:50 #275 #1083759

>>1081237 (OP)
Сап плючаны, решил тут забацать небольшую игрушку на OpenGL, на MVSN17, и немного прифигел с того, что подключение к студии идёт через анус жопы сидалищного мозоля прямой кишки пердака. При этом я помню как приходилось трахаться с такой элементарщиной в 2007 и прочих версиях. Неужели в дваксемнадцатом не смогли придумать нормальной подключелки пакетов по типу npm например?

Ответы83769

29 окт, 15:52 #276 #1083762

>>1083756
Отбой, я ковырнул эти файлы, нашел пути к ехе, А почему такой вес? типа чтобы с нета не качать

Ответы83931

7 Кб, 334x111

29 окт, 15:55 #277 #1083764

Анон, а один из этих файлов разве не может скачать с нета что нужно? а то мне 30 гигов на диске держать, удалять не вижу смысла, интернета то не будет

Ответы8376583778

29 окт, 16:00 #278 #1083765

>>1083764
Я хз что ты там качаешь, я только что ставил скачав один файл vs_Community.exe весом 1Мб. Ей богу, ставим студию всем двачем.

Ответы83767

29 окт, 16:09 #279 #1083767

>>1083765
Ну вот, и хорошо, я вот тоже пару файликов скачаю, а что нужно докачается

29 окт, 16:19 #280 #1083769

79 Кб, 1613x889

38 Кб, 1243x644

66 Кб, 1881x799

96 Кб, 1729x1010

>>1083759
Можно, непонятно правда зачем, заняло 10 минут с гуглением.
1. В инсталляторе студии ставишь NuGet Packet Manager
2. В студии заходишь в меню Tools - Nuget Packet Manger - Manage Packages for solution
3. В Nuget packet manager ищешь через browse и ставишь два пакета: freeglut и glew.
4. Компилируешь пример и запускаешь, идешь пить шамапнское.
5. обламываешься, видишь что не слинковалось, и либо разбираешься по человечески с либами, либо как советуют в инете, ставишь третий пакет с зондами - nupengl.core

Ответы83784

29 окт, 16:31 #281 #1083778

>>1083764
Я из-за такой хуйни купил новый ССД под систему.
До VS жил на почётном олдфаге на 60гб, обновился на 512гб, на всякий случай.

Ответы83780

29 окт, 16:36 #282 #1083780

>>1083778
А все равно ссд раз в три года менять нужно вроде

Ответы837858378983931

126 Кб, 1251x600

29 окт, 16:37 #283 #1083781

Так Аноны, что добавить или убрать? у меня выходит не 2 гиг а около 7гигов

Ответы83783

29 окт, 16:40 #284 #1083783

>>1083781
Подозреваю что Windows 10 SDK. Правда хуй знает будет ли без нее работать.

Ответы83787

29 окт, 16:40 #285 #1083784

>>1083769
Спасибо анон.

Ответы83786

29 окт, 16:41 #286 #1083785

>>1083780
По идее только если 24/7 сборку на нем гонять. Ну и большие ССД делаются по худшим технологиям, поэтому портятся быстрее.

Ответы83787

29 окт, 16:41 #287 #1083786

>>1083784
Но я бы советовал тогда уж в строну пакетов SDL2, SDL2-image смотреть.

29 окт, 16:43 #288 #1083787

>>1083783
Да, я тоже,
>>1083785
Хз, может и я прикуплю сдд гигов на 120 или меньше

105 Кб, 1250x499

29 окт, 16:47 #289 #1083788

А, вот Анон смотри настроил на 2,50 гига

Ответы8379483931

29 окт, 16:49 #290 #1083789

>>1083780
>А все равно ссд раз в три года менять нужно вроде
Мой на 60 жил уже 7 лет и чувствовал себя неплохо. Я бы сидел на нём ещё лет 7 спокойно.
А по поводу замены - зайди в hw там тебе всё подробно расскажут, но вообще, менять смысла нет, потому что ресурс даже хуёвого ССД - просто безумен.

Ответы83790

29 окт, 16:52 #291 #1083790

>>1083789
Ооо, зайду

29 окт, 17:03 #292 #1083794

>>1083788
Много. У меня 1.8.

29 окт, 18:50 #293 #1083858

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

29 окт, 18:50 #294 #1083859

Сумма цифр числа без операций деления и умножения. Чё делать-то, бля?
массив? строка?

Ответы838828388384034

29 окт, 19:02 #295 #1083871

Умножение на 0.1 представляется как деление на 10?

Ответы83931

29 окт, 19:12 #296 #1083882

>>1083859
>Сумма цифр числа без операций деления и умножения
>Сумма цифр числа
>Сумма
Попробуй операцию сложения

Ответы83888

29 окт, 19:14 #297 #1083883

>>1083859
Preg_replace("", "+");

29 окт, 19:17 #298 #1083888

>>1083882
Выделить цифру из числа суммой, лолшто?

или я ебанат?

Ответы83894

29 окт, 19:26 #299 #1083894

>>1083888
Да я пошутил.

Число в строку
Строку в массив с ковертацией символов в числа
Суммируешь массив

Ответы83895

29 окт, 19:28 #300 #1083895

>>1083894
>с ковертацией символов в числа
Там внутри операция деления.

Ответы839008390583931

29 окт, 19:33 #301 #1083900

>>1083895
Ну не конвертируй. Суммируй строчные символы опираясь на их числовое значение.

Ответы83905

29 окт, 19:39 #302 #1083905

>>1083895
>>1083900
Любой отдельный символ, представленный в C++ как char, на самом деле обычное число. Любые операции (сложение, вычитание…), применяемые к обычным целым числам, можно применять к символам char.

29 окт, 20:38 #303 #1083931

>>1083743
Если верить >>1083747, то 2017 весит меньше, чем 2015 только для плюсов в минимальной версии.
>>1083762
Ясен хуясен, это установщик. Есть интернет-установщик, весит пару мегабайт.
>>1083780
ССД нужно менять один раз в хуй знает, сколько лет, если только тебе не крайне не повезло с моделью (баг в прошивке или езё гавно какое).
>>1083788
Скажи потом, заработало оно или нет. Похоже на то, что СДК для 8.1 она ставит обязательно, а для 10 - необязательно. Но вот VC тебе по-моему нужен, это же компилятор.
>>1083871
С очень большой вероятностью - нет. Результат будет отличаться в последних знаках.
>>1083895
Не охуел ли ты? Считывай число из cin посимвольно, посимвольно переводи в числа и складывай, где тут деление?

29 окт, 21:02 #304 #1083949

как роботает memory_order_conzume?

29 окт, 22:49 #305 #1083984

Есть какая-либо библиотека для работы с файлами Excel?

Ответы83988

29 окт, 22:56 #306 #1083988

>>1083984
Есть. Даже бесплатные были.

Ответы83992

29 окт, 23:02 #307 #1083992

>>1083988
Примеры, плиз

Ответы83999

29 окт, 23:08 #308 #1083999

>>1083992
Давно занимался, сейчас уже не могу привести ту библиотеку что мне подошла, к сожалению.
В хистори браузера отыскал только https://www.codeproject.com/articles/42504/excelformat-library

Но я помню что пришёл к выводу, что придётся работать стандартными средствами Microsoft. И с ними и работал.

30 окт, 00:15 #309 #1084034

>>1083859
https://stackoverflow.com/a/19076173

30 окт, 01:03 #310 #1084053

>>1081237 (OP)
Почему за boost могут сразу прописать по ебалу?

Ответы8411484337

30 окт, 05:16 #311 #1084114

>>1084053
Наоборот, за прописывание по ебалу могут сразу в boost.

30 окт, 09:13 #312 #1084139

Двач, как правильно "Storage duration" переводится?

Ответы84140841438418084199

30 окт, 09:14 #313 #1084140

>>1084139
Продолжительность склада

30 окт, 09:21 #314 #1084143

>>1084139
Срок хранения.

30 окт, 11:57 #315 #1084180

>>1084139
>переводится
В жопу переводы.
http://eel.is/c++draft/basic.stc#def:storage_duration

Ответы8418784188

30 окт, 12:16 #316 #1084187

>>1084180
Молодец, гуглить научился, иди перед мамкой похвастайся, а вопрос был в другом.

Ответы8418884190

30 окт, 12:17 #317 #1084188

>>1084187
>а вопрос был в другом.
Я на него ответил:
>>1084180
>В жопу переводы.

30 окт, 12:20 #318 #1084190

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

Ответы84191

30 окт, 12:24 #319 #1084191

>>1084190
Сейчас же вроде утро понедельника, ты почему не в школе тупой школяр?

Ответы84192

30 окт, 12:25 #320 #1084192

>>1084191
Я вроде просил тебя не расстраиваться.

Ответы84193

30 окт, 12:27 #321 #1084193

>>1084192
А я вроде нахуй тебя давно послал. Тупость тупого школьника читать не интересно.

Ответы84195

30 окт, 12:30 #322 #1084195

>>1084193
>Тупость тупого школьника читать не интересно.
Никому не интересно читать твою тупость — это тебя так расстраивает?

30 окт, 12:38 #323 #1084199

>>1084139
Тупой школьник, ты настолько туп, что даже не догадался посмотреть в вышедший некоторое время назад перевод стандарта C++?

Ответы84207

30 окт, 12:39 #324 #1084202

Как продлить VSC 2017? Обычного входа майковской учеткой ему хватит, или нужно, что бы акк была подписка?
Едришкины шишки, какого там нигде нет уведомления, что пробная версия. Бесплатно, говорили они, аналог Express'a, думал я.

Ответы84206

30 окт, 12:43 #325 #1084206

>>1084202
>Бесплатно, говорили они
https://stackoverflow.com/questions/43390466/visual-studio-community-2017-is-a-30-day-trial#comment73916298_43390466

Ответы84247

30 окт, 12:43 #326 #1084207

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

Ответы84208

30 окт, 12:45 #327 #1084208

>>1084207
>Скачал, посмотрел и ответил на свой вопрос.
Фикс, не поймёте ведь дауны.

Ответы84209

30 окт, 12:46 #328 #1084209

>>1084208
Ну и какой же ответ?

Ответы84210

30 окт, 12:47 #329 #1084210

>>1084209
Класс памяти.
Мне это определение вполне понравилось.

Ответы84212

30 окт, 12:49 #330 #1084212

>>1084210
>Класс памяти.
Это storage class, а не duration.

Ответы84214

30 окт, 12:51 #331 #1084214

>>1084212
Там и то и другое переведено как класс памяти.

Ответы84248

30 окт, 14:27 #332 #1084247

>>1084206
Там и написано бесплатно ебин. Сейчас бы считать что твое фейкомыло кому то интересно.

30 окт, 14:28 #333 #1084248

>>1084214
Ахуенный подход к терминологии.

Ответы84273

30 окт, 15:26 #334 #1084273

>>1084248
Что ты хочешь от дегенератов переводящих стандарт?

30 окт, 15:26 #335 #1084274

25 Кб, 718x608

28 Кб, 910x620

20 Кб, 744x634

Ньюфаг продолжает вкатываться.
Возник вопрос с объявлением и использованием шаблона.
Если объявлять как на первом пике и как пишут в сети, то получается пик 2. Как это делать правильно? Пробовал пик 3 - проблема с таким объявлением очевидна

Ответы8427784288

30 окт, 15:28 #336 #1084277

>>1084274
1. Ты не можешь выносить реализацию шаблонных методов в .cpp. Все должно быть в .h.

2. typename T доступен только в том типе, в префиксе которого он определен, в данном случае genotype. Родительский тип о нем никогда ничего не узнает.

Ответы8427884279

30 окт, 15:32 #337 #1084278

>>1084277
1. Можешь. Просто определение надо писать полностью
template <typename T> void bot_V_0::orgy(int child) { / ... / }

Ответы8428284284

30 окт, 15:32 #338 #1084279

>>1084277
>1. Ты не можешь выносить реализацию шаблонных методов в .cpp. Все должно быть в .h.
Это понятно. Но я и произвожу определение шаблонных методов и их реализацию только в .h - пик 1. Но при этом получаю пик 2 в .cpp, хотя там я ничего не успел сделать.

Ответы84282

30 окт, 15:39 #339 #1084280

>>1081237 (OP)
Анон, почему --f() не компилируется, а f() - 1 корректно? Почему оператор -- применим только к l-value?
В чем отличия f(a++) и f(a); ++a; ?

Ответы8436284376

30 окт, 15:41 #340 #1084282

>>1084278
Это специализация. Подумай о ее доступности при линковке.

>>1084279
Всмысле? Если ты все имплементируешь в .h, то что ты делаешь в .cpp? Я явно вижу имплементацию методов шаблонного класса.

30 окт, 15:41 #341 #1084283

Ошибка после установки vs2017 https://pastebin.com/dpKa2qHL
У меня win7x64 помогите

Ответы84291

96 Кб, 604x339

30 окт, 15:41 #342 #1084284

>>1084278
>orgy
>child
зарепортил на всякий случай

Ответы84286

30 окт, 15:43 #343 #1084286

>>1084284
Хорош.

30 окт, 15:44 #344 #1084288

>>1084274
>Если объявлять как на первом пике и как пишут в сети, то получается пик 2.
ты сообщение компилятора скажешь или нет мать твою

27 Кб, 480x360

30 окт, 15:46 #345 #1084291

>>1084283
Перезагрузись

Ответы84293

30 окт, 15:48 #346 #1084293

>>1084291
Ой, он меня пытается затроллить

Ответы8430184368

30 окт, 15:58 #347 #1084301

>>1084293
Не, он говорит что иди нахуй из треда с этой ересью.

30 окт, 16:20 #348 #1084322

Что означает двоеточие в начале строки
> ::CoInitialize(NULL);
?
Код взял из примера для VS с этой страницы http://proginfo.ru/excel/

Ответы8434184343

30 окт, 16:40 #349 #1084337

>>1084053
Так как это не стандарт, в любой момент в либах может что-то поменяться, и это сломает пользовательский код

30 окт, 16:45 #350 #1084341

>>1084322
Глобальное пространство имен?

30 окт, 16:48 #351 #1084343

>>1084322
https://stackoverflow.com/questions/4269034/what-is-the-meaning-of-prepended-double-colon ну первая ж ссылка в гугле, чего у него не спросить?

Ответы84351

30 окт, 17:03 #352 #1084351

>>1084343
Спасибо, просто не силен в английском

30 окт, 17:21 #353 #1084362

>>1084280
Здесь нет экспертов C++?

Ответы8437284400

30 окт, 17:31 #354 #1084368

>>1084293
Отчего же? Ошибка доступа к файлу установщика, вполне может помочь.

30 окт, 17:34 #355 #1084372

>>1084362
Где где а тут точно их нету

30 окт, 17:43 #356 #1084376

>>1084280
>Почему оператор -- применим только к l-value?
Потому что -- это =- . Это оператор, который присваивает значение. Ты не можешь присвоить зачение временному значению, стандарт запретил. Ты можешь сделать это только в том случае, если забиндишь rvalue-ссылку к этому значению (т.е. сделаешь его лвалью).

Но ты можешь переопределить оператор для классов: http://coliru.stacked-crooked.com/a/cb9d26b17f83c51f
и там делать то, что угодно, если сигнатуру правильную сделаешь.
>В чем отличия f(a++) и f(a); ++a; ?
В том, что если стандарт так решил, что результат a++ для интегральных типов - это временное значение (прежнее), а не лвалью. Соответственно, если f(a++) никогда не зарезолвится в f(int &a).

Ответы8437784418

30 окт, 17:44 #357 #1084377

>>1084376
>Потому что -- это =-1
Не совсем, но мысль ты понял.

30 окт, 18:16 #358 #1084400

>>1084362
Из за ссылочных типов. В цпп всегда все из за ссылок.

30 окт, 18:52 #359 #1084418

>>1084376
Что такое временное значение?

Ответы84429

30 окт, 18:52 #360 #1084419

Аноны, сейчас изучаю стек и нашёл на одном сайте такой приём его создания:

struct StackElement {
Value value;
StackElement next;
};

struct Stack {
StackElement head;
};

Stack createStack()
{
return new Stack();
}

Подскажите, пожалуйста, что означает Stack createStack()? Где об этом можно почитать? Потому что также видел, что данный приём используется и в реализации двоичных деревьев.

Ответы8442384429

30 окт, 18:58 #361 #1084423

>>1084419
Самое главное ж пропустил - в Stack *createStack() нужен указатель и мне не понятно, как именно он работает.

30 окт, 19:13 #362 #1084429

>>1084418
Это значение, у которого нет места хранения. Если функция не возвращает ссылку, она может вернуть только временное значение.
>>1084419
createStack - это фабрика. new возвращает указатель на созданный объект. Что именно ты хочешь узнать? Вместо лишней функции можно передавать аргументы конструктору или вызывать new самому, в этом примере совершенно лишняя функция.
*

Ответы84439844488445484471

30 окт, 19:24 #363 #1084439

>>1084429
Я хочу узнать, что значит конструкция <название структуры> <название функции>, а также
<название структуры> *<название функции>. Просто нигде не могу найти инфы про этот момент.

Ответы8444284464

30 окт, 19:25 #364 #1084442

>>1084439
Я не знаю почему, но двачу не нравится звёздочка. Я имел в виду: <название структуры> "символ звёздочка"<название функции> и <название структуры> "символ звёздочка""символ звёздочка"<название функции>

Ответы8444384454

30 окт, 19:26 #365 #1084443

>>1084442
>Я не знаю почему, но двачу не нравится звёздочка.
Потому что ты ньюфаг.

Ответы84447

30 окт, 19:28 #366 #1084447

>>1084443
Да, но речь не об этом.

30 окт, 19:30 #367 #1084448

>>1084429
>Это значение, у которого нет места хранения
Как нет место хранения? А где оно хранится? В пустоте над стеком парит?

Ответы84464

30 окт, 19:38 #368 #1084454

>>1084429
>>1084442
Насколько я понял, эта функция возвращает указатель на структуру. Но какой от этого профит и для чего это может использоваться?

Ответы84464

30 окт, 19:48 #369 #1084464

>>1084439
Ты прикалываешься? Это функция, возвращающая указатель.
>>1084448
Два самых примитивных варианта:
- в регистре
- хуй знает где и может перемещаться
Ещё вопросы?
>>1084454
Фабрика это, блядь, ФАБРИКА. new используют тогда, когда нужно создать не автоматический объект, а объект в динамическо памяти, который нужно самому потом удалить. Конкретно в этом случае createStack - бесполезная функция.
Не знаешь, что такое new - пиздуй книгу читать.

Ответы84716

30 окт, 19:53 #370 #1084471

>>1084429
>Это значение, у которого нет места хранения. Если функция не возвращает ссылку, она может вернуть только временное значение.
Можно более формально это объяснить?

Ответы84489

30 окт, 20:13 #371 #1084489

>>1084471
Насколько более формально? Попробую.
http://eel.is/c++draft/basic.lval#1.2 - в современном стандарте временное значение, у которого нет места хранения - это prvalue.
http://eel.is/c++draft/expr.call#11
Вкратце: если функция возвращает не ссылку, то места хранения у возвращаемого значения нет, и оно обязательно prvalue.

30 окт, 21:15 #372 #1084549

Анон, помоги мне решить задачу.

>Напишите функцию Base const D1BaseToD2Base( Base const base ), которая преобразует указатель типа Base на объект типа D3, который ссылается на экземпляр Base, соответствующий D1, в указатель, ссылающийся на экземпляр Base соответствующий D2.

Пояснение: нам дали Base на объект типа D3. Надо вернуть указатель типа Base ссылающийся на D2. У D3 два экземпляра Base. Один в D1, другой в D2. Изначально указатель ссылается на Base в D1, а надо получить ссылающийся на Base в D2. При этом оба указателя будут ссылаться куда-то внутри D3.

Я написал такой код, но у меня нихуя не работает: https://ideone.com/9NeDah

Написал дерево наследования и расположениее объектов в памяти: [Base][D1][Base][B2][D3], но мне все равно непонятно, как сдвигать указатель.

Ответы8459884603

30 окт, 21:34 #373 #1084571

Обновите ссылки на литературу, ибо половина из них более недоступна

30 окт, 21:51 #374 #1084583

Может кто-нибудь, плез, пояснить, как построить граф импликаций, если на вход поступает булева функция в форме Крома? Или что читать, чтобы это понять. В проге не шарю, а лаба подошла. Нагуглить удалось лишь алгоритм решения 2-sat, но нигде не объясняется, как же построить изначально граф импликаций и обратный ему не гоните ссаными тряпками плез((((((((((((((((

30 окт, 22:13 #375 #1084598

>>1084549
в /rf, аватарка. А еще себя тру-программистом называл.

30 окт, 22:21 #376 #1084603

>>1084549
1) Не нужно использовать статик_каст для спуска вниз по дереву наследования, это небезопасно. Если ты принимаешь указатель на D3, то отрази это в сигнатуре.
2) Тряси своего препода, блядь!
3) https://ideone.com/trdjrM
4) Конкретно этот пример вообще ничего не показывает. Какой ты указатель не приведи к указателю на D2, он будет печатать одно и то же. Чтобы проиллюстрировать правильность выбора базы, ты должен хранить в базе что-то, и в наследниках сохранять идентифицирующее значение.

Ответы84644

30 окт, 22:59 #377 #1084644

>>1084603
>https://ideone.com/trdjrM
Но дело в том, что сигнатура функции не Base const star foo(D3 const star d3), а D1BaseToD2Base( Base const star base ), и то, что в D3 содержится два объекта Base, усложняет приведение.

Ответы8466484671

30 окт, 23:25 #378 #1084664

>>1084644
Я тебе уже скинул рабочий код, ты имеешь что-то против этого?
>Но дело в том, что сигнатура функции не Base const star foo(D3 const star d3), а D1BaseToD2Base( Base const star base )
Нассы человеку, который требует то, что ты пишешь, именно с такой сигнатурой, на ебальник. Если ты хочешь писать качественный код, приводить типы указателей вниз по дереву наследования без dynamic_cast или своей собственной системы хранения типов нельзя.
И уж ТЕМ БОЛЕЕ нельзя делать так в том случае, когда база может быть включена больше одного раза. То есть, не тебе просто нахуй это не нужно, так как указатель на базу из указателья на D3 можно получить двумя способами.
Быть может, ты получишь высшую оценку, если объяснишь это преподу.

Ответы8466584667

30 окт, 23:26 #379 #1084665

>>1084664
> указатель на базу из указателья на D3 можно получить двумя способами.
И, ЧСХ, он будет разный в зависимости от того, какой способ ты использовал.

30 окт, 23:29 #380 #1084667

>>1084664
>Я тебе уже скинул рабочий код, ты имеешь что-то против этого?
Имеет принимающая система, которая требует указатель на конст Base. Моя последняя попытка такая: https://ideone.com/yFl17T

Ответы84674

30 окт, 23:37 #381 #1084671

>>1084644
Мне кажется, это вообще нельзя решить без вычисления смещений внутри объекта и обращения к сырым данным, зная, как конкретные компиляторы собирают объект.

30 окт, 23:39 #382 #1084674

>>1084667
Уебывай нахуй, пидрила, и говно своё забери. У тебя должно быть 4 каста - два вниз и два наверх, обмазывайся этим сам.

42 Кб, 518x279

30 окт, 23:52 #383 #1084680

Принялось с сишными кастами, которые кастят что угодно во что угодно,даже небо, даже Аллаха.
https://ideone.com/YgXUzh

Ответы8468384695

30 окт, 23:54 #384 #1084683

>>1084680
Иногда заглядываю в этот тред и почти всегда проигрываю с аутизма местных дебичей.

Ответы84692

26 Кб, 567x462

31 окт, 00:00 #385 #1084692

>>1084683
Проиграй над тем, что ты не можешь увидеть проблемы этого кода.

Ответы8470584747

31 окт, 00:03 #386 #1084695

>>1084680
Так и выглядит известный object slicing?

31 окт, 00:17 #387 #1084704

>>1081237 (OP)
Ребята, возникла задача, в ходе которой надо будет исходные, ну, например, 10 чисел надо будет разбивать на различные группы, а потом с этими группами проводить определенные действия, ну точнее придется обращаться к элементам этих групп. И я не очень понимаю, какой структурой воспользоваться для этого, лол.
Разбиений будет не больше чем количество чисел.

31 окт, 00:18 #388 #1084705

>>1084692
Я же не мудак, чтобы тратить свое время на головоломки в виде говнокода на с++.
Алсо, на сколько я помню, есть известная проблема с такими stl функциями и итераторами, они вроде считаются как декларация новой функции а не вызов, что-то такое. Хз в общем не хочу заморачиваться даже об этом ибо дропнул с++ уже давно и пишу на норм языке.

Ответы847118471884833

31 окт, 00:24 #389 #1084711

>>1084705
>пишу на норм языке

Привет, брат по питону

Ответы84722

31 окт, 00:31 #390 #1084716

>>1084464
Сори, возможно, это действительно даунские вопросы, но я нигде не могу найти на них ответы. Последний: что тогда означает данный кусок кода - https://pastebin.com/fdS74B5X . Зачем нужны 2 указателя, можно ли обойтись без них? А если есть возможность указать такому долбоёбу, как я, где про это всё можно почитать, лучше не тратьте своё время и именно так и сделайте. Сори за аутизм, я правда не специально.

Ответы84746

31 окт, 00:31 #391 #1084718

>>1084705
>уже давно и пишу на норм языке
Зачем же ты на нем пишешь? Думаешь, кому-то нужны твои проекты? Хочешь заработать денег, найти жену-жируху, обмазаться кредитами, жиреть, стареть и растить спиногрызов?
Ты мог бы изучать метапрограммирование шаблонов, отличия auto от decltype, свертку ссылок, решать головоломки, изучать проблемы множественного и виртуального наследования, но вместо этого ты выбрал унылую жизнь нормалфага.

Ответы8471984726

31 окт, 00:33 #392 #1084719

>>1084718
а ты выбрал бесполезное задротство. мог бы с таким же успехом какашки по высоте раскладывать.

47 Кб, 807x463

31 окт, 00:38 #393 #1084720

Еее хиккуем

31 окт, 00:40 #394 #1084722

>>1084711
Скорее, по Common Lisp'у.

31 окт, 00:46 #395 #1084726

>>1084718
А нахуя тратить время на изъебы с хуевым языком, когда можно тоже самое сделать гораздо быстрее и понятней на нормальном?

Пишу на С, радуюсь жизни. Что надо на коленке на лобать пишу на питоне. Угараю по функциональщине в свободное время.

Ответы8490085060

31 окт, 01:31 #396 #1084746

>>1084716
https://goo.gl/kVaela

Ответы84748

31 окт, 01:32 #397 #1084747

>>1084692
Две очевидны: запись в *last и инкремент не того в --e.end(), а еще две?

31 окт, 01:35 #398 #1084748

>>1084746
Где здесь можно прочитать именно интересующий меня вопрос?

Ответы84751

31 окт, 01:47 #399 #1084751

>>1084748
Ёпт, я даже не знаю, тебе не книга о языке нужна, тебе нужна книга об алгоритмах.
https://www.google.ru/search?q=керниган+практика+программирования

Ответы84754

31 окт, 01:54 #400 #1084754

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

Ответы84766

31 окт, 02:26 #401 #1084766

>>1084754
Не переживай, со временем вникнешь.
А 2 указателя - на правого и левого сына каждого узла дерева, логично же. Если я правильно твой вопрос понял
По поводу визуализации вот:
https://neerc.ifmo.ru/wiki/index.php?title=Дерево_поиска,_наивная_реализация

мб станет понятнее.

Ответы84853

31 окт, 09:15 #402 #1084833

>>1084705
>есть известная проблема с такими stl функциями и итераторами, они вроде считаются как декларация новой функции а не вызов
При чем здесь stl и Most vexing parse?

Ответы84853

31 окт, 09:59 #403 #1084853

>>1084766
>А 2 указателя - на правого и левого сына каждого узла дерева, логично же.
Могу предположить, что он спрашивал про указатель на указатель.
>>1084833
Собственно, поэтому он и пересел.

Ответы85079

31 окт, 13:09 #404 #1084900

>>1084726
>Выбирает язык вместо предметной области
>Гордится что пишет на голом С
А ты ведь не слишком умен?

Ответы85057

31 окт, 15:28 #405 #1084976

Можно ли как-нибудь сделать, чтобы функция, объявленная и определенная в .cpp класса, имела доступ к непубличным элементам класса, и не прописывая её как метод этого класса, или как функцию друг?
Типа такого:
//somecalss.h
class SomeClass
{
public:
void SomeMethod();
private:
int someProperty;
}

//someclass.cpp
void Serve()
{
someProperty = 0;
}

void SomeClass::SomeMethod()
{
Serve();
}

В общем, как писать код со всякими инкапсуляциями, и не засорять пространство имен класса?

Ответы8498484995

31 окт, 15:43 #406 #1084984

>>1084976
Точнее тут не инкапсуляция, а извлечение метода, только не внося его в объявление класса.

31 окт, 16:07 #407 #1084995

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

31 окт, 18:13 #408 #1085057

>>1084900
>Думает, что предметная область не зависит от языка.
>Гордится что ест говно на С++.
А ты ведь не слишком умен?

31 окт, 18:20 #409 #1085060

>>1084726
>когда можно тоже самое сделать гораздо быстрее
Гуй на си пишется особенно быстро и понятно.

Ответы85078

31 окт, 18:42 #410 #1085078

>>1085060
Тащемта ты прав. GNOME тому пример.

Ответы85086

31 окт, 18:46 #411 #1085079

>>1084853
>Могу предположить, что он спрашивал про указатель на указатель.
Именно. А вообще эта учёба бред какой-то: ничего не объясняют, но кучу задач с двухнедельным дедлайном дают. В чём смысл такой учёбы, если для большинства это просто "посмотрели, что-то сделали и забыли".

Ответы85207

31 окт, 19:08 #412 #1085086

>>1085078
>GNOME тому пример.
Ты под gtk пробовал кодить? Там по сравнению с Qt для сравнимого функционала надо раз в 10 текста писать. Поэтому в гноме сейчас сплошной js, а за пределами редхата обычно сразу берут питон, валу или кресты, чтобы с gobject дела не иметь.

Ответы85088

31 окт, 19:15 #413 #1085088

>>1085086
>Qt
Так куте это даже не С++ практически.

>js
Так все уже пишут на JS гуи, даже куте уже давно перешла на QML. Потому что поняли что с++ это днище полнейшее.

Реально в современном мире нет ниоднйо причины писать на С++, когда есть Go и Java для серверных приложух, и есть JS и т.п для гуи и есть питон для всего остального.

Ответы8521085220

31 окт, 22:38 #414 #1085207

>>1085079
>. В чём смысл такой учёбы, если для большинства это просто "посмотрели, что-то сделали и забыли".
Подними жопу с насиженного и пойди к начальникам, скажи им всё это. То, какая будет учёба, зависит от тебя.
>Именно.
Указатель на указатель нужен потому, что очень часто тебе нужно не только узел найти, но и перенаправить ссылку на него. То есть, ссылка на узел из предка - это его логическая часть.

Ответы8524485616

31 окт, 22:41 #415 #1085210

>>1085088
>Реально в современном мире нет ниоднйо причины писать на С++
Главная причина писать на плюсах - необходимость работы с большими объемами бинарных данных, обычно с медиа контентом. Воспроизведение, редактирование, вот это вот всё. Ну и игры.

Ответы85253

31 окт, 22:52 #416 #1085220

>>1085088
>Так куте это даже не С++ практически.
По историческим причинам. Сейчас можно то же самое сделать препроцессора: http://www.copperspice.com/
>даже куте уже давно перешла на QML
Не перешла и не перейдет, потому что на обычных QWidget все еще проще делать десктопные интерфейсы. Дохуя народу на четверке сидит, и перекатываться на пятерку ради QML не собирается.
>Реально в современном мире нет ниоднйо причины писать на С++
Ну так не пиши, иди в другой тред.

Ответы85253

31 окт, 23:25 #417 #1085244

>>1085207
>ссылка
указатель, т.е.

31 окт, 23:39 #418 #1085253

>>1085210
Это вообще не причина ибо с бинарными данными можно работать откуда угодно.
Про игры отдельная история, там так завелось. К тому же долбоебы из майкрософта решили наговнокодить директ3д на с++.

>>1085220
На куте 4 остались либо люди погрязшие в нем полностью и им уже никуда не деться, кроме как поддерживать ебаный легаси.
Впрочем, по этим же причинам до сих пор пишут на с++, во многих случаях из-за легаси говна, тянущегося веками.

>на обычных QWidget все еще проще делать десктопные интерфейсы
Вот тут ты абсолютно не прав. Мне недавно понадобилось сделать одно кроссплатформенное гуи приложение для себя. Я поначалу начал на Виджетах, но потом понял, что это такое говно, которые к тому же еще и дико тормозное ибо рендирит все софтварно, а там у меня куча 2д графики было. Решил попробовать QML, и я охуел насколько я быстрее и компактнее сделал все на нем. И работает это все намного быстрее, потмоу что использует OpenGL для рендеринга. К тому же можно писать сразу под мобилки. Не понимаю, как говно-виджеты могут сравниваться вообще с этим.

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

Ответы85255

31 окт, 23:44 #419 #1085255

>>1085253
>Это вообще не причина ибо с бинарными данными можно работать откуда угодно.
Где угодно тебе придется проебать месяцы на построение кодогенератора, в крестах для этого есть шаблоны. Близкое по смыслу есть в шарповых дженериках, но это совершенно не то и язык одной платформы.

Ответы85263

1 ноя, 00:01 #420 #1085263

>>1085255
Как связаны шаблоны с бинарными данными? Какие нахуй кодогенераторы, ты о чем вообще?
Если тебе нужно работать с бинарными форматами читать/писать то ты это и на питоне можешь сделать и на яве и на аллахе. Пишешь свой сериализатор/десериализатор и все. Не понимаю каким хуем тут вообще шаблоны могут пригодиться.
Все это метапрограммирование на шаблонах - полная чушь и наносит только вред.
Возьми тот же stl, ебаные итераторы, контейнеры. В котором максимум дженерик алгоритмы, которые ни на что не годятся в реальных приложениях. В реальных приложениях, пишутся свои алгоритмы и структуры данных заточенные под конкретную задачу.
Даже возьми тот же хеш тейбл в стл, нахуй он вообще там нужен если он не конкурентный? Что туда складывать? Аргументы из командной строки?
Если я захочу структуру данных чтобы доставать значения по ключу, который будет работать в условиях многопоточности, что в наши дни обычная практика, то мне нужно будет писать свою версию, которая будет работать более менее с fine grained lock, а не лочить весь контейнер, ибо по другому с STL парашей ты не сделаешь.
С++ настолько пытались сделать общим языком для всего, что получилось так, что он теперь не пригоден ни для чего.

Ответы852748528285512

1 ноя, 00:35 #421 #1085274

>>1085263
>Пишешь свой сериализатор/десериализатор и все.
Ну да, проебываешь на его императивное написание месяц-другой и все, хули нам хохлам. Это если протокол прост как палка и у тебя есть данные чтобы дебажить свое поделие для всех типов и структур в него входящих.

>Все это метапрограммирование на шаблонах - полная чушь и наносит только вред.
Аргумент, не поспоришь.

>Возьми тот же stl, ебаные итераторы, контейнеры. В котором максимум дженерик алгоритмы, которые ни на что не годятся в реальных приложениях.
Не люблю переходить на личность, но тут не слабо так повеяло болью неосилятора.

>Даже возьми тот же хеш тейбл в стл, нахуй он вообще там нужен если он не конкурентный?
Хороший вопрос для собеседования - как сделать из обычного хеша "конкурентный". Алсо ознакомься с инсерторами - на них можно изготовить тобой желаемое. Тебе не обязательно лочить весь контейнер для одной операции. Ты можешь спокойно декорировать стандартный инсертер, что, к слову спижжено из раннего спринга, хуй его знает как оно там сейчас.

Ответы85288

1 ноя, 00:48 #422 #1085282

>>1085263
Я тут мимокрокодил, но вроде как есть такая штука: в игродвижках всякие данные быстрее работают, если их класть слоями: сначала массив x-координат, потом y-координат, потом r-компонента, потом g-компонента, и b-компонента. Если ты заведешь class Vertex { float x, y, r, g, b; } в Яве, то вектор этих вертексов будет лежать в памяти xyrgbxyrgb, в то время как в плюсах можно написать аллокатор, чтобы он это все разворачивал в xxyyrrggbb, при этом оставляя всю мощь оптимизатора для конструций типа for(int i = 0 ... i++) v.x++

Ответы85284853088535085512

1 ноя, 00:53 #423 #1085284

>>1085282
Так конечно можно сделать, но суть не в этом. Суть в том что можно один раз написать общий алгоритм, скажем, линейного преобразования и через трейты применять его ко всем существующим сейчас и появляющимся в последствии структурам данных. При этом компилятор сгенерирует сотни и тысячи реальных классов (ну, если скажем у нас N стратегий и M субъектов, то будет минимум MxN производных классов для шаблона двух параметров), что позволит все это дело оптимизировать на стадии компиляции.

Ответы85290

1 ноя, 01:07 #424 #1085288

>>1085274
> проебываешь на его императивное написание месяц-другой и все, хули нам хохлам.
Все ясно с тобой.
Поехавший шизик, который несет рандомную хуйню, не слышавший ни про bison ни про другие парсер/FSM генераторы. Ниразу не реализовавший ни один протокол.
Алсо, большинство протоколов пишется на С, а не на С++.
Вот только до сих пор непонятно каким хуем ты туда шаблоны собралися пихать и главное нахуя.

Дальше откровенно поехавший бред кукаретика.

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

Ответы852958529885512

1 ноя, 01:10 #425 #1085290

>>1085284
>При этом компилятор сгенерирует сотни и тысячи реальных классов
Ты забыл добавить: сделает сотни бесполезных копий твоего кода и экзешник в сотни мегабайт, засрет весь кеш процессора, и будет работать медленнее чем обычная Си-шняая реализация с void*

Ответы85512

1 ноя, 01:17 #426 #1085295

>>1085288
>откровенно поехавший бред кукаретика.
Самокритично. Особенно доставило про TBB и генераторы. Хотя что ждать от треда борщехлебов?

Ответы85304

1 ноя, 01:27 #427 #1085298

>>1085288
>bison ни про другие парсер/FSM
Может мне еще ASN1 в проект затащить, мамкин big data designer?

Ответы85304

1 ноя, 01:35 #428 #1085299

>>1081237 (OP)
Что скажут эксперты С++ по данному ресурсу?
http://www.learncpp.com/

Ответы85512

1 ноя, 02:02 #429 #1085304

>>1085295
>>1085298
Я конечно понимаю, типичная с++ блядинка это примерно как пхп обезьянка, только еще с выебанным мозгом и ебанутым самомнением. Но нельзя же просто так, рандомные слова, вбрасывать в тред и думать, что ты что-то умное сказанул.

1 ноя, 02:21 #430 #1085308

>>1085282
>class Vertex { float x, y, r, g, b; }
>в плюсах можно написать аллокатор, чтобы он это все разворачивал в xxyyrrggbb
Ну-ка, покажи нам такой аллокатор.

Ответы853098531685393

1 ноя, 02:37 #431 #1085309

>>1085308
Да че ты хочешь от поехавших? Их уровень знания С++, как и всего CS в целом, заканчивается на уровне этого треда.

1 ноя, 03:08 #432 #1085316

>>1085308
Я думаю он объебался со словом аллокатор, но сделать так можно: использовать три указателя, вместо трех значений. Типичная джавамакака как раз дрочит на указатели "как в этих проклятых крестах". Ну, чтобы для массива из 100 объектов не надо было датацентр арендовать.

1 ноя, 03:32 #433 #1085318

Probably easiest to compare C++ with C. C was a beautifully designed language.

The features of the C language were added with purpose. They were intended to solve a real problem and solve that problem they did. Simple arithmetic with promotion. Automatic register allocation with a portable (between compilers) ABI. A simple-but-handy preprocessor. And so on. C is also a lean language: a single person can feasibly write a C compiler in a relatively short time (tinycc is a C99-compliant C compiler written in just 65kLOC of C!). C set out to achieve a clear goal and it achieved its goal. Thanks to the cleanness of C lots of quality compilers came on the market quickly and even decent OSS solutions were available early on.

In contrast, C++ never had a clear goal. The features of C++ were added almost at random. Stroustrup's original idea was essentially "C is cool and OOP is cool so let's bolt OOP onto C". Retrospectively, OOP was massively overhyped and is the wrong tool for the job for most of the people most of the time. Half of the GoF design patterns just emulate idioms from functional programming. Real OOP languages like Smalltalk and IO express many useful things that C++ cannot. The feature that C needed most was perhaps parametric polymorphism (aka generics in Java and C#, first seen in ML in the late 1970s) but instead of that C++ got templates that weren't designed to solve any particular problem but rather to kind of solve several completely unrelated problems (e.g. generics and metaprogramming). Someone actually discovered by accident that C++ templates are Turing complete and they wrote and published a program that computed prime numbers at compile time. Wow. A remarkable observation that led to decades of template abuse where people used templates to solve problems much better solved by other pre-existing solutions such Lisp macros and ML polymorphism. Worse, this abuse led to even more language features being piled on top, like template partial specialization.

The massive incidental complexity in C++ made it almost impossible to write a working compiler. For example, it remains extremely difficult to write a parser for the C++ language. The syntax also has horrible aspects like List<Set<int>> being interpreted as logical shift right. None of the original C++ compilers were reliable. During my PhD in 2000-2004 I was still stumbling upon dozens of bugs in C++ compilers from GNU, Intel and SGI. Only after two decades did we start to see solid C++ compilers (by which time C++ was in decline in industry due to Java and C#).

C++ is said to be fast but the reality is that C++ is essentially only fast when you write C-like code and even then it is only fast for certain kinds of programs. Due to the "you don't pay for what you don't use" attitude, C++ is generally inefficient. RAII injects lots of unnecessary function calls at the end of scope, sometimes even expensive virtual calls. These calls often require data that would otherwise be dead so the data are kept alive, increasing register pressure and spilling and decreasing performance. The C++ exception mechanism is very inefficient (~6x slower than OCaml) because it unwinds the stack frame by frame calling destructors rather than long jumping. Allocation with new and delete is slow compared to a modern garbage collector so people are encouraged to use STL collections but these pre-allocate huge blocks of memory in comparison so you've lost the memory-efficiency of C and then you are advised to write your own STL allocator which is no better than using C in the first place. One of the main long-standing advantages of C over modern languages is the unpredictable latency incurred by garbage collectors. C++ offers the worst of both worlds by not having a garbage collector (making it impossible to leverage useful concepts like purely functional data structures properly) but it encourages all destructors to avalanche so you get unbounded pause times (worse than any production GC). Although templates are abused for metaprogramming they are very poor at it and C++ has no real support for metaprogramming. For example, you cannot write an efficient portable regular expression library in C++ because there is no way to do run-time code generation and compilation as you can in Java, C# and languages dating back to Lisp (1960). So while Java and C# have had regular expressions in their standard libraries for well over 10 years, C++ only just got them and they are slow.

C++ is so complicated that even world experts make rookie mistakes with it. Herb Sutter works for Microsoft and sits on the C++ standards committee where he influences the future of C++. In a lecture he gave his favorite 10-line C++ program, a thread-safe object cache. Someone pointed out that it leaks memory (Herb Sutter's favorite C++ 10-liner has a memory management bug).

My personal feeling is that the new Rust programming language is what C++ should have been. It has useful known features like generics, discriminated unions and pattern matching and useful new features like memory safety without garbage collection.

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

1 ноя, 03:32 #433 #1085318

Probably easiest to compare C++ with C. C was a beautifully designed language.

The features of the C language were added with purpose. They were intended to solve a real problem and solve that problem they did. Simple arithmetic with promotion. Automatic register allocation with a portable (between compilers) ABI. A simple-but-handy preprocessor. And so on. C is also a lean language: a single person can feasibly write a C compiler in a relatively short time (tinycc is a C99-compliant C compiler written in just 65kLOC of C!). C set out to achieve a clear goal and it achieved its goal. Thanks to the cleanness of C lots of quality compilers came on the market quickly and even decent OSS solutions were available early on.

In contrast, C++ never had a clear goal. The features of C++ were added almost at random. Stroustrup's original idea was essentially "C is cool and OOP is cool so let's bolt OOP onto C". Retrospectively, OOP was massively overhyped and is the wrong tool for the job for most of the people most of the time. Half of the GoF design patterns just emulate idioms from functional programming. Real OOP languages like Smalltalk and IO express many useful things that C++ cannot. The feature that C needed most was perhaps parametric polymorphism (aka generics in Java and C#, first seen in ML in the late 1970s) but instead of that C++ got templates that weren't designed to solve any particular problem but rather to kind of solve several completely unrelated problems (e.g. generics and metaprogramming). Someone actually discovered by accident that C++ templates are Turing complete and they wrote and published a program that computed prime numbers at compile time. Wow. A remarkable observation that led to decades of template abuse where people used templates to solve problems much better solved by other pre-existing solutions such Lisp macros and ML polymorphism. Worse, this abuse led to even more language features being piled on top, like template partial specialization.

The massive incidental complexity in C++ made it almost impossible to write a working compiler. For example, it remains extremely difficult to write a parser for the C++ language. The syntax also has horrible aspects like List<Set<int>> being interpreted as logical shift right. None of the original C++ compilers were reliable. During my PhD in 2000-2004 I was still stumbling upon dozens of bugs in C++ compilers from GNU, Intel and SGI. Only after two decades did we start to see solid C++ compilers (by which time C++ was in decline in industry due to Java and C#).

C++ is said to be fast but the reality is that C++ is essentially only fast when you write C-like code and even then it is only fast for certain kinds of programs. Due to the "you don't pay for what you don't use" attitude, C++ is generally inefficient. RAII injects lots of unnecessary function calls at the end of scope, sometimes even expensive virtual calls. These calls often require data that would otherwise be dead so the data are kept alive, increasing register pressure and spilling and decreasing performance. The C++ exception mechanism is very inefficient (~6x slower than OCaml) because it unwinds the stack frame by frame calling destructors rather than long jumping. Allocation with new and delete is slow compared to a modern garbage collector so people are encouraged to use STL collections but these pre-allocate huge blocks of memory in comparison so you've lost the memory-efficiency of C and then you are advised to write your own STL allocator which is no better than using C in the first place. One of the main long-standing advantages of C over modern languages is the unpredictable latency incurred by garbage collectors. C++ offers the worst of both worlds by not having a garbage collector (making it impossible to leverage useful concepts like purely functional data structures properly) but it encourages all destructors to avalanche so you get unbounded pause times (worse than any production GC). Although templates are abused for metaprogramming they are very poor at it and C++ has no real support for metaprogramming. For example, you cannot write an efficient portable regular expression library in C++ because there is no way to do run-time code generation and compilation as you can in Java, C# and languages dating back to Lisp (1960). So while Java and C# have had regular expressions in their standard libraries for well over 10 years, C++ only just got them and they are slow.

C++ is so complicated that even world experts make rookie mistakes with it. Herb Sutter works for Microsoft and sits on the C++ standards committee where he influences the future of C++. In a lecture he gave his favorite 10-line C++ program, a thread-safe object cache. Someone pointed out that it leaks memory (Herb Sutter's favorite C++ 10-liner has a memory management bug).

My personal feeling is that the new Rust programming language is what C++ should have been. It has useful known features like generics, discriminated unions and pattern matching and useful new features like memory safety without garbage collection.

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

Показать весь текст
Ответы85353853868546685512

1 ноя, 09:59 #434 #1085350

>>1085282
Ты сейчас Structure Of Arrays.
И оно не обязательно быстрее будет, зависит от данных и алгоритма

1 ноя, 10:04 #435 #1085353

>>1085318
>Принес тут крестовым блядинкам поразмышлять
> implying мы этого не знаем
Ну ты открыл секрет Полишинеля.
мимо-крестобоярин

1 ноя, 12:15 #436 #1085386

>>1085318
Не понимаю, почему мартыханам так печет от крестов? Не хочешь - не пиши, сейчас миллион других языков. Но ведь нет, регулярно прискакивают в наш уютный тредик, и снова заводят унылую песню "ряяя кресты-говно, вы все дегенераты", как будто их Страуструп в детстве лично обидел.

Ответы85441

1 ноя, 12:31 #437 #1085393

>>1085308
Первый попавшийся с гугла
https://github.com/bgaster/soa/blob/master/examples/example1.cpp

Ответы85489

1 ноя, 14:50 #438 #1085441

>>1085386
Их препод каждый день обижает. На доске же одна школота.

Ответы85443

1 ноя, 14:52 #439 #1085443

>>1085441
Неправда. Я олдфак, который вкатывается в программирование.

Ответы85449

1 ноя, 14:58 #440 #1085445

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

Ответы8544685553

1 ноя, 15:00 #441 #1085446

>>1085445
Сам напиши. Я вот сейчас ебучий калькулятор с приоритетом операторов и скобок пишу. Внезапно понадобился.

Ответы85448

1 ноя, 15:03 #442 #1085448

>>1085446
У меня весь день на это уйдёт. Мне бы мануал и приммеры из которых можно копипастить. Да и вообще если самому писать, то это шантинг ярд выйдет, а я хочу что-нибудь покачиственее. С деревом приоритетов и всем таким.

Ответы8545185460

1 ноя, 15:04 #443 #1085449

>>1085443
Зачем тебе С++ тогда? С него обычно подростки начинают, чтобы игрули делать. Учи джаву лучше, там зарплаты выше.

Ответы85463

1 ноя, 15:06 #444 #1085451

>>1085448
Возьми lua, она простая как топор, маленькая и подключается сполпинка.

Ответы85453

1 ноя, 15:09 #445 #1085453

>>1085451
Поясни. Предлагаешь выучить целый язык ради одной программы.

Ответы85482

1 ноя, 15:26 #446 #1085460

>>1085448
Вот такое?
https://fastmathparser.codeplex.com

1 ноя, 15:29 #447 #1085463

>>1085449
Потому что по району ходят слухи что C++ быстр и производителен и выстраивает мышление правильным образом.

Ответы85469

154 Кб, 499x500

1 ноя, 15:41 #448 #1085466

>>1085318
>Half of the GoF design patterns just emulate idioms from functional programming
>The C++ exception mechanism is very inefficient (~6x slower than OCaml)
>you cannot write an efficient portable regular expression library in C++ because there is no way to do run-time code generation and compilation as you can in Java, C# and languages dating back to Lisp (1960)
>while Java and C# have had regular expressions in their standard libraries for well over 10 years

1 ноя, 15:45 #449 #1085469

>>1085463
>C++ быстр и производителен
Это факт, но тебе оно надо?
Быстрее плюсов есть только си и фортран, но на них что-то более или менее сложное заебёшься писать, да и то выйдет криво. Только ядро в пример не приводи.
> и выстраивает мышление правильным образом.
Ой, таких слухов не ходит. Все знают, что плюсы, как язык, это неперевариваемое говно. Просто пока альтернатив не завезли. Наоборот, есть крылатое выражение, что учить программированию на примере C++ это как проводить сексуальное воспитание на примере жестокой порнухи.
C++ это последний эшелон, когда всё остальное будет непосильно медленное или непосильно в разработке на голом си, даже если в си выносить отдельные кусочки. С++ должен быть третим, четвёртым, десятым языком, который ты узнаешь. Это тёмная сторона программирования, древнее зло, к которому можно прибегать только как к крайней мере.

Ответы8547185474

1 ноя, 15:54 #450 #1085471

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

>альтернатив не завезли
Так Rust жи.

Ответы8548185510

1 ноя, 15:58 #451 #1085474

>>1085469
>Это факт, но тебе оно надо?
Дык. Производительность никогда не лишняя.
>Это тёмная сторона программирования, древнее зло, к которому можно прибегать только как к крайней мере.
Но это же хорошо. Я не люблю играть на лёгких уровнях сложности. С++ это разумный баланс между возможностью изучить и желанием поебаться.
Хотя с хардкора С++ конечно сложно перестать проигрывать.
Я вообще начинал с PHP и теперь просто офигеваю от работы с массивами в C++. Такая анальная ебля, что пиздец.

Ответы8547885481

143 Кб, 480x429

1 ноя, 16:03 #452 #1085478

>>1085474
>Производительность никогда не лишняя
>Но это же хорошо. Я не люблю играть на лёгких уровнях сложности
>Я вообще начинал с PHP

Ответы85490

1 ноя, 16:07 #453 #1085481

>>1085471
> А на СИшке пишется много чего, помимо ядра.
Ты просто молодой, не видал современной большой залупы. На сишке приходится перепердоливать половину плюсов: исключения, полиморфизм на указателях на функции, шаблоны на препроцессоре и.т.п.
Посмотри сишные опенсурс проекты и поохуевай.
> Так Rust жи.
Так нет компилятора-то нормального. Векторизация там через пень-колоду работает, параллелизм на всяких par_for медленный очень, rsmpi даже пробовать страшно...
Вот когда будет компилятор, перейду на Rust. Нет вопросов. А пока приходится по старинке пердолиться.
>>1085474
> Дык. Производительность никогда не лишняя.
google://premature+opmtimization
> Я вообще начинал с PHP
Братан, у нас на хате принято про это молчать. По незнанке не зашквар, конечно, но всё-таки лучше уж плюсы, чем этот фрактал плохого дизайна. Не охуевай, с 99% вероятностью в пыхе всё куда хуже сделано.

Ответы85488854918549285500

1 ноя, 16:08 #454 #1085482

>>1085453
Я предлагаю использовать lua как парсер и интерпретатор формул, с luajit скорость может быть как у натива. "Целый язык" не такой сложный и учится за вечер.

Ответы85553

1 ноя, 16:14 #455 #1085488

>>1085481
>Векторизация там через пень-колоду работает
В плюсах она точно так же анально работает. Паралелизм в плюсах у 80% проектов больше тыщи строк организовывается своими силами (как и все остальное), к тому же мессейдж пассингу есть биндинги для сишного говна (хотя такие вещи все компании обычно тоже велосипедят на коленке), так что хуй знает чо ты там возникаешь. Есть один компилятор, который везде работает одинаково, с единым языком и просто активнй опенсорс (а не хуита в стиле виндовой залупы в которой нет поддержки C99 и баги чинят по 3 года).

Ответы85505

1 ноя, 16:15 #456 #1085489

>>1085393
И где там аллокатор?
Там тупо выделяют массив флоатов и reinterpret_cast-ят его то как AOS, то как SOA
(нарушая при этом strict aliasing rule, как я понимаю).

Ответы85512

1 ноя, 16:15 #457 #1085490

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

1 ноя, 16:17 #458 #1085491

>>1085481
> Не охуевай, с 99% вероятностью в пыхе всё куда хуже сделано.
Хуже - наверное. Но господи как же там просто всё.

Ответы85505

1 ноя, 16:17 #459 #1085492

>>1085481
>google://premature+opmtimization
Одно дело лезть оптимизировать без профайлинга, а просто использовать другую технологию чтобы не закрывать себя заранее в рамки — совсем другое.

Ответы85505

1 ноя, 16:24 #460 #1085500

>>1085481
>Ты просто молодой
Мне 30.

>Посмотри сишные опенсурс проекты и поохуевай.
Я контрибьютор в нескольких крупных.

> На сишке приходится перепердоливать половину плюсов
Не понял о чем ты. На сишке переписывать код на плюсах или что?

>Так нет компилятора-то нормального
Ну это пока.

>Векторизация там через пень-колоду работает
Векторизация вообще везде через жопу работает даже на С, если ты ее не явно на ассемблере или интринсиксах делаешь. Я в этом экперт, это очень часто используется в моей работе.

Ответы8550585517

1 ноя, 16:28 #461 #1085505

>>1085488
Гладко было на бумаге, да забыли по овраги, а по ним ходить. На полном серьёзе, в плюсах векторизация, OpenMP и MPI ещё неплохо работают. Если у тебя есть опыт разработки продакшн-лилвел параллельного кода на Rust, то я милостливо прошу, я на конференцию тебя даже послушать приеду, на ПАВТ какой-нибудь.
Компилятор раста это параша уровня gcc, которая с нормальными компиляторами (например, Интела) рядом не лежала.
>>1085491>>1085492
Если у тебя есть одно узкое место, просто перепиши его на языке си и вызывай через JNI из Scala. Если не очень умный прямо, то используй Python, мощная штука и очень простая.
Плюсы нужны только когда есть невероятно медленный прототип.
>>1085500
Так это, вкидывай гитхаб, мы с пацанами посмотрим. Особенно на Rust вкидывай. Особенно как ты на интринсиках или ассемблере icpc обогнал, это мне особенно интересно. Чаще всего щеглы только хуй за щекой у своей мамки обгоняют.
Если ты сможешь обогнать наивную реализацию, скомпилированную icpc, то я так и напишу в треде: "я пиздабол, так и так, тут чувак смог обогнать современный интеловский компилятор". Только это, проверить надо, а иначе ненаучно выходит.

Ответы8550685521

1 ноя, 16:37 #462 #1085506

>>1085505
>векторизация
Даже если не ломает все нахуй — не факт что вообще получится что-то выиграть в перформансе.
>OpenMP и MPI
Тормоза и деревянные игрушки вбитые в пол.
Опять же — хочешь на плюсах и хорошо — делай всё сам. Библиотеки типа folly (реально хорошие, а не буст, один кусок которого использовать можно, а за другой нужно в гулаги сслать) только начинают появляться (спустя 40-то лет).
>через JNI из Scala
Если бы ты хоть раз работал с JNI то не говорил такой хуйни. Чтобы что-то с ним выиграть придется половину бизнес логики на плюсы перенести. Ну либо выйти из ситуации где у тебя скала отвечает за веб-морду а вся логика в нативном коде.

Ответы8550785511

1 ноя, 16:38 #463 #1085507

>>1085506
>сслать
ссылать

1 ноя, 16:40 #464 #1085510

>>1085471
>Ну если ты криворукая макака,
Иди хуярь на ассемблере тогда, ты же не криворукий.

>Так Rust жи.
Хотя, я погорячился - ты же просто кукаретик.

1 ноя, 16:41 #465 #1085511

>>1085506
> Даже если не ломает все нахуй — не факт что вообще получится что-то выиграть в перформансе.
Слив засчитан.
> Тормоза и деревянные игрушки вбитые в пол.
Слив засчитан. Если у тебя есть возможность обогнать 256 ядер кластера, которые оркеструются MPI, 32 ядрами одного узла, да ещё влиться в 256 ГБ памяти этого узла, то ты заслуживаешь минимум PhD. Публикуй.
> Чтобы что-то с ним выиграть придется половину бизнес логики на плюсы перенести.
Если так, то там не одно узкое место, и надо всё переписывать на плюсах, так это весь point моего поста.

Ответы8551685523

1 ноя, 16:42 #466 #1085512

>>1085263
>С++ настолько пытались сделать общим языком для всего, что получилось так, что он теперь не пригоден ни для чего.
FUD неосилятора.
>>1085282
>в то время как в плюсах можно написать аллокатор
Объясните мне в двух словах, как это можно провернуть, не используя указатели и не разбивая класс/структуру? Геттеры писать? Или контейнер сделать интрузивным? Если интрузивным, то на кой ляд аллокатор?
>>1085288
>Алсо, большинство протоколов пишется на С, а не на С++.
Что такого охуительного в C по сравнению с C++? Вам кто-то запрещает неиспользовать STL?
>>1085288
>Добавлю лишь, то что даже в санной яве есть конкурентные lock-free контейнеры и параллельные алгоритмы.
Стандарт не должен быть бустом.
>>1085290
>Ты забыл добавить: сделает сотни бесполезных копий твоего кода и экзешник в сотни мегабайт
Пример можешь показать?
>>1085299
Эксперты этот ресурс не видели никогда и ради ответа на твой вопрос читать его не будут.
>>1085318
> portable (between compilers) ABI
Учитывая то, что это АБИ минимальное настолько, насколько это возможно, то какое в этом достижение?
>>1085318
>RAII injects lots of unnecessary function calls at the end of scope, sometimes even expensive virtual calls.
Что значит лотс? Сколько объектов, столько и функций, что в это неправильного? Почему проблемы пользователей языка (делающих тяжёлые деструкторы и большие иерархии объектов) - это проблемы языка?
>These calls often require data that would otherwise be dead so the data are kept alive,
штоблядь
>The C++ exception mechanism is very inefficient (~6x slower than OCaml) because it unwinds the stack frame by frame calling destructors rather than long jumping.
Это может быть важно разве что для интерактивных программ - то есть, за счёт сборки мусора во время простоя увеличивается производительность во время вычислений.
>but it encourages all destructors to avalanche so you get unbounded pause times (worse than any production GC)
Что мешаешь сделать методы clear в объектах и вызывать их заранее, если так страшно нежелательна "пауза"? Чем это хуже, чем в Си, в котором программист делает то же самое, но только без гарантии проверки вызова деструктора? Данные и функции можно инкапсулировать в класс, класс разрушать вручную.
>there is no way to do run-time code generation and compilation as you can in Java, C# and languages dating back to Lisp (1960)
Сравнивает хуй с пальцем. Что значит "no way"? Если так сильно нужна кодогенерация, можно тащить компилятор целиком, LLVM x86-64 около 90 МБ весит без либ (которые для регексов, например, не нужны), его ещё и собрать можно с другими флагами, чтобы уменьшить.
>(Herb Sutter's favorite C++ 10-liner has a memory management bug).
http://flyingfrogblog.blogspot.ru/2013/10/herb-sutters-favorite-c-10-liner.html
Какой там меори лик, блядь? Виджеты в гуе размножаются почкованием?
>>1085489
Нет, там флоаты во флоат реинтерпретятся. И вообще, там какое-то расширение используется (аттрибут в начале кода), а не чистый C++.

1 ноя, 16:42 #466 #1085512

>>1085263
>С++ настолько пытались сделать общим языком для всего, что получилось так, что он теперь не пригоден ни для чего.
FUD неосилятора.
>>1085282
>в то время как в плюсах можно написать аллокатор
Объясните мне в двух словах, как это можно провернуть, не используя указатели и не разбивая класс/структуру? Геттеры писать? Или контейнер сделать интрузивным? Если интрузивным, то на кой ляд аллокатор?
>>1085288
>Алсо, большинство протоколов пишется на С, а не на С++.
Что такого охуительного в C по сравнению с C++? Вам кто-то запрещает неиспользовать STL?
>>1085288
>Добавлю лишь, то что даже в санной яве есть конкурентные lock-free контейнеры и параллельные алгоритмы.
Стандарт не должен быть бустом.
>>1085290
>Ты забыл добавить: сделает сотни бесполезных копий твоего кода и экзешник в сотни мегабайт
Пример можешь показать?
>>1085299
Эксперты этот ресурс не видели никогда и ради ответа на твой вопрос читать его не будут.
>>1085318
> portable (between compilers) ABI
Учитывая то, что это АБИ минимальное настолько, насколько это возможно, то какое в этом достижение?
>>1085318
>RAII injects lots of unnecessary function calls at the end of scope, sometimes even expensive virtual calls.
Что значит лотс? Сколько объектов, столько и функций, что в это неправильного? Почему проблемы пользователей языка (делающих тяжёлые деструкторы и большие иерархии объектов) - это проблемы языка?
>These calls often require data that would otherwise be dead so the data are kept alive,
штоблядь
>The C++ exception mechanism is very inefficient (~6x slower than OCaml) because it unwinds the stack frame by frame calling destructors rather than long jumping.
Это может быть важно разве что для интерактивных программ - то есть, за счёт сборки мусора во время простоя увеличивается производительность во время вычислений.
>but it encourages all destructors to avalanche so you get unbounded pause times (worse than any production GC)
Что мешаешь сделать методы clear в объектах и вызывать их заранее, если так страшно нежелательна "пауза"? Чем это хуже, чем в Си, в котором программист делает то же самое, но только без гарантии проверки вызова деструктора? Данные и функции можно инкапсулировать в класс, класс разрушать вручную.
>there is no way to do run-time code generation and compilation as you can in Java, C# and languages dating back to Lisp (1960)
Сравнивает хуй с пальцем. Что значит "no way"? Если так сильно нужна кодогенерация, можно тащить компилятор целиком, LLVM x86-64 около 90 МБ весит без либ (которые для регексов, например, не нужны), его ещё и собрать можно с другими флагами, чтобы уменьшить.
>(Herb Sutter's favorite C++ 10-liner has a memory management bug).
http://flyingfrogblog.blogspot.ru/2013/10/herb-sutters-favorite-c-10-liner.html
Какой там меори лик, блядь? Виджеты в гуе размножаются почкованием?
>>1085489
Нет, там флоаты во флоат реинтерпретятся. И вообще, там какое-то расширение используется (аттрибут в начале кода), а не чистый C++.

Показать весь текст
Ответы85533

1 ноя, 16:44 #467 #1085516

>>1085511
>Если так, то там не одно узкое место, и надо всё переписывать на плюсах, так это весь point моего поста.
Если ты долбоёб и не можешь почитать как работает JNI — иди и получай PhD в расеюшке.
>Слив засчитан.
Отвечу тебе в твоём же стиле: покидай-ка гитхабчиков, дружочек. Особенно про MPI интересно, как там стандарт поживает и чем оркеструет.

Ответы85526

1 ноя, 16:44 #468 #1085517

>>1085500
>Я контрибьютор в нескольких крупных.
В студию.

>На сишке переписывать код на плюсах или что?
В свете этого утверждения предыдущее подвергается переезду вагоном сомнений.

1 ноя, 16:51 #469 #1085521

>>1085505
>мы с пацанами посмотрим
Может хуй с пацанами друг другу пососете?

> Rust вкидывай
Я не пишу на расте, дебич.

> на интринсиках или ассемблере icpc обогнал
Реально заорал с этого и сразу стало понятно, что ты макака ни разу ничего не векторизовавшая.
Чаще всего ссаный icc просто ебашит очевидный код векторный написанный на С просто тупо наполовину обычными сингл инструкциями, и такая векторизация оказывается медленее раз в 5-8 чем на интринсиксах. И доверять компилятору, высоконагруженный код, который должен выживать из железа максимум, никогда никто не будет, ибо всегда будет существовать вероятность что компилятор сделает хуево. Интел это понимают, поэтому у них есть Math Kernel Library, иначе можно было бы доверить все компилятору и не делать никаких спец либ.
Но тебе откуда знать, ты скорее всего даже не реальный программист, а очередной диван в треде, максимум осиливший laba1.

Можешь не продолжать даже, ибо с нубами о чем-то спорить не вижу смысла.

Ответы855258552685529

1 ноя, 16:53 #470 #1085523

>>1085511
> ты заслуживаешь минимум PhD
С каких это пор PhD дают за макакинг? Хотя...

1 ноя, 16:54 #471 #1085525

>>1085521
>Math Kernel Library
Представь Манюнь, у них шаренная кодовая база. И кто еще после этого диван?

Хотя
>пососете
>дебич
> icc просто ебашит очевидный код векторный написанный на С
это риторический вопрос.

Ответы85530

1 ноя, 16:55 #472 #1085526

>>1085516
Бох ты мой, у меня от твоего кукареку уши заложило.
>Если ты долбоёб и не можешь почитать как работает JNI — иди и получай PhD в расеюшке.
Чего читать? Я писал код, который работает через JNI, весьма легко быстро писать, весьма быстро работает.
> Отвечу тебе в твоём же стиле: покидай-ка гитхабчиков, дружочек. Особенно про MPI интересно, как там стандарт поживает и чем оркеструет.
О, легко.
https://github.com/libMesh/
Вот плюсовая библиотека, там полна коробочка, шаблоны, MPI, говно вышло жуткое. Но быстрее ничего нет. Обгони на Расте хоть. Или покажи, что быстрее работает.
Не ощущаешь сил?
https://github.com/petsc/petsc
Я вызываюсь провести сравнения, реализуй мне из этой библиотеки BiCGStab с LU-предобуславливанием на Расте. Работать должно на MPI-кластере, тестировать будет на 256=16*16 процессоров. Я согласен сам твои результаты опубликовать и тебя первым автором поставить, ты только нормальную реализацию покажи.
Совсем уверенным себя чувствуешь? Перепиши на расте PARDISO. Хотябы версию для общей памяти.
>>1085521
>Я не пишу на расте, дебич.
Так чего ты тогда кукарекал?
> Чаще всего ссаный icc просто ебашит очевидный код векторный написанный на С
Дальше не читал.
https://gist.github.com/kbarbary/9efb3650f1b69b2b6b18e34ad347777b
Жду avx-версию, которая обгоняет референсную имплементацию.

Ответы85528

1 ноя, 16:56 #473 #1085528

>>1085526
>BiCGStab с ILU-предобуславливанием на Расте
Конечно же. Но можешь простой сварганить.

1 ноя, 16:57 #474 #1085529

>>1085521
Мощные сишные гитхабы-то будут сегодня, или перфоманс провалился и ты укатишься обратно в php-тред?

Ответы85536

1 ноя, 16:57 #475 #1085530

>>1085525
Че сказать то хотел, объебос?

1 ноя, 16:59 #476 #1085533

>>1085512
>Нет, там флоаты во флоат реинтерпретятся.
Типа это не нарушает strict aliasing?

Ответы8553585542

1 ноя, 17:00 #477 #1085535

>>1085533
Нет, с чего бы? Ты же в одной единице компиляции это делаешь.

Ответы85540

1 ноя, 17:02 #478 #1085536

>>1085529
Ты же понимаешь, что это анонимный форум, и как бы слово "анонимный" тут не просто так и предполагает, сохранение анонимности его участников, а за раскрытие на некоторых бордах даже банят, не знаю как в этой помойке. Но всегда веселили такие аутисты, которые не могут продолжить дискуссию, рациональными аргументами в поддержку своей позиции, а начинают орать ГИТХАБ СВОЙ ИЛИ НИБЫЛО! Пиздец же дауны. Каково такими быть?

Ответы8553885543

1 ноя, 17:04 #479 #1085538

>>1085536
>Ты же понимаешь, что это анонимный форум,
Гитхаб дохуя деанонит? Хотя судя по твоим жалким оправданиям у тебя уже нет другого выхода.

Ответы85548

1 ноя, 17:04 #480 #1085540

>>1085535
>Ты же в одной единице компиляции это делаешь.
А это тут при чём?

Ответы8554285551

1 ноя, 17:07 #481 #1085542

>>1085540
Это он на data race намекнул, к алиасингу отношения не имеет, вродеб.
>>1085533
Не нарушает. Правило это означает, что перед каждым доступом к значению по указателю, машинный код должен сторнуть все регистры, в которых содержатся lvalue-значения этого типа.

Ответы85550

1 ноя, 17:08 #482 #1085543

>>1085536
Ой, мы слив уже засчитали, без примеров с гитхаба не возвращайся, можешь чужой нести, но чтобы релевантный был.

Ответы85554

1 ноя, 17:08 #483 #1085544

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

1 ноя, 17:10 #484 #1085548

>>1085538
>Я скозал
>Мяяям смари я скозал и он слился!!11

Ответы85552

1 ноя, 17:11 #485 #1085550

>>1085542
>Правило это означает, что перед каждым доступом к значению по указателю, машинный код должен сторнуть все регистры
Это в каком параграфе стандарта так сказано?

> сторнуть все регистры, в которых содержатся lvalue-значения этого типа.
http://eel.is/c++draft/basic.lval#1.sentence-6
Давно C++-выражения хранятся в регистрах?

Ответы85572

1 ноя, 17:11 #486 #1085551

>>1085540
Ну, в целевой структуре алаймент будет таким же.

1 ноя, 17:12 #487 #1085552

>>1085548
Вся суть слившегося студента-отличника обчитавшегося хабрапараши.

1 ноя, 17:12 #488 #1085553

>>1085482
Можно ссылку на пример?

>>1085445
Щас подумал. Производную нужно обязательно брать автоматически из коробки. Луа так умеет?

Ответы85562

1 ноя, 17:13 #489 #1085554

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

Ответы85558

1 ноя, 17:19 #490 #1085558

>>1085554
Этот кукаретик сломался, господа, вносите следующего.

Ответы85561

1 ноя, 17:24 #491 #1085561

>>1085558
Опять же
>Я скозал

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

Ответы8556485572

1 ноя, 17:24 #492 #1085562

>>1085553
>Производную нужно обязательно брать автоматически из коробки
Ты пиздец много хочешь, братюня
https://www.google.ru/search?q=c+++symbolic+math+library

Ответы85586

1 ноя, 17:25 #493 #1085564

>>1085561
> https://www.youtube.com/watch?v=Z-zp5_HI7Rw
ITT

Ответы8556685567

1 ноя, 17:27 #494 #1085566

>>1085564

89 Кб, 200x244

1 ноя, 17:28 #495 #1085567

>>1085564

1 ноя, 17:28 #496 #1085569

Опять перекат пилить...

Ответы85573

# OP 1 ноя, 17:29 #497 #1085571

Опять перекат пилить...

Ответы85573

1 ноя, 17:30 #498 #1085572

Точнее, я говорил о glvalue.
>>1085550
>Давно C++-выражения хранятся в регистрах?
Сам себя обосрал. В C++ нету регистров и форма твоего вопроса выдаёт то, что формулировку ты понял.
>Это в каком параграфе стандарта так сказано?
Окей, я понял, объяснять на пальцах в терминах самого популярного вида архитектуры ЦП не надо, ты говоришь только на языке стандарта. Но при этом слово "регистр" ты почему-то знаешь. Готов принять красную пилюлю?
>>1085561
Действительно, в интернете кто-то неправ и на хую вращал твоё желание поговорить на интересную ТЕБЕ тему.

1 ноя, 17:30 #499 #1085573

>>1085569>>1085571
Давай, бро, перекатывай. Какой оп-пик выберешь?

Ответы8557685577

1 ноя, 17:33 #500 #1085576

>>1085573
> Какой оп-пик выберешь?
ХЗ. Вообще не хочу перекатывать. Пусть кто-нибудь другой.

Ответы85580

1 ноя, 17:35 #501 #1085577

>>1085573
Этот

Ответы85578

95 Кб, 597x349

1 ноя, 17:35 #502 #1085578

>>1085577

Ответы86215

1 ноя, 17:37 #503 #1085580

>>1085576
Перекат, перекат, перекат >>1085579 (OP)

1 ноя, 18:00 #504 #1085586

>>1085562
Вот что нашёл. Подходит по всем пунктам кроме возможности посчитать производную.

Ответы85588

1 ноя, 18:00 #505 #1085588

>>1085586
https://github.com/codeplea/tinyexpr/blob/master/README.md
Ссылку забыл

Ответы85743

1 ноя, 18:46 #506 #1085616

>>1085207
Заглядывали бы эти начальники хоть иногда в вуз. Спасибо за объяснение.

1 ноя, 22:07 #507 #1085743

>>1085588
https://github.com/openturns/ev3
всё. нашёл. вот этот на кресты. то что надо похоже.

Ответы85752

1 ноя, 22:12 #508 #1085752

>>1085743
ход нет. у него от буста зависимость.

2 ноя, 17:38 #509 #1086215

>>1085578
Это типо трифорс? В основе всего кресты?! Спасибо, отличная картинка!
Очередной памятник плюсам

8 ноя, 20:39 #510 #1088923

Бля, столько всего в этих ваших 14/17

Как за всем уследить, как видеть возможность применять фичи

Ответы89234

9 ноя, 14:21 #511 #1089234

>>1088923
Исопльзуй boost, например, оттуда все говно в стандарт тянется. А если ты решил ударить по шаблонам, то тут ты будешь ебаться всегда вне зависимости от стандарта.

Ответы89424

9 ноя, 17:47 #512 #1089424

>>1089234
Постараюсь, ага

Просто постоянно натыкаюсь на новые фичи и начинаю себя некомфортно чувствовать, что я их не использую. Потом начинаю пихать их повсюду и опять начинаю себя некомфортно чувствовать. Так вот и живу ВДИСКОМФОРТЕ

14 ноя, 10:36 #513 #1091696

Нужен c++ программист (cocos2d-x) в мобильный геймдев. Как его найти? Уместно ли запостить вакансию здесь?

Ответы92129

14 ноя, 17:11 #514 #1091892

Вопрос: Нужна что нужно прогеру из математики знать?

Ответы91904

14 ноя, 17:25 #515 #1091904

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

14 ноя, 23:02 #516 #1092129

>>1091696
Кстати умею, лол
Писал игрушу на 2дх
Может фейкопочту закинешь?

15 ноя, 01:14 #517 #1092179

Есть ли сакральный смысл в назначении конкретных значений для членов перечисления (enum которое)? Или это делается из тех же соображений, из которых желательно инициализировать каждую переменную при объявлении (ну тип чтобы в случае чего рандом-ошибки не отлавливать)? Но ведь правила назначения значений по умолчанию членам enum везде одни и те же.

Тред утонул или удален.
Это копия, сохраненная 15 ноября 2017 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion