Что такое текущий статус PocoCapsule?

Что такое PocoCapsule текущий статус? Разве это развивается? Развернуто ли оно с другим продуктом? Что такое идея IoC для С++? Если PocoCapsule не эволюция, это потому, что IoC считался не полезным для С++, небезопасным, появились другие образцы или что-то еще?

Насколько я понимаю, есть 2-3, может быть, несколько продуктов, которые реализовать IoC для С++, доступных и PocoCapsule является наиболее зрелым из них.

Я вижу несколько недостатков в текущей версии (как я вижу это 1.1 из google code):

  • Нет отдельного пространства имен.
  • Файлы заголовков должны быть правы в папке INCLUDE - лучше разместить их в подпапке.
  • Инструменты генерации зависят от Java.
  • По умолчанию не создаются статические библиотеки ссылок.
  • Невозможно создать исходный код из setup.xml для компиляции и ссылки с моим приложением, если мне не нужна функция реконфигурации.

Есть ли у кого-то одни мысли? Кто-нибудь работает над чем-то этот список? Существуют ли какие-либо препятствия для начала работы, такие как патенты?

Ответ 1

Я отправил электронное письмо Ke Jin (сопровождающему), и его ответ был тот, что он не находится в текущем активном развитии с 14 июля 2011 года. Он не дал причины.

Ответ 2

Я искал это сам уже некоторое время и понял, что в С++ нет хороших контейнеров IoC. Есть много проблем, связанных с этим. Получение чего-то вроде контейнеров С# IoC (Castle Windsor, Unity и т.д.) Недостижимо. Я предполагаю, что если вам требуется что-то подобное, вы не делаете С++. И если вы делаете С++, вы откатываете свои собственные или используете одноэлементные заводы (маленькая шутка);)

Простым ярлыком является использование QML QML. Он был создан для декларативных пользовательских интерфейсов, но может использоваться для построения любого дерева, основанного на QObject.

Еще один хороший взгляд - CORBA Systems для С++, у них могут быть некоторые вещи, которые вам нужны.

Просто мои подсказки для других мест, чтобы посмотреть...

Ответ 3

Я думаю, что вы можете успешно использовать систему метаобъектов Qt, повторно используя библиотеку QtCore и moc-компилятор в своем приложении.

С помощью системы метаобъектов вы можете создавать полностью изолированные модули, вызывая любой метод интерфейса модуля через QMetaObject:: invokeMethod().

И все будет работать без экземпляра объекта QCoreApplication! Определите свои модули как подклассы QObject, предоставите макрос Q_OBJECT и пометьте все методы интерфейса с помощью Q_INVOKABLE (конечно, вы должны добавить moc-компилятор в качестве шага сборки).