Результаты поиска по запросу "crtp"

1 ответ

Инициализация статического члена данных constexpr базового класса с использованием статического члена данных constexpr производного класса

Рассмотрим следующий код:

5 ответов

 в том, что это сломало бы механизм владения:

ращаясь к книге, кто-нибудь может дать хорошее объяснение

2 ответа

C ++ CRTP виртуальная функция точка создания

Я пытаюсь понять, является ли стандартным простой шаблон CRTP. Код ниже компилируется и работает как положено (на Clang). Но мое понимание соответствующих стандартных глав / параграфов состоит в том, что точка создания виртуальной функции CRTP ...

ТОП публикаций

2 ответа

Удивительно, как кусочки головоломки сочетаются друг с другом. Спасибо за подробное объяснение.

я есть какой-то устаревший код, и мне нужно добавить новый класс для сообщения (что не имеет отношения к моему вопросу). Но оказывается, что мне нужно объяви...

5 ответов

но я не хочу использовать макросы, если существует лучшее решение.

ощьюCRTP иногда я пишу такой код:

0 ответов

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

отрим следующий стандартный пример CRTP: #include <iostream> template<class Derived> struct Base { void f() { static_cast<Derived *>(this)->f(); } void g() { static_cast<Derived *>(this)->g(); } }; struct Foo : public Base<Foo> { void f() { ...

1 ответ

@ Дэвид, ну, я думаю, я не могу вызвать приведение в определении класса (в отличие от определения члена класса). Я пытаюсь сделать небольшой ORM в сочетании с шаблоном явного обмена Qt. Моя цель состояла в том, чтобы позволить пользователю написать весь необходимый код, включая фактическую структуру для хранения информации в памяти (данных) внутри своего подкласса.

упрощенный) базовый класс: template <class T> class SharedObject { protected: QExplicitlySharedDataPointer <typename T::Data> d; };А вот и выводное: class ThisWontCompile : public SharedObject <ThisWontCompile> { private: friend class ...

3 ответа

). В качестве альтернативы, вы можете использовать «статический оператор if», который выясняет, действительно ли T1 является целочисленным типом, и, если это так, введите typedef T1 в IntType, если нет, введите typedef T2 в IntType.

аюсь использовать шаблон Curily Recurring Template Pattern (CRTP) и предоставляю дополнительные параметры типа: template <typename Subclass, typename Int, typename Float> class Base { Int *i; Float *f; }; ... class A : public Base<A, double, ...

5 ответов

Если я правильно понял вопрос, то я чувствую, что ответ в самом вашем вопросе. :)

я старый добрый CRPT (пожалуйста, не отвлекайтесь на ограничения доступа - вопрос не о них): template<class Derived> class Base { void MethodToOverride() { // generic stuff here } void ProblematicMethod() ...

5 ответов

 по

читалСтатья в википедии [http://en.wikipedia.org/wiki/Curiously_Recurring_Template_Pattern]о странно повторяющемся шаблонном шаблоне в C ++ для статического (читай: во время компиляции) полиморфизма. Я хотел обобщить это так, чтобы я мог изменить ...