Описание тега library-design

Используйте этот тег для темы, связанной с разработкой библиотеки
6 ответов

Почему.NET Framework не имеет класса очереди приоритетов?

В переполнении стека есть несколько потоков, занимающихся реализацией очередей с приоритетами в.Net и C#. Моя проблема носит более базовый характер: почему в платформе.Net нет очереди приоритетов из коробки? Даже в стандартной библиотеке C++ есть та…
0 ответов

Разреженный матричный дизайн в современном C++

Я хочу реализовать класс разреженных матриц с использованием современного C++, то есть 14 или 17. Я знаю, что должны быть некоторые компромиссы между хранением и эффективностью во время выполнения. Прямо сейчас я предпочел бы оптимизировать больше с…
21 апр '18 в 11:49
0 ответов

boost::asio и boost::bind error

Эти вопросы немного раздражают, я не могу получить следующий код для компиляции. Вам нужно будет скомпилировать код ниже. У меня возникли некоторые проблемы с boost asio, я пытаюсь абстрагировать логику принятия соединений в единую абстракцию, чтобы…
1 ответ

.NET IoC: предварительная настройка компонентов библиотеки для более легкого использования

Некоторое время назад у меня был похожий вопрос, но с гораздо меньшим пониманием всей темы IoC/DI, а также того, чего я стремился достичь, так что здесь снова... Я строю библиотеку для общего пользования в нашей компании. Наиболее часто используемые…
2 ответа

Почему 'this' в обратных вызовах jquery с цепочкой является элементом DOM?

Так что я знаю, что при использовании $.fn.each, $.fn.bindи т. д., это стандартно для this Ключевое слово в JQuery цепочки обратных вызовов, чтобы быть элементом DOM. Я знаю, что в своей разработке, по крайней мере, я обычно хочу, чтобы элемент DOM …
09 янв '12 в 00:15
1 ответ

Какую цель преследует `gsl::string_span`?

Читая реализацию Microsoft Cpp Core Guidelines, я столкнулся с двумя вопросами: Почему gsl::string_span при условии, где gsl::span уже хорошо работает? Почему gsl::zstring_span при условии, где std::string уже гарантированно будет нулевым символом с…
2 ответа

Создание бесплатной функции шаблона внутри класса шаблона

Мне нужно создать бесплатную функцию шаблона (FTF) внутри класса шаблона (TC). FTF принимает в качестве параметра шаблона один из параметров шаблона TC. TC также содержит общие указатели на эти FTF, и эти функции вызываются через указатели. Шаг созд…
07 июл '11 в 11:13
4 ответа

Что бы вы сделали здесь? Возврат нулевого значения или выдача исключения (руководства по разработке каркаса)

Я занимаюсь разработкой библиотеки C# .NET Framework 4.0. У меня есть этот код: public static byte GetBatchStatus(string connString) { if (string.IsNullOrEmpty(connString)) throw new ArgumentNullException("connString"); byte status; using (System.Da…
22 май '14 в 12:44
13 ответов

Требует ли определенного порядка для #include в C++ признак плохого дизайна библиотеки / заголовка?

Я использовал несколько очень масштабных систем и никогда не видел требуемого заказа, но недавно столкнулся с ним. Есть ли в библиотеке STL или STD или даже в Boost какие-либо случаи, когда определенные включения должны приходить в определенном поря…
17 дек '08 в 19:02
1 ответ

Передача указателей на функции как интерфейс API в скомпилированную библиотеку

Дорогой стек обмена, Я программирую МРТ сканер. Я не буду вдаваться в подробности, но я довольно ограничен в объеме кода, к которому у меня есть доступ, и в том, как все было настроено... неоптимально. У меня такая ситуация: Есть большая библиотека,…
04 сен '13 в 12:21
2 ответа

val или объект для неизменного, окончательного синглтон-объекта

Какое решение должно быть в целом предпочтительным, учитывая, что изменение совместимо с источником? это object Foo { val Bar = new Baz(42, "The answer", true) } или это? object Foo { object Bar extends Baz(42, "The answer", true) }
0 ответов

Дан абстрактный интерфейс. Единственный ключ к необходимости обеспечить собственную реализацию заключается в том, чтобы НЕ находить фабричную функцию?

По общему признанию довольно теоретический вопрос. И я хотел бы спросить об этом больше с точки зрения разработчика библиотеки, чем пользователя библиотеки. Хотя цель состоит в том, чтобы обеспечить максимально простой дизайн для пользователя. Есть …
08 сен '16 в 18:08
3 ответа

Почему стандартные классы иногда имеют, казалось бы, не связанные методы?

Изучая стандартную библиотеку Java и ее классы, я не мог не заметить, что некоторые из этих классов имеют методы, которые, по моему мнению, не имеют никакого отношения к причине этих классов. Методы, о которых я говорю, это, например, Integer # getI…
10 мар '15 в 08:21
5 ответов

Пара вопросов по ОО и дизайну библиотеки

Хорошо. У меня есть несколько вопросов, касающихся некоторых аспектов ОО и дизайна библиотеки. Должна ли библиотека быть самодостаточной? Например, может ли он использовать внешнюю среду внедрения зависимостей или должен реализовать ее более легким …
02 авг '12 в 19:19
7 ответов

Дизайн библиотеки: позволить пользователю выбирать между "только заголовком" и динамически связанным?

Я создал несколько библиотек C++, которые в настоящее время только для заголовков. И интерфейс, и реализация моих классов написаны одинаково .hpp файл. Я недавно начал думать, что такой дизайн не очень хорош: Если пользователь хочет скомпилировать б…
01 сен '14 в 13:15
2 ответа

Почему типы std не предоставляют конструктор / назначение преобразования из источников, отличающихся распределителем

Например, почему не template< typename Elem, typename Traits, typename Alloc > basic_string { ... } предоставлять: template< typename OtherAlloc > basic_string( const basic_string< Elem, Traits, OtherAlloc >& a_Other ) { ... } …
11 июн '12 в 20:08
0 ответов

Python api design, добавить метод copy к объекту или defer для копирования библиотеки

У меня есть библиотека (pymunk), которую я поддерживаю. Должен ли я добавить свой собственный copy() метод на всех соответствующих классах или позволить пользователям библиотеки использовать стандартный метод copy.deepcopy библиотеки, когда они хотя…
24 май '17 в 22:49
0 ответов

Каковы плюсы и минусы непрозрачных указателей по сравнению с номерами идентификаторов с использованием языка программирования C?

В настоящее время я использую непрозрачные указатели в качестве стандартного метода инкапсуляции, но, глядя на API OpenGL, я думаю, что использование идентификаторов может быть лучшим выбором. Я хотел бы получить совет от опытных программистов на Си…
9 ответов

Написание библиотеки с интерфейсами C и C++, какой способ обернуть?

При подготовке библиотеки (назовем ее libfoo) я обнаружил перед собой следующую дилемму: писать ли ее как библиотеку C++ с оболочкой C: namespace Foo { class Bar { ... }; } /* Separate C header. #ifdef __cplusplus omitted for brevity. */ extern "C" …
12 окт '10 в 07:00
1 ответ

Почему std::count(_if) возвращает итератор::diff_type вместо size_t?

Возможный дубликат: Почему стандартный алгоритм C++ "count" возвращает ptrdiff_t вместо size_t? Есть алгоритм std::count/std::count_if в стандарте C++. template<class InputIterator, class T> typename iterator_traits<InputIterator>::diffe…
24 сен '12 в 21:44