Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.139.97.157] |
|
Страницы: (32) « Первая ... 22 23 [24] 25 26 ... 31 32 ( Перейти к последнему сообщению ) |
Сообщ.
#346
,
|
|
|
Не за что. Я там так и говорил, что scope – это C-подобное убожество, и лучше уж
class Guard { std::function<void(void)> fn; // функция очистки public: template <typename T> explicit Guard(T&& closure): fn(std::move(closure)) {} ~Guard() { fn(); } }; с последующими там HANDLE sameApp = CreateMutex(NULL, TRUE, uniqName.c_str()); if (sameApp == NULL) return static_cast<void>(logMsg("CreateMutex() failed", GetLastError())); Guard sameAppGuarded([=]() { CloseHandle(sameApp); }); if (GetLastError() == ERROR_ALREADY_EXISTS) if (WaitForSingleObject(sameApp, INFINITE) != WAIT_OBJECT_0) return static_cast<void>(logMsg("Recursive run detected for " + name.filename().string(), GetLastError())); Guard sameAppLocked([=]() { ReleaseMutex(sameApp); }); { SECURITY_ATTRIBUTES attr = { sizeof(attr), NULL, TRUE }; HANDLE hIn = CreateFile((newName.parent_path() / "stdin.txt").string().c_str(), FILE_GENERIC_READ, FILE_SHARE_DELETE,&attr, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); Guard hInGuarded ([=]() { CloseHandle(hIn); }); /* ... */ } |
Сообщ.
#347
,
|
|
|
Лично я бы qt не стал использовать ни для чего, кроме GUI. Да и GUI только из-за того, что альтернатив полноценных для C++ нет. Это фреймворк со своими правилами, которые уже давно очень сильно разошлись с правилами, принятыми в C++. |
Сообщ.
#348
,
|
|
|
Цитата D_KEY @ Поговаривают, одно время там обсуждалось что-то типа std::gui.Да и GUI только из-за того, что альтернатив полноценных для C++ нет. Цитата D_KEY @ Это-то и настораживает. Когда-то точно также VCL разошёлся с WinAPI Это фреймворк со своими правилами, которые уже давно очень сильно разошлись с правилами, принятыми в C++. |
Сообщ.
#349
,
|
|
|
Цитата Qraizer @ Поговаривают, одно время там обсуждалось что-то типа std::gui. Ну вот если это введут, то это и будет killer-фичей, которая убьет QT. Добавлено Цитата Qraizer @ Это-то и настораживает. Когда-то точно также VCL разошёлся с WinAPI Но VCL вывозил за счет своей простоты. На нем за денек можно было налабать какое то сурьезное приложение, которое там работает со звуком, БД, сетью еще чета там. Причем не имея в этом огромного опыта. Буквально сходу сел и пиши. В то время когда такое же приложение написать на том же MFC - уже было проблематично в указанные сроки, а на WinAPI и подавно - геморой. А в QT - поди разберись с ходу, я как то года два-три назад скачал QT Creator все поставил, сожрало места на диске дохрена, запустил, чета там потыкал, думал щас как в VCL, ага, фигвам! Потыкал потыкал, оно у меня что то там не собралось, я на это дело плюнул и забил. |
Сообщ.
#350
,
|
|
|
Цитата Qraizer @ Поговаривают, одно время там обсуждалось что-то типа std::gui. Честно говоря, я против. Это довольно динамичная и не достаточно фундаментальная сфера, чтоб пихать ее в std. Возможно, стоит добавить в C++ какую-то расширенную стандартную библиотеку и туда такие вещи выносить. Например, что-то вроде asio туда просится(а вот в std таки не стоит). |
Сообщ.
#351
,
|
|
|
Цитата D_KEY @ Честно говоря, я против. Это довольно динамичная и не достаточно фундаментальная сфера, чтоб пихать ее в std. Возможно, стоит добавить в C++ какую-то расширенную стандартную библиотеку и туда такие вещи выносить. Например, что-то вроде asio туда просится(а вот в std таки не стоит). Я бы хотел чтоб в С++ внедрили подключаемые публичные репы, как это сделано в том же .NET - nuget пакеты, очень удобная вещь. Во первых отпадает необходимость тянуть все попало в язык, типа той же gui, во вторых не нужно замарачиваться где искать, прям из среды разработки зашел - указал репу, и все, либо руками в проект прописал и собирай. Это очень удобно. Добавлено Просто в комитете по стандартизации засиделись заскорузлые ретрограды, у которых в жопе ностальгия по 80-90-м играет. Поэтому они не делают смелых движений, и по крупице что то там вводят, что уже порой даже отжило себя. |
Сообщ.
#352
,
|
|
|
Цитата D_KEY @ За std::filesystem то же говорили. И за многопоточность. Ничего, сейчас живёт в неком виде, и даже вполне себе сносно выглядит. Другое дело, что я как-то с трудом себе представляю такую штуку стандартизированной, слишком уж комплексная. Это ж не просто окошки порисовать, ещё ж интерактивность какая-никакая нужна.Честно говоря, я против. Это довольно динамичная и не достаточно фундаментальная сфера, чтоб пихать ее в std. Цитата Wound @ Та кто ж против-то. В конце концов в любой инфраструктуре уже есть подобное. Пусть и разрозненное в целом, но в частности вполне себе централизованное. Где-то это дебиановый репозиторий, где-то убунтовый, где-то макрософтовский сторадж. Но ведь это есть там, где есть конкретный хозяин. У того же .NETа он есть, у Дебиана есть, а где он у Плюсов? У него нет конкретного хозяина. Та и в принципе быть не может, Плюсы позиционируются как единые для всех и каждого, не исключая встроенные системы на простеньких микроконтроллерах. Ну вот есть какой-то там буст. Э-э-э... Я бы хотел чтоб в С++ внедрили подключаемые публичные репы, как это сделано в том же .NET - nuget пакеты, очень удобная вещь. |
Сообщ.
#353
,
|
|
|
Цитата Qraizer @ Та кто ж против-то. В конце концов в любой инфраструктуре уже есть подобное. Пусть и разрозненное в целом, но в частности вполне себе централизованное. Где-то это дебиановый репозиторий, где-то убунтовый, где-то макрософтовский сторадж. Но ведь это есть там, где есть конкретный хозяин. У того же .NETа он есть, у Дебиана есть, а где он у Плюсов? У него нет конкретного хозяина. Та и в принципе быть не может, Плюсы позиционируются как единые для всех и каждого, не исключая встроенные системы на простеньких микроконтроллерах. Ну вот есть какой-то там буст. Э-э-э... Так кто то же занимается разработкой нового стандарта, вот пусть сядут подумают, не придумают, на крайняк можно попросить мелкомягких, те с радостью думаю предоставят площадку для такого, тем более что технология уже давно обкатана. Было бы желание, как говорится. Стандарт то откуда то скачать можно, кто то же его писал, хозяина нет, а стандарт разрабатывается. Пусть на те же донаты площадку поднимут. Я не думаю что это какая то проблема. |
Сообщ.
#354
,
|
|
|
Цитата Wound @ Я бы хотел чтоб в С++ внедрили подключаемые публичные репы Да, я тож за. Добавлено Цитата Qraizer @ Другое дело, что я как-то с трудом себе представляю такую штуку стандартизированной, слишком уж комплексная. Это ж не просто окошки порисовать, ещё ж интерактивность какая-никакая нужна. О том и речь. |
Сообщ.
#355
,
|
|
|
Цитата D_KEY @ Да, я тож за. Я тоже за Как-то собирал проект на Расте, чисто ради прикола (ел пельмени со сметаной в это время, домашние - с телятиной!). Так тамошний Cargo четко так, по-пацански, вытащил либы НУЖНЫХ ВЕРСИЙ, собрал их и потом уже прилинковал к откомпиляченным файлам проекта. Я чуть самый сочный пельмень не уронил!!! Ну очень мне эта кухня понравилась!!! Но и в плюсах тож есть неизвестные герои, не побоюсь - без кавычек! Я как-то уже не раз заикался тут о проекте mxe.cc. ИМХО - проблески рационального подхода! Чел (или группа, не в курсе) замутил(и) систему кросс-компиляции Линупс->Уиндовс. И не абы какую, а с поддержкой определенного репозитария. Меня вот лично удивил порт DBUS на винду тамака реализованный Знаю - у пипла двоякое мнение на счет DBUS, пофик - важен сам факт. Да и сам факт существования этого проекта. Это я к чему ... Есть проекты, которые могут стать чем-то большим, но увы - они зиждятся только на интузязизьме. Вот Киля хочет централизованную базу пэкеджей для С++ (либ, которые собираются без гемора и вскрытия вен под различные цели), ну как в Rust, Activestate Perl, возможно и в питоне, да - в PHP ... и я хочу, и все хотят - а кому этим заняться??? Скрытый текст Вон в соседней теме "Куда двигаться дальше?" наши коллеги копья ломают о спинной мозг! А первый креатив - он, блин, на поверхности ... Замутить на базе исходников билд-сервер для плюсов!!! Но не просто и тупо. А взять пример с версионности растовского Cargo. Да, получится нефигенный граф зависимостей либ и их версий. Но и профит будет жэстачайшы (С)(бел.мова бел.лiдэра), имхо. Сюда бы финансистов и финансовых аналитиков привлечь - катались бы все как масло по шоколаду! |
Сообщ.
#356
,
|
|
|
Для C++ довольно сильно распространен conan.
|
Сообщ.
#357
,
|
|
|
Цитата D_KEY @ Для C++ довольно сильно распространен conan. Проект интересный, но качество неочень. К примеру, из доступных предкомпилированных версий OpenSSL для винды, для GCC вааще ничего нет, только под Линупс. Только рецепты. |
Сообщ.
#358
,
|
|
|
В оверхеде, вестимо. Запихивание лямбды в std::function будет сопровождаться аллокациями в куче, даже если лямбда без замыканий. scope(exit) лишен этого недостатка. Хотя есть ненулевая вероятность, что шибко умный компилятор сумеет соптимизировать это дело, но я сомневаюсь, надо пробовать.
Ну и многословнее оно на плюсах, имена нужно гвардам давать, да еще и не повторяющиеся. Костыль, короче. |
Сообщ.
#359
,
|
|
|
Зависит от реализации. std::basic_string<> тоже далеко не во всех случаях использует хип. Простые – а замыканиями обычно таковые и являются, ибо помимо самого замыкаемого объекта других состояний не хранят – будут себе спокойно лежать на стеке.
Добавлено Цитата applegame @ Зато с ручкой, в отличие от Dшного. Костыль, короче. |
Сообщ.
#360
,
|
|
|
Цитата applegame @ В оверхеде, вестимо. Запихивание лямбды в std::function будет сопровождаться аллокациями в куче, даже если лямбда без замыканий. Я помню был какой-то похожий спор с твоим участием (кажется в тематике), где в итоге обнаружилось, что std::function не уступает Dшным замыканиям Там можно сделать и полностью шаблонный класс, без std::function, а deduction guides позволят не писать лишний раз ни типы, ни обертки в духе make_*. Добавлено Цитата applegame @ Ну и многословнее оно на плюсах, имена нужно гвардам давать, да еще и не повторяющиеся. Не думаю, что это проблемой будет реальной. Цитата Костыль, короче. Тут, конечно, от определения "костыля" зависит, но если понимать под костылем быстрое плохое решение вместо правильного, но более трудоемкого, то разницы с D никакой. |