Описание тега crtp
Любопытно повторяющийся шаблон шаблона (CRTP) - это идиома C++, в которой класс X является производным от экземпляра шаблона класса с использованием самого X в качестве аргумента шаблона.
2
ответа
Clang и Intel не могут скомпилировать этот код CRTP
Я написал небольшую библиотеку, которая использует множество методов метапрограммирования C++11 и CRTP, и она хорошо компилируется с g++ 4.7.2 Теперь я пытаюсь скомпилировать его с Intel ICPC 13.0.0.079, и он генерирует несколько сотен ошибок. Поэто…
08 янв '13 в 14:26
2
ответа
Могу ли я переслать аргументы шаблона производного класса в базу CRTP?
Предположим, у меня есть производный класс Derived, А также принимая параметры шаблона, Derived является производным классом Baseкоторый, в свою очередь, основан на Derived, Ниже приведен пример рабочего решения: template <int i, typename T> c…
31 июл '14 в 01:01
2
ответа
Ошибка: нет члена с именем rank_ в EndIndex
Я пытаюсь использовать библиотеку автоматического дифференцирования Adept, и я заставил ее работать с gcc 4.9.0 и icc 16.0.2, но не удалось с VS 2017 и Clang 4.0.1 Я сократил проблему до следующего фрагмента и, пока я решаю эту проблему с создателям…
18 окт '17 в 08:56
1
ответ
Итератор Наследование и наследование *this
Как написать базовый класс и несколько производных классов итератора? Должен ли итератор возвращать себя (*this)? Пока что пользуюсь typename X а также static_cast<X&>(*this) чтобы позволить производному классу наследовать функцию, которая…
20 сен '16 в 21:32
3
ответа
Как написать любопытно повторяющиеся шаблоны с более чем 2 слоями наследования?
Весь материал, который я прочитал на шаблоне "Любопытно повторяющийся шаблон", кажется одним уровнем наследования, т.е. Base а также Derived : Base<Derived>, Что если я захочу сделать еще один шаг вперед? #include <iostream> using std::c…
12 май '10 в 17:00
1
ответ
Ошибка шаблона множественного наследования неоднозначного символа
У меня есть реальная проблема, которая может быть обобщена следующим образом: template <typename BaseType> class TemplateClass { public: template <typename BaseTypee, unsigned PrefixID> static void deleteType(unsigned int ObjID) { } }; c…
08 май '16 в 14:50
1
ответ
Оператор шаблона класса шаблона требует доступа к другим специализациям
Я реализовал матричный класс с использованием CRTP. Для умножения матриц я хотел бы использовать friend operator*, Проблема в том, что в соответствии с этим вопросом и моим собственным опытом мне нужно определить operator* внутри класса, чтобы заста…
22 ноя '13 в 13:41
1
ответ
C++ эффективная реализация классов-оболочек
У меня есть проект, который широко использует (с высокой частотой) ограниченный набор ключевых операций линейной алгебры, таких как умножение матриц, инверсия матриц, сложение и т. Д. Эти операции реализованы с помощью нескольких библиотек линейной …
05 ноя '17 в 12:07
1
ответ
Использование "любопытно повторяющегося шаблона" в многофайловой программе
Я довольно начинающий (C++) программист и только что обнаружил CRTP для подсчета объектов, принадлежащих определенному классу. Я реализовал это так: template <typename T> struct Counter { Counter(); virtual ~Counter(); static int count; }; tem…
09 июл '10 в 20:24
1
ответ
Получить размер полиморфного объекта
Я хочу иметь возможность получить размер полиморфного объекта. На данный момент я получил это: struct Base { virtual std::size_t size() const { return sizeof(*this); } }; struct Derived : Base { virtual std::size_t size() const { return sizeof(*this…
21 сен '14 в 17:09
2
ответа
Контейнеры CRTP
Я режу зубы в некотором программировании шаблона, и я очень плохо знаком с этим. Я хочу реализовать несколько классов CRTP, которые содержат контейнер STL. Позволять class A{}; служить примером для базового класса (время компиляции), из которого cla…
30 авг '11 в 04:56
1
ответ
Как вызвать конкретный метод шаблона в классе детей (наследование с помощью CRTP -решения)
У меня есть шаблон, подобный стратегии, где интерфейсом стратегии является IFilter, Context - это класс Context, Filter1, Filter2... и т. Д. - это Concrete Strategies, CommonFilter - это промежуточный слой между Strategy и Concrete Strategy для неко…
17 сен '18 в 10:48
1
ответ
Получить тип шаблона класса в шаблоне посетителя
Я пытаюсь написать систему обмена сообщениями с шаблонами, шаблонами посетителей и с помощью CRTP. Я понимаю эти концепции, но, тем не менее, я нахожусь в ситуации, когда мне нужно вернуть "потерянный" тип. у меня есть Base класс, и я хочу найти Der…
21 апр '17 в 21:59
1
ответ
Вызов функции-шаблона родительского класса из производного класса
У меня очень специфический вопрос (не против спросить, почему я этого хочу, было бы очень сложно объяснить это) Я хочу вызвать Template-Function из родительского класса, который косвенно вызывает деструктор дочернего класса Я пытался реализовать это…
04 май '16 в 11:44
1
ответ
Обеспечить безопасность при использовании CRTP
Рассмотрим следующий фрагмент кода при использовании CRTP. #include <iostream> struct Alone { Alone() { std::cout << "Alone constructor called" << std::endl; } int me {10}; }; struct Dependant { explicit Dependant(const Alone& …
19 апр '16 в 03:10
1
ответ
Может ли libclang проанализировать шаблон CRTP?
Я пытаюсь использовать libclang для синтаксического анализа C++, но, похоже, есть проблема с шаблоном CRTP, то есть когда класс наследует от шаблона, который создается с помощью производного класса: // The Curiously Recurring Template Pattern (CRTP)…
14 мар '17 в 19:57
1
ответ
CRTP и функции, которые возвращают экземпляр производного типа
Я пытаюсь создать базовый класс с функциями, которые при наследовании возвращают экземпляры подкласса. Абстрактная версия того, что я сейчас пытаюсь: Ах: #include <string> template <typename Derived> class A { public: A<Derived>();…
28 апр '16 в 18:16
0
ответов
Clang++-3.7 Ошибка компиляции CRTP "без имени члена" в аргументе шаблона родителя
В приведенном ниже коде я пытаюсь использовать CRTP для использования статического члена "значение" из класса Child в классе Parent. При компиляции кода с g++ 5.2.1 с флагом "-pedantic" я могу компилировать как положено, и при выполнении c.print_val…
02 мар '16 в 22:02
1
ответ
Любопытно повторяющиеся проблемы подклассов, зависящие от параметров шаблона и шаблона
Я пытаюсь заставить работать следующий код template < class __derived, class __object = typename __derived::Object > struct Base { using Derived = __derived; using Object = __object; void function(Object o) { return Derived::function(s); } } /…
17 июн '14 в 23:36
1
ответ
C++ CRTP с параметризованным базовым классом?
Я пытаюсь использовать CRTP с небольшим изменением. У меня есть один шаблон производного класса, и я хочу применить его к нескольким базовым классам. Но это либо невозможно, либо я просто не могу понять правильный синтаксис. Следующий код не компили…
21 окт '11 в 09:16