Вопросы по теме 'pimpl-idiom'

Это хорошее место для использования шаблона PIMPL?
Я работаю над библиотекой, которая определяет клиентский интерфейс для некоторой службы. Под капотом я должен проверить данные, предоставленные пользователями, а затем передать их процессу «движка», используя класс Connection из другой библиотеки...
1585 просмотров
schedule 19.01.2024

Как идиома pimpl уменьшает количество зависимостей?
Рассмотрим следующее: PImpl.hpp class Impl; class PImpl { Impl* pimpl; PImpl() : pimpl(new Impl) { } ~PImpl() { delete pimpl; } void DoSomething(); }; PImpl.cpp #include "PImpl.hpp" #include "Impl.hpp" void...
2486 просмотров
schedule 01.09.2022

Каковы плюсы и минусы использования d-указателей?
d-указатели широко используются в Qt, они являются реализацией идиомы pimpl. Я знаю преимущества и недостатки идиомы pimpl. Но я упустил преимущества реализации d-указателей. Здесь и здесь приведены примеры d-указателей. Не проще ли просто...
6847 просмотров
schedule 07.05.2024

Должен ли я использовать shared_ptr или unique_ptr
Я создавал некоторые объекты с помощью идиомы pimpl, но не уверен, следует ли использовать std::shared_ptr или std::unique_ptr . Я понимаю, что std::unique_ptr более эффективен, но для меня это не такая большая проблема, поскольку эти...
18914 просмотров
schedule 02.03.2023

Идиома Pimpl и совместная работа с внутренними объектами без объявления друга
Я реализую несколько классов, используя идиому pimpl, и сталкиваюсь с некоторыми проблемами дизайна. Во-первых, я всегда видел, как pimpl делают вот так class Object { public: Visible(); ~Visible(); .. etc .. private: class...
3083 просмотров
schedule 28.05.2022

Лучший способ использования непрозрачного указателя для Pimpl
Я пишу библиотеку-оболочку C++ для ряда различных аппаратных библиотек для встраиваемых систем (на уровне прошивки), используя различные библиотеки от разных поставщиков (C или C++). API, предоставляемый файлами заголовков, не должен зависеть от...
461 просмотров
schedule 03.05.2022

Ошибка удаления std::vector в DLL с использованием идиомы PIMPL
У меня есть следующий код: В DLL1: в файле .h: class MyClass { public: MyClass(); private: std::string m_name; }; class __declspec(dllexport) Foo { private: struct Impl; Impl *pimpl; public: Foo(); virtual ~Foo();...
833 просмотров
schedule 17.08.2022

Использование PIMPL с синглтонами и auto_ptr
У меня есть синглтон с рядом статических методов и методов экземпляра. Я хотел бы экспортировать его в DLL, чтобы я мог использовать его в другом месте. Однако это вызвало предупреждение компилятора, потому что я не экспортировал закрытые...
323 просмотров
schedule 13.09.2023

Как создать приватную статическую константную строку при использовании идиомы pimpl
Фон Я изучаю, как реализовать идиому pimpl, используя новый метод c ++ 11, описанный Хербом Саттером на этой странице: https://herbsutter.com/gotw/_100/ Я пытаюсь изменить этот пример, добавив переменную-член в частную реализацию, в частности...
565 просмотров
schedule 18.01.2023

Явный вызов конструктора копирования объекта внутри unique_ptr
Я использую идиому pimpl с const std::unique_ptr для хранения реализации класса. Мой класс должен поддерживать создание копии и назначение копии. Что я хотел бы сделать, так это вручную вызвать конструктор копирования класса impl внутри класса...
531 просмотров

Реализация оболочки класса на основе pImpl с использованием функций шаблона с переменным числом аргументов
Резюме Пишу библиотеку и клиентское приложение. В библиотеке я пытаюсь написать оболочку для другой статически связанной сторонней библиотеки (в частности, spdlog ) и пытаюсь использовать идиому pImpl, чтобы полностью скрыть его от клиентского...
869 просмотров