Результаты поиска по запросу "templates"
Хороший улов! Я изменил заголовок в ответе. Спасибо!
я есть несколько классов, которые я не могу изменить. У каждого есть конструктор копирования, по крайней мере, один другой конструктор и функцияfoo() это возвращает некоторое значение. Я хочу создать шаблон класса, который может быть производным ...
Если ваша функция шаблона создается только в одном файле .cpp, вы можете определить ее там. Иногда это происходит, когда у класса есть закрытая функция-член, которая является шаблоном (и она вызывается только из файла реализации, а не из файла заголовка класса).
от вопрос уже есть ответ здесь: Почему шаблоны могут быть реализованы только в заголовочном файле? [/questions/495021/why-can-templates-only-be-implemented-in-the-header-file] 15 ответовИтак, я слышал, что шаблоны C ++ не следует разделять на ...
шаблон django для заполнения строк и столбцов начальной загрузки
Итак, вот моя проблема: у меня есть куча экземпляров класса. Я хотел бы иметь своего рода таблицу этих объектов экземпляра, чтобы в каждой строке было максимум шесть. В терминах начальной загрузки я хотел бы, чтобы каждый объект был представлен ...
, но формально, это неопределенное поведение, если тип не POD: в зависимости от компилятора, вы получите ошибку во время компиляции или просто неверные результаты иногда. И вы не можете использовать его на указатель на член. Вы должны вызвать его с именем класса и именем члена.
template<class T, typename U> ptrdiff_t foo(T U::* m) { // return offset } могу получить смещение поля «м» в этом контексте? Я бы предпочел использовать выражение времени компиляции. Заранее благодарю за любую помощь. С уважением
@Ben: Вы правы: это может потребовать двух этапов создания шаблона. Но разве не страшно, что с помощью решения во время выполнения компилятор генерирует раздутый код для динамической вставки сотен указателей в вектор и, возможно, изменения его размера (malloc действительно плохо, когда у вас есть только несколько килобайт) во время процесса, хотя в идеале Достаточно ли простой таблицы поиска? А ручная пред- или постобработка еще страшнее ...
тавьте, что у вас много классов с большим количеством различных параметров шаблона. У каждого класса есть методstatic void f(), Вы хотите собрать все эти указатели на функции в списке L. Решение во время выполнения будет простым: typedef void ...
оператор присваивания.
я есть простая структураWrapperОтличается двумя шаблонными перегрузками операторов присваивания: template<typename T> struct Wrapper { Wrapper() {} template <typename U> Wrapper &operator=(const Wrapper<U> &rhs) { cout << "1" << endl; return ...
А затем вызвать функцию как,
ак-то возможно? Я хочу, чтобы включить передачу аргументов во время компиляции. Предположим, это только для удобства пользователя, так как всегда можно набрать реальный тип с помощьюtemplate<class T, T X>, но для некоторых типов, то ...
это также хорошо как упражнение
аюсь построить шаблонный класс Matrix в C ++. Ниже приведена его реализация. Я реализовал два оператора +, + = на данный момент, чтобы дать представление о том, как это будет выглядеть, и я подумал, что было бы лучше попросить обратную связь, ...
отличный инструмент для отладки шаблонов. С онлайн-режимом!
чень трудно понять, что не так с моим кодом при использовании метапрограммирования на С ++. Возможно, я просто не очень хорошо разбираюсь в сообщениях об ошибках, но, насколько мне известно, я не могу прибегнуть к использованию операторов печати ...
). В качестве альтернативы, вы можете использовать «статический оператор 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, ...