Описание тега class-template

Anything related to C++ class templates, i.e. classes whose definition depends on some parameter according to templates definition rules.
1 ответ

Матричный шаблонный класс, передающий параметр по константной ссылке

Попытка написать шаблонный класс для матричного объекта. Получение ошибок компиляции: c: \ program files (x86) \ microsoft visual studio 11.0 \ vc \ include \ xmemory0 (606): ошибка C2558: класс 'Matrix': конструктор копирования недоступен или конст…
27 окт '18 в 00:23
2 ответа

Список аргументов для шаблона класса "calc" отсутствует

Я пытаюсь изменить класс "calc", чтобы он был более универсальным, чтобы он также принимал удваивающие или плавающие числа. class calc { public: int multiply(int x, int y); int add(int x, int y); }; int calc::multiply(int k1, int k2) { return k1 * k…
2 ответа

Почему этот вызов swap() неоднозначен?

Следующая программа #include <algorithm> #include <utility> #include <memory> namespace my_namespace { template<class T> void swap(T& a, T& b) { T tmp = std::move(a); a = std::move(b); b = std::move(tmp); } template&l…
2 ответа

Как построить объекты из похожих шаблонных классов

Моя цель заключается в следующем. Я работаю с белками в условиях анализа данных. Данные, доступные для любого данного белка, являются переменными. Я хочу быть в состоянии построить класс белка из более простых родительских классов. Каждый родительск…
1 ответ

Ошибка шаблона в списке

Я пытаюсь реализовать Снежинку Коха. Ради практики я составил общий список, но у меня возникли некоторые проблемы. #include <stdlib.h> #include <stdio.h> #include <math.h> #include <gl/glut.h> template <typename T> clas…
1 ответ

Хранение шаблонных указателей на объекты в векторе и доступ через указатель базового класса

Я пытаюсь создать двумерный динамический массив, где каждая строка будет соответствовать списку другого типа данных. Для этой цели я использую вектор указателей, где каждый указатель будет указывать на одномерный массив определенного типа. Чтобы соз…
10 мар '18 в 20:30
1 ответ

Невозможно вывести строку из шаблона класса

Я пытался заставить свой шаблон класса распечатать строку для меня. Однако я получаю error C679: No operator found which takes a right hand operand of type std:: string, Я пробовал различные способы, чтобы эта ошибка исчезла. #include <iostream&g…
08 дек '14 в 06:44
1 ответ

Использование typedefs из класса шаблона в функции шаблона (не члена)

Следующее не скомпилируется (в любом случае с gcc 4.2.1 в Linux): template< typename T > class Foo { public: typedef int FooType; }; void ordinary() { Foo< int >::FooType bar = 0; } template< typename T > void templated() { Foo<…
1 ответ

Шаблонные классы и перегрузка операторов

Как мне перегрузить класс шаблона, как показано ниже? template <class T> const_iterator& List<T>::const_iterator::operator++() { current = current->next; return *this; } template <class T> const_iterator List<T>::const…
2 ответа

Спецификация пакета параметров C++ в конструкторе, а не в шаблоне

В отличие от объявлений функций с пакетами параметров, я обнаружил, что классы требуют тип для каждого аргумента в угловых скобках... Component<IntegerPair, int, int> temp(40, 5); ... который кажется излишним. Вот как я определил Component: te…
1 ответ

Как вызвать конструктор с одним аргументом в этой программе, включающий шаблон класса?

Это код, который я написал, чтобы начать работу с шаблонами классов. #include<iostream> using namespace std; template<class T> class Complex { T *real,*imag; public: Complex(T a) { real=new T; imag=new T; *real=a; *imag=0; } Complex(T a,…
06 апр '16 в 20:25
1 ответ

Наследование для шаблонов классов

У меня есть три шаблона классов, использующих одни и те же данные членов и разные экземпляры одних и тех же методов. Я хотел бы создать шаблон базового класса и позволить этим трем наследовать его: #include <vector> #include <memory> tem…
18 ноя '18 в 12:06
2 ответа

Вызов другой функции-члена из функции в шаблоне класса в C++

Допустим, у меня есть шаблон класса с именем myTemplate с некоторыми переменными-членами и двумя функциями-членами, funcTempA, а также funcTempB, template <class T> class myTemplate { private: //member variables public: T* funcTempA(T *arg1, T…
19 дек '15 в 10:35
1 ответ

C++: предоставление функции класса в шаблонном классе о существовании именованного члена в его шаблонном типе?

Я пытаюсь сделать следующее: шаблонный класс должен предоставлять некоторые функции, зависящие от того, содержит ли тип, с которым он был создан шаблон, переменную-член с заданным именем. В качестве примера следующий псевдокод, который должен предос…
27 янв '16 в 19:14
3 ответа

Непосредственное окно

Мы используем fluentmigrator, и он хочет длинный номер миграции. Обычно я могу просто открыть окно и введите System.DateTime.Now.ToString("yyyMMddhhmmss"); Но иногда он скажет: Выражение не может быть оценено в режиме конструктора. Поэтому я начинаю…
2 ответа

Вложение вложенного аргумента шаблона для шаблонов классов не работает

В этих вопросах и ответах я написал небольшой класс-обертку, который предоставляет обратный итератор для доступа к диапазону, полагаясь на вывод аргумента шаблона функции языка C++1z для шаблонов классов ( p0091r3 , p0512r0 ) #include <iostream&g…
2 ответа

Шаблонная специализация с зависимыми значениями

Использование шаблонов для размера массива кажется простым: template <size_t N> struct MyArray { char array[N]; }; Однако я хотел бы установить размер массива на основе чего-то еще: enum MyEnum {Hi, Lo}; template <MyEnum T, size_t N> str…
03 янв '16 в 01:23
2 ответа

Шаблон класса, который не зависит от перестановок его аргументов

Рассмотрим шаблон класса и вспомогательные перечислимые классы, определенные следующим образом: enum class Color {Red, Green, Blue} enum class ShowAxes {False, True} enum class ShowLabels {False, True} template< Color, ShowAxes, ShowLabels > c…
02 фев '15 в 10:43
1 ответ

Константность вывода шаблона класса C++17

Я пытаюсь использовать вывод нового шаблона класса C++17, и, кажется, все работает нормально, пока я не применю const. Это небольшой пример проблемы, с которой я сталкиваюсь: #include <type_traits> template <typename T> struct X { T _dat…
25 июл '17 в 00:58
2 ответа

Взаимодействие с шаблоном класса

Я действительно уверен, что ответ на мою проблему можно найти в одной из ранее созданных тем. В частности, где и почему я должен поставить ключевые слова "template" и "typename"? который имеет отличное объяснение неоднозначности шаблон / имя типа. О…
22 мар '14 в 04:35