Здравствуйте, AlexGin, Вы писали:
_>>Однако если мы возьмём какую-то из мощные библиотек многопочности мира C++ (все они естественно кроссплатформенные), то увидим инструмент на голову превосходящий и все возможности стандартной библиотеки C++ и все возможности WinAPI.
AG>Можешь посоветовать что-то конкретное?
AG>То, что позволяет удачно совместить удобочитаемость кода с эффективностью.
Если говорить о классической многопоточности, то чуть-чуть более мощными чем стандартная библиотека C++ являются Boost.Thread и QThread (да, да, в используемой вами Qt уже есть не плохая поддержка многопоточности). Но если требуется действительно мощный инструмент, то лучше смотреть на что-то вроде TBB от Intel.
Если же говорить о многопоточности по модели акторов (она удобнее и безопаснее в очень многих случаях), то тут однозначно выбор будет между SObjectizer (кстати разработчики присутствуют на данном форуме) и CAF (более глобальное решение).
_>>Ну вот, т.е. получается у вас тоже практически кроссплатформенный (в потенциале) продукт
AG>
AG>Теоретически да, кроссплатформенный. ...это как в анекдоте — чем отличается теория, от практики...
Ну естественно, что если вам вдруг поставят задачу сделать своё ПО кроссплатформенным и вы пойдёте его компилировать и тестировать на других платформах, то скорее всего вылезет определённое количество ошибок и недоработок. Это нормальная ситуация. Принципиальная разница тут в другом — вам на исправление подобного понадобится какое-то количество дней. А вот если бы ваше приложение было написано на WinAPI (к примеру), то задачу сделать его кроссплатформенным вам бы пришлось решать какое-то количество месяцев или лет. )))
_>>Ну так если у тебя есть внешняя утилита для генерации этих h файлов по tlb, то зачем тогда эта директива?
AG>Утилита genidl, о которой ты пишешь, входит в комплект продукта MinGW.
AG>Если я пользуюсь продуктом MSVC, мне нет необходимоти применять genidl.
AG>Применение директивы препроцессора #import:
AG>https://msdn.microsoft.com/en-us/library/8etzzkb6(VS.71).aspx
AG>рассчитано так, чтобы НЕ пересоздавать заголовочники для COM компонента, который ранее уже был импортирован в проект.
В MSVC (а точнее в WindowsSDK) так же имеются все необходимые инструменты для подобного (там есть и экстрактор idl из tlb и компилятор idl). Так что никакой пользы от данной инструкции нет.
_>>Если речь по быстродействие генерируемого кода, то это полная чушь — MinGW генерирует заметно более эффективный код. Я лично делал тесты.
AG>В данной ветке я уже привёл результаты сравнения эффективностиАвтор: AlexGin
Дата: 10.03.17
, доказывающие (по самым скромным оценкам), что MSVC в полтора/два раза эффективнее, нежели MinGW.
Я уже ответил на данное сравнение. ))) И кстати могу ещё посоветовать на будущее изучить опции gcc перед его использованием, потому как его дефолтный режим мягко говоря далёк до максимальной производительности.