Обновить
3

M. Sc., Junior Researcher, Postgraduate Student

0,3
Рейтинг
2
Подписчики
Отправить сообщение

Unisys ClearPath Dorado

Так и в C# c WinForms/WPF всё было просто. В С++Builder тоже несложно было, но там своя специфика.

Здесь вопрос в том, что понимать под 'легче'. В моем комментарии под этим подразумевалась сложность разработки, а не освоения. Я согласен с тем, что С++/CLI не так то и прост в плане освоения. Но в плане разработки GUI-части, WinForms явно проще чем WinAPI, MFC и WTL.

На данный момент std::start_lifetime_as немного кривой: он в некоторых компиляторах генерирует излишний код: https://godbolt.org/z/EfbMva5Te. Как видно из приведенного кода, лучше использовать std::bit_cast. Кроме того, std::bit_cast требует C++20, а не C++23.

На WinAPI разрабатывать проект со сложным GUI тяжело. MFC и WTL это достаточно сложные обертки над WinAPI. Те же WinForms значительно легче, хотя это также обертка над WinAPI, и там не чистый C++, а С++/CLI. Есть еще WPF но там тоже С++/CLI и нет дизайнера окон (он есть только для проектов на настоящих managed языках типа C#). Следует также сказать, что Microsoft не советует использовать С++/CLI. Qt на выходе дает бинарные файлы большого размера (если статическая линковка), или надо распространять с .dll-файлами библиотек Qt, что выливается также в большой размер сборок.

Windows XP не поддерживала Secure Boot (базовое требование античитов некоторых игр сегодня), загрузку в UEFI режиме (т. е. только MBR диски, а не GPT), UAC (любой пользователь с админ правами всегда сидит под root), ASLR (рандомизация адрессного пространства).

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

А зачем устанавливать Git for Windows, если он в данной инструкции применяется только для скачивания (клонирования) GitHub-репозитория? Скачать репозиторий в zip-файле с GitHub можно посредством браузера, который уже встроен в Windows. А распаковать zip-файл сможет Windows Explorer.

Да, хуже чем Windows 8. Единственная моя претензия к Windows 8: нет классического пуска, и все. Но если очень хочется нормальный "пуск", то Classic Shell или Start8.

Ну это дело вкуса. Я вот считаю интерфейс Windows XP худшим за всю историю Windows, начиная с Windows 95.

Не правильнее ли во время чтения парсить? -- ну так вначале все равно надо прочитать. Или вот потом сгенерировать большой выхлоп программы: пишем все строку, а потом выводим одним вызовом write. Так будет быстрее. Операции с диском небыстрые относительно операций с данными из ОЗУ. Вообще, по-хорошему, чтобы прочитать, рекомендуется делать mmap/madvice/munmap.

А вот на самом деле, тут Windows права. Ибо стандарт ISO C11 (Annex K) резервирует функции типа strcat_s, strcpy_s и strcmp_s . Строго следуя стандарту языка языка С, программы не имеют права определять собственные функции с этими именами. В libc для Linux по умолчанию эти функции скрыты. Чтобы gcc с libc их увидел, надо писать #define __STDC_WANT_LIB_EXT1__ 1. В Windows эти функции были давно, до С11, как нестандартные расширения.

И кстати, заявлено, что собирается любым C99/C11 компилятором. Но это не так, например: gcc 16.1.0 на Windows падает с ошибкой, ибо strcat_s это нестандартная функция из состава стандартной C библиотеки под Windows, а перегрузки функций в C нет. Проект, однако, собирается на g++ под Windows, но это компилятор языка C++, а не C.

Памяти много, 4+ GiB не жалко. Распарсить какой-нибудь большой датасет там: раз памяти много, то чтобы быстрее обработать можно загрузить сразу все. Стандартный std::string может содержать '\0' в середине строки. ReadFile из WinAPI или std::fread из <cstdio> спокойно прочитают контент с символом '\0'. WriteFile из WinAPI или std::fwrite из <cstdio> спокойно запишут контент с символом '\0' в середине. Правда, следует проявлять осторожность при подаче результата от .data() в функцию, которая ожидает нуль-терминированную строку типа char*.

  1. uint32_t len хранит длину строки: эта переменная ограничена до 2³², но кому вообще понадобится создавать одну строку в 4 ГБ? Размер: 4 байта.

Ну мне понадобиться. Прочитать > 4 GiB файл полностью.

А что по OrderBy? Было бы интересно увидеть для OrderBy и его сравнение с Sort.

Вот кстати не понимаю тех, кто пишет, что школа необходима для социализации. На мой взгляд, для социализации достаточна какая-нибудь спортивная секция (или там художественная или музыкальная школа). Только здесь конечно вопрос в том, как сейчас набирают в спортивные секции: в моем детстве туда хотели набирать только "перспективных".

Когда они у него появятся - лет в 13-14

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

Так WebView2 доступен много где: WinUI 3/WinForms/WPF. Почему бы не делать на WPF, там и на C++/CLI можно, и распространение стандартным образом. В WinUI 3 C++ более-менее стандартный, или какой-то нестандартный диалект типа C++/CLI?

1) Это не обозначение, которое очевидно. Его можно понимать как последовательность комплексных чисел. Но некорректность применения готовых формул логарифма для вычисления\mathrm{Ln}((a+ib)_n)это не снимает. Множества\mathbb{C}\times\mathbb{Z}и\mathbb{C}различны. Как определены операции для чисел вида(a+ib)_nне дано.
3) А в статье вы так пишете, не различаяLиL(z).
6) Это как раз точные вычисления. 4.0000000000025, 4.0000000000026 и 4 это принципиально разные вещественные числа\mathbb{R}. Как они получены неважно. С точки зрения определения действительного числа они различны. Ознакомьтесь вначале с определением вещественного числа в математике. У вас приближенные вычисления, а не точные.
8) При том, что это некорректно. Согласно вашему примеру, читатель может подумать, что целая часть числа 1.3 это 2, чтобы целая часть определалась согласованным образом для всех действительных чисел.

Информация

В рейтинге
2 610-й
Откуда
Беларусь
Дата рождения
Зарегистрирован
Активность