Вопросы по теме 'crtp'

Может ли универсальный класс Delphi происходить от своего аргумента класса?
Я пытался определить общий наследуемый класс TSingleton. Вот что у меня было в процессе: TSingleton<RealClass, InheritsFrom : class> = class(InheritsFrom) strict private class var FInstance : RealClass; protected procedure...
732 просмотров
schedule 24.09.2021

CRTP, чтобы избежать накладных расходов на виртуальные функции-члены
В CRTP для предотвращения динамического полиморфизма предлагается следующее решение, позволяющее избежать накладных расходов. виртуальных функций-членов и наложить определенный интерфейс: template <class Derived> struct base { void...
4096 просмотров
schedule 01.11.2021

CRTP по сравнению с прямой реализацией функции в производной
Я пытаюсь лучше понять CRTP. Пока я понимаю, что он позволяет писать такие функции, как следующие. template <class T> void foo(Base<T> x ) { x.do_stuff() } Теперь, в зависимости от фактического производного объекта времени...
719 просмотров
schedule 22.11.2021

c ++ Typelist производного класса
Используя CRTP (любопытно повторяющийся шаблон шаблона), вы можете предоставить базовому классу сведения о классах, производных от него. Не так сложно создать массив, в котором хранится экземпляр каждого класса, производного от базового класса (см....
1417 просмотров

CRTP: включить методы в базовом классе на основе содержимого производного класса
Есть ли способ запросить содержимое производного класса из базового класса CRTP, чтобы использовать его с SFINAE для включения или отключения методов базового класса? То, что я пытаюсь выполнить, может выглядеть следующим образом:...
380 просмотров
schedule 29.11.2021

Смущает что-то похожее на необычно рекурсивный шаблон шаблона
У меня есть приложение, состоящее из нескольких «уровней» элементов. Некоторые элементы являются родительскими для 0..N дочерних элементов, а сами являются родительскими для 0..N других элементов. Тип верхнего уровня не имеет родителя, а элементы...
73 просмотров
schedule 08.10.2021

CRTP с интеллектуальными указателями
Я экспериментирую с концепцией CRTP и с тем, как ее можно использовать для аппроксимации миксинов в C ++. Я разработал следующий код, чтобы проиллюстрировать эту идею, но столкнулся с проблемой, когда вектор shapeVec пытается удалить...
162 просмотров
schedule 09.10.2021

CRTP, чтобы избежать динамического полиморфизма
Как я могу использовать CRTP в C ++, чтобы избежать накладных расходов на виртуальные функции-члены?
27169 просмотров
schedule 28.02.2022

Статический полиморфизм с CRTP: использование базового класса для вызова производных методов
Одним из основных преимуществ virtual в C++ является возможность использовать базовый класс (указатель или ссылку) для вызова производных методов. Я читаю об использовании CRTP для реализации статического полиморфизма , но не могу понять, как...
4378 просмотров
schedule 24.03.2022

Как принудительно использовать любопытно повторяющийся шаблон шаблона в C ++
У меня есть следующий базовый класс шаблона. template<typename T> class Base { public: void do_something() { } }; Он предназначен для использования в качестве любопытно повторяющегося шаблона шаблона . Он должен быть...
710 просмотров
schedule 16.04.2022

CRTP вызывает дочернее виртуальное переопределение в базовом конструкторе
В следующем примере возникает эта ошибка времени выполнения: pure virtual method called terminate called without an active exception например template<class DERIVED> struct Base { int val; Base(int i) :...
142 просмотров
schedule 16.04.2022

Как объявить член в базовом классе шаблона, где тип зависит от производного класса?
Учитывая базовый класс, использующий CRTP, я рассматриваю объявление члена в базовом классе шаблона, где тип зависит от производного класса. В то время как следующее работает по назначению: template <class T> class BaseTraits; template...
859 просмотров

Производный класс CRTP с параметром шаблона шаблона
Я разрабатываю API, который имеет следующую структуру, и мне нужен практический совет по проектированию в области параметров шаблона-шаблона CRTP. Я относительно новичок в шаблонах на C++, так что смиритесь с моей неопытностью....
75 просмотров
schedule 08.05.2022

Класс, производный от CRTP, по-видимому, не знает унаследованного типа
У меня есть структура CRTPBase , служащая базовым классом для любопытно повторяющегося шаблона шаблона. Его единственное использование - предоставить производный тип: template<typename Derived> struct CRTPBase { using asdf = Derived;...
302 просмотров
schedule 16.05.2022

Предотвратить получение пользователем неправильной базы CRTP
Я не могу придумать правильный заголовок вопроса для описания проблемы. Надеюсь, приведенные ниже детали ясно объяснят мою проблему. Рассмотрим следующий код #include <iostream> template <typename Derived> class Base { public...
2356 просмотров
schedule 31.05.2022

Преобразование между подклассами с использованием Curiously Recursive Template Pattern
Дано: класс шаблона Base с аргументом typename value_type , его шаблон Curiulous Recursive Template Pattern "подклассы" DerivedFoo и DerivedBar , и шаблон "подкласс" DerivedBarCode и DerivedBarDoge , производные от DerivedBar ,...
212 просмотров

CRTP — Как вызвать реализацию базового класса метода из производного класса?
В настоящее время я возился с шаблоном CRTP, используя шаблоны С++. Возясь с Visual Studio, я нашел несколько способов/методов, в которых производный класс может вызывать реализацию функции базового класса. Ниже приведен код, который я использую, а...
917 просмотров
schedule 06.06.2022

Шаблон и интерфейсы CRTP C++
Я новичок в шаблонах С++ и наткнулся на следующее определение: В общем, CRTP полезен для исключения реализаций интерфейсов, которые могут быть только функциями-членами (например, конструкторами, деструкторами и операторами индексов). И я изо...
84 просмотров
schedule 10.06.2022

Проблемы компиляции с идиомой CRTP на основе интеллектуальных указателей
Я пытаюсь скомпилировать минимальный рабочий пример для примера CRTP, приведенного в эта запись в блоге , основанная на интеллектуальных указателях. На основе примера кода я написал два файла: заголовок и исходный код. Заголовок ( crtp.h ):...
288 просмотров
schedule 28.06.2022

CRTP и метод, возвращающий void *
Я использую C++ 11. У меня есть класс Base и несколько производных классов для построчного анализа различных файлов конфигурации. template <class T> class Base { public: virtual ~Base(); bool load_from_file(const QString&...
62 просмотров
schedule 26.07.2022