ACE по сравнению с повышением по сравнению с ПОСТЕПЕННО [закрытым]

Другая возможность состоит в том, чтобы определить функцию-обертку для условного оператора:

template<class T> T& conditional(bool b, T&x, T&y) { return b ? x : y; }
template<class T> const T& conditional(bool b, const T&x, const T&y) { return b ? x : y; }

, которая позволяет вам вызывать:

return conditional(generator, generator(), {});
91
задан Alex 14 January 2015 в 05:35
поделиться

6 ответов

Как сказано в rdbound, Boost имеет "почти STL" положение дел. Так что, если вам не нужна другая библиотека, придерживайтесь Boost. Однако я использую POCO , потому что это дает некоторые преимущества для моей ситуации. Преимущества POCO IMO:

  • Лучшая библиотека потоков, особенно реализация активного метода. Мне также нравится, что вы можете установить приоритет потока.

  • Более полная сетевая библиотека, чем boost :: asio . Однако boost :: asio также очень хорошая библиотека.

  • Включает в себя функции, которых нет в Boost, такие как XML и интерфейс базы данных, чтобы назвать некоторые.

  • Он более интегрирован как одна библиотека, чем Boost.

  • Он имеет чистый, современный и понятный код C ++. Я считаю, что это намного проще для понимания, чем большинство библиотек Boost (но я не эксперт по программированию шаблонов :)).

  • Его можно использовать на многих платформах.

Некоторые недостатки POCO:

  • Имеется ограниченная документация. Это несколько компенсируется тем, что исходный текст прост для понимания.

  • У него гораздо меньше сообщества и пользователей, чем, скажем, у Boost. Так что если вы зададите вопрос, например, о переполнении стека, ваши шансы получить ответ будут меньше, чем для Boost

  • . Еще неизвестно, насколько хорошо он будет интегрирован с новым стандартом C ++. Вы точно знаете, что для Boost это не проблема.

Я никогда не использовал ACE, поэтому не могу это комментировать. Из того, что я слышал, люди находят POCO более современным и простым в использовании, чем ACE.

Некоторые ответы на комментарии Рахула:

  1. Я не незнаю про универсальный и продвинутый. Библиотека потоков POCO предоставляет некоторые функции, которых нет в Boost: ActiveMethod и Activity и ThreadPool . Потоки IMO POCO также легче использовать и понимать, но это субъективный вопрос.

  2. Сетевая библиотека POCO также обеспечивает поддержку протоколов более высокого уровня, таких как HTTP и SSL (возможно, также в boost :: asio , но я не уверен?).

  3. Достаточно честно.

  4. Интегрировано. Библиотека имеет то преимущество, что она имеет единообразное кодирование, документацию и общий "внешний вид".

  5. Кросс-платформенность - важная особенность POCO, но не преимущество по сравнению с Boost.

Опять же, вам, вероятно, следует рассматривать POCO только в том случае, если он предоставляет некоторые необходимые вам функции, а их нет в Boost.

Библиотека потоков POCO предоставляет некоторые функции, которых нет в Boost: ActiveMethod и Activity и ThreadPool . Потоки IMO POCO также легче использовать и понимать, но это субъективный вопрос.

  • Сетевая библиотека POCO также обеспечивает поддержку протоколов более высокого уровня, таких как HTTP и SSL (возможно, также в boost :: asio , но я не уверен?).

  • Достаточно честно.

  • Интегрировано. Библиотека имеет то преимущество, что она имеет единообразное кодирование, документацию и общий "внешний вид".

  • Кросс-платформенность - важная особенность POCO, но не преимущество по сравнению с Boost.

  • Опять же, вам, вероятно, следует рассматривать POCO только в том случае, если он предоставляет некоторые необходимые вам функции, а их нет в Boost.

    Библиотека потоков POCO предоставляет некоторые функции, которых нет в Boost: ActiveMethod и Activity и ThreadPool . Потоки IMO POCO также легче использовать и понимать, но это субъективный вопрос.

  • Сетевая библиотека POCO также обеспечивает поддержку протоколов более высокого уровня, таких как HTTP и SSL (возможно, также в boost :: asio , но я не уверен?).

  • Достаточно честно.

  • Интегрировано. Библиотека имеет то преимущество, что она имеет единообразное кодирование, документацию и общий "внешний вид".

  • Кросс-платформенность - важная особенность POCO, но не преимущество по сравнению с Boost.

  • Опять же, вам, вероятно, следует рассматривать POCO только в том случае, если он предоставляет некоторые необходимые вам функции, а их нет в Boost.

    ActiveMethod и Activity и ThreadPool . Потоки IMO POCO также легче использовать и понимать, но это субъективный вопрос.

  • Сетевая библиотека POCO также обеспечивает поддержку протоколов более высокого уровня, таких как HTTP и SSL (возможно, также в boost :: asio , но я не уверен?).

  • Достаточно честно.

  • Интегрировано. Библиотека имеет то преимущество, что она имеет единообразное кодирование, документацию и общий "внешний вид".

  • Кросс-платформенность - важная особенность POCO, но не преимущество по сравнению с Boost.

  • Опять же, вам, вероятно, следует рассматривать POCO только в том случае, если он предоставляет некоторые необходимые вам функции, а их нет в Boost.

    ActiveMethod и Activity и ThreadPool . Потоки IMO POCO также легче использовать и понимать, но это субъективный вопрос.

  • Сетевая библиотека POCO также обеспечивает поддержку протоколов более высокого уровня, таких как HTTP и SSL (возможно, также в boost :: asio , но я не уверен?).

  • Достаточно честно.

  • Интегрировано. Библиотека имеет то преимущество, что она имеет единообразное кодирование, документацию и общий "внешний вид".

  • Кросс-платформенность - важная особенность POCO, но не преимущество по сравнению с Boost.

  • Опять же, вам, вероятно, следует рассматривать POCO только в том случае, если он предоставляет некоторые необходимые вам функции, а их нет в Boost.

  • Сетевая библиотека POCO также обеспечивает поддержку протоколов более высокого уровня, таких как HTTP и SSL (возможно, также в boost :: asio , но я не уверен?).

  • Достаточно честно.

  • Интегрировано. Библиотека имеет то преимущество, что она имеет единообразное кодирование, документацию и общий "внешний вид".

  • Кросс-платформенность - важная особенность POCO, но не преимущество по сравнению с Boost.

  • Опять же, вам, вероятно, следует рассматривать POCO только в том случае, если он предоставляет некоторые необходимые вам функции, а их нет в Boost.

  • Сетевая библиотека POCO также обеспечивает поддержку протоколов более высокого уровня, таких как HTTP и SSL (возможно, также в boost :: asio , но я не уверен?).

  • Достаточно честно.

  • Интегрировано. Библиотека имеет то преимущество, что она имеет единообразное кодирование, документацию и общий "внешний вид".

  • Кросс-платформенность - важная особенность POCO, но не преимущество по сравнению с Boost.

  • Опять же, вам, вероятно, следует рассматривать POCO только в том случае, если он предоставляет некоторые необходимые вам функции, а их нет в Boost.

  • Кросс-платформенность - важная особенность POCO, но не преимущество по сравнению с Boost.

  • Опять же, вам, вероятно, следует рассматривать POCO только в том случае, если он предоставляет некоторые необходимые вам функции, а их нет в Boost.

  • Кросс-платформенность - важная особенность POCO, но не преимущество по сравнению с Boost.

  • Опять же, вам, вероятно, следует рассматривать POCO только в том случае, если он предоставляет некоторые необходимые вам функции, а их нет в Boost.

    85
    ответ дан 24 November 2019 в 06:47
    поделиться

    Boost имеет статус "почти STL" из-за большого количества людей в комитете по стандартам C ++, которые также являются разработчиками Boost. Poco и ACE не пользуются этим преимуществом, и, судя по моему анекдотическому опыту, Boost более распространен.

    Однако POCO в целом больше сосредоточена на вещах сетевого типа. Я придерживаюсь Boost, поэтому ничем не могу вам помочь, но плюс Boost - его (относительно) широкое использование.

    5
    ответ дан 24 November 2019 в 06:47
    поделиться

    Boost is great, I've only heard good things about POCO (but never used) but I don't like ACE and would avoid it in future. Although you will find fans of ACE you will also find many detractors which you don't tend to get with boost or poco (IME), to me that sends a clear signal that ACE is not the best tool (although it does what it says on the tin).

    4
    ответ дан 24 November 2019 в 06:47
    поделиться

    Используемое вами регулярное выражение представляет собой чередование [^ az] и [^ AZ] . А выражения [^…] означают соответствие любому символу, кроме описанных в наборе символов.

    Таким образом, в целом ваше выражение означает соответствие любому одному символу, кроме az или кроме AZ .

    Но вам скорее понадобится регулярное выражение, которое соответствует только a-zA-Z :

    [a-zA-Z]
    

    И чтобы указать длину этого, я только когда-либо действительно использовал ACE. ACE - отличная платформа для кроссплатформенных корпоративных сетевых приложений. Он чрезвычайно универсален и масштабируем и поставляется с TAO и JAWS для быстрой и мощной разработки ORB и / или веб-приложений.

    Быстро освоить его может быть несколько пугающе, но по нему есть много литературы и доступна коммерческая поддержка.

    Это довольно тяжело, поэтому для небольших приложений это может быть немного непросто. перебор. Читая краткое описание POCO, кажется, что они стремятся к системе, которая может работать на встроенных системах, поэтому я предполагаю, что ее можно использовать гораздо проще. Теперь я могу покрутить его: P

    является чрезвычайно универсальным и масштабируемым и поставляется с TAO и JAWS для быстрой и эффективной разработки ORB и / или веб-приложений.

    Быстро освоить его может быть несколько пугающе, но по нему есть много литературы и доступна коммерческая поддержка.

    Это довольно тяжело, поэтому для небольших приложений это может быть немного непросто. перебор. Читая краткое описание POCO, кажется, что они стремятся к системе, которая может работать на встроенных системах, поэтому я предполагаю, что ее можно использовать гораздо проще. Теперь я могу покрутить его: P

    является чрезвычайно универсальным и масштабируемым и поставляется с TAO и JAWS для быстрой и эффективной разработки ORB и / или веб-приложений.

    Быстро освоить его может быть несколько пугающе, но по нему есть много литературы и доступна коммерческая поддержка.

    Это довольно тяжело, поэтому для небольших приложений это может быть немного непросто. перебор. Читая краткое описание POCO, кажется, что они стремятся к системе, которая может работать на встроенных системах, поэтому я предполагаю, что ее можно использовать гораздо проще. Теперь я могу покрутить его: P

    так что для небольших приложений это может быть излишним. Читая краткое описание POCO, кажется, что они стремятся к системе, которая может работать на встроенных системах, поэтому я предполагаю, что ее можно использовать гораздо проще. Теперь я могу покрутить его: P

    так что для небольших приложений это может быть излишним. Читая краткое описание POCO, кажется, что они стремятся к системе, которая может работать на встроенных системах, поэтому я предполагаю, что ее можно использовать гораздо проще. Теперь я могу покрутить его: P

    3
    ответ дан 24 November 2019 в 06:47
    поделиться

    Многие пользователи POCO сообщают об использовании его вместе с Boost, поэтому очевидно, что там являются стимулами для людей в обоих проектах. Boost - это коллекция качественных библиотек. Но это не каркас. Что касается ACE, я использовал его раньше, и дизайн мне не понравился. Кроме того, поддержка древних несовместимых компиляторов уродливо сформировала базу кода.

    Что действительно отличает POCO, так это масштабируемый дизайн и интерфейс с богатой доступностью библиотек, напоминающий те, что есть в Java или C #. В настоящее время наиболее остро не хватает POCO асинхронного ввода-вывода.

    20
    ответ дан 24 November 2019 в 06:47
    поделиться

    Я бы сохранил эти пользовательские поля в таблице, где каждая запись (dataType, dataValue, dataUnit) будет использоваться в одной строке. Таким образом, будет отношение oneToMany из одного образца к данным. Можно также создать таблицу для записи всех типов подрезки, которые будут использоваться. Например:

    create table DataType
    (
    id int primary key,
    name varchar(100) not null unique
    description text,
    uri varchar(255) //<-- can be used for an ONTOLOGY
    )
    
    
    create table DataRecord
    (
    id int primary key,
    sample_id int not null,//<-- reference to the sample
    dataType_id int not null, //<-- references DataType
    value varchar(100),//<-- the value as string
    unit varchar(50)//<-- g, mg/ml, etc... but it could also be a link to a table describing the units just like DataType
    )
    
    -121--1670499-

    Оказывается, что проблема заключалась в отсутствии фокуса в WebView.

    Я обнаружил, что использование клавиш со стрелками, чтобы сосредоточиться на текстах, заставило их работать, поэтому я предположил, что где-то возникла проблема с чем-то, не имеющим фокуса, скорее всего, с WebView, не имеющим фокуса. Конечно, добавление следующей строки, казалось, решило проблему:

    webView.requestFocus(View.FOCUS_DOWN);
    

    Я все еще в проигрыше, чтобы объяснить, почему именно проблема возникла в первую очередь - текстовые ящики должны работать независимо от того, получают ли они фокус от того, чтобы быть втянутыми или через «перестрелки», - но, по крайней мере, у меня есть решение, которое, похоже, работает.

    Спасибо за ваш ввод wf.

    -121--1252043-

    Недавно я получил новую работу и работу над проектом, в котором используются ACE и TAO. Ну, я могу сказать, что ACE и TAO работают и полностью выполняют свои задачи. Но общая организация и дизайн библиотек довольно сложны...

    Например, основная часть ACE состоит из сотен классов, начинающихся с «» ACE_. Похоже, они десятилетиями игнорировали пространства имен.

    Кроме того, многие имена классов ACE также не предоставляют полезной информации. Или вы можете угадать, какие классы, такие как ACE _ Dev _ Poll _ Reactor _ Notify или ACE _ Proactor _ Handle _ Timeout _ Upcall , можно использовать для?

    Кроме того, документация ACe действительно отсутствует, если вы не хотите (это действительно трудно без какой-либо хорошей документации..), я бы НЕ рекомендовал использовать ACE, если вы действительно не нуждаетесь в TAO для CORBA , если вы не нуждаетесь в CORBA, продолжайте и используйте некоторые современные библиотеки..

    10
    ответ дан 24 November 2019 в 06:47
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: