All streams
Search
Write a publication
Pull to refresh
7
0
Евгений @ixSci

User

Send message
А где в стандарте указано, что sizeof(char) == sizeof(bool)?
Всё верно, bool-переменная может иметь только два значения: true, false. Никакого третьего значения там быть не может. Undefined behavior, по определению, означает, что программа может вести себя как угодно, и никакую логику к ней применить уже нельзя.
bool, по стандарту, это bool.
Поэтому ИИ будет давить обычных игроков, у pro-уровня нет проблем с одновременным слежением за экономикой и боями. Кроме того, противник должен знать, что клепать, а для этого нужна разведка. Можно кучу всяких обманных тактик напридумывать и прочего. Я к чему это: это может казаться простым тестом для ИИ, но, на деле, если ИИ будет поставлен в те же рамки, что и игрок(не будет видеть сквозь туман и прочее), то неизвестно чем может закончиться матч с хорошим игроком.
Я не спорю, wxWidgets используется, но, как Вы сами понимаете, гораздо в меньшей степени, чем Qt. Когда я говорил, про никому не известные фреймворки, я, скорее, говорил о том фреймворке, на который Вы привели ссылку(что там код красивее)

Что касается примера с потоком: как минимум странно использовать std::thread вместе с Qt, ну да ладно. Ваша задача решается одной строчкой:
QMetaObject::invoke(my_widget, "my_slot");

(по памяти, поэтому где-то может быть ошибка, но суть должна быть ясна)
Я сравнивал Qt и MFC середины нулевых, а не сейчас. Что там было раньше, я не в курсе.

Очень даже знают. На том же wxWidgets написаны например KiCad, Code::Blocks, TrueCrypt, Password Safe, EventGhost, клиенты для Dropbox и Google Drive, интерфейсы для Maxima и CMake

Ага, наверное из-за wxWidgets в папке dropbox лежат dll от Qt5, а в исходниках CMake папка QtDialog, посмотрел что за библиотеки загружает TrueCrypt — видимо он средствами среды пользуется(WinAPI). Дальше проверять не стал, всё и так понятно.

А это всё и не нужно. Попытки принести динамическую интроспекцию в язык типа C++, ориентированный на быстродействия, крайне сомнительны

Нужно, не нужно — это не Вам решать. Это удобно. Если удастся сделать всё то же самое, то можно и статической обойтись. В целом, я понимаю, что динамической в C++ не будет и не уверен, что она нужна. Но вот в Qt это даёт просто потрясающие возможности связи с QML.

Очереди и потоки не имеют никакого отношения к системам типа сигнал/слот — это вообще разные вопросы

В Qt это часть одной системы, неразделимой. Очень удобной. К хорошему быстро привыкаешь, поэтому не надо рассказывать про «разные вопросы». Проброс событий/сигналов очень часто нужен и, в отличии от того же C#/WPF, в Qt это реализовано из коробки и очень элегантно.
Множество != весь, не находите? Trolltech писали библиотеку и жили на продажи её, значит было кому продавать, не так ли? Да и кроссплатформенность не всегда заставляет выбирать Qt. Вы на MFC писали? Если ответ «да» и Вы не понимаете, почему кто-то бы выбрал Qt вместо него только для Windows, то продолжать разговор больше не имеет смысла.

В остальном, я не хочу с Вами спорить, т.к. мне совершенно не интересно в чём то Вас убеждать. Оставлю Вам только несколько вопросов, на которые не нужно отвечать, они для Вас — повод для размышлений.

Почему, если есть такие классные фреймворки, которые не используют MOC и код на них красивее чем у Qt, о них никто(очень мало кто) знает?
Зачем в Qt так много QMetaObject? Что такое property, invokable и прочее и как оно реализовано? Как работает QML?
Если сигналы/слоты так легко реализовать, то сможете ли Вы найти реализацию, в которой сигнал не занимает места в объекте и может быть поставлен в очередь любого потока?
Это заблуждение. Кроссплатформенность всегда была актуальна, это только в России она не была. В Штатах, как минимум, OSX + Windows очень часто идут рука об руку.

На самом деле язык C++ не позволяет, в нынешнем виде, создать нормальную GUI библиотеку, потому что для очень многих вещей нужна интроспекция и/или поддержка паттерна observer в самом языке.
Qt был самым популярным GUI-фреймворком, когда Android не было и в проекте. И это именно за счёт расширения языка. Сигналы в Qt удобнее чем родные event в C#, что уже говорить о поделках других библиотек для C++? Вообще, это, конечно, чистая вкусовщина, но Qt объективно более популярен и это началось не вчера и, на мой взгляд, это как раз из-за удобства его использования, львиную долю которого даёт QObject и MOC.

Более того, современный C++ вообще позволяет решать такие вопросы намного красивее и эффективнее.

Каким образом?

P.S. Я не говорю, что Qt идеален, в нём проблем выше крыши, вот только в альтернативах их ещё больше.
Дело в том, что boost это библиотека по умолчанию для всех C++ проектов, поэтому тащить ничего не приходится, boost это де-факто стандарт в C++ мире, и его неиспользование в проекте может вызвать только вопросы.
Ага, «конкурирующих». Много они наконкурировали с Qt? Где Qt и где всё остальное? Сейчас есть ответвление Qt(copperspice), в котором нет MOC, но выглядит уж очень спорно и это при том, что они используют современные возможности C++, которых не было и в помине, когда MOC писался.

P.S. boost.signals2 это ужасное порождение, ничего общего с простой системой сигналов/слотов не имеющая. И я не говорю уже о интроспекции и прочих вещах, которые на MOC опираются.
Я бы тоже. Мне вообще не понятно, кому он нужен в том виде, в котором его собираются выпустить, и как это согласуется с major/minor чередованием. C++17, в этом виде, это не более чем minor, а minor уже был.
Так бывает, просто нет смысла писать статьи будучи знакомым с большим инструментом всего 2 недели. Проще спросить на SO, к примеру, чем городить свои огороды раньше времени.
Если ждут C++17, то можно смело переходить на ожидание C++20. С++17 будет обрубком, а не стандартом.
Остаётся одна загвоздка — что такое интеллект и как измерить его уровень?
Почему не подходят? Как минимум это довольно нейтральное название, по крайней мере у меня и у тех, у кого я спрашивал, это не вызывает ассоциации с детским садом. Это вполне может быть названием банды.
Локализация не должна искажать смысл, так я считаю. Слегка адаптировать можно, но Ваш пример из совсем другой оперы.

P.S. Ваше использование (sic!) в тексте совершенно неуместно, в нём нет ни одной цитаты.
Ну мне сложно судить, на самом деле. Просто, видимо побереглись прокатчики, чтобы рекламы там не было или ещё чего. Всё равно те, кто смотрели этот фильм знают про кого он.
В нашей стране довольно сильны анти-американские настроения, которые неплохо подогреваются СМИ. С моей точки зрения, именно поэтому фильм не был назван так, как он есть в оригинале.
Понятно, но разве в игре важна именно «последнесть»? Тем более, что «Последние из нас» совершенно не звучит, как мне кажется. А называть как: выжившие, оставшиеся и т.п. не отражает сути игры. В общем, я не вижу никакой трагедии в названии «Одни из нас». С моей точки зрения, это нормальное название для этой игры.

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

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

Information

Rating
Does not participate
Location
Нижний Новгород, Нижегородская обл., Россия
Date of birth
Registered
Activity