Вопросы по теме 'explicit-instantiation'
Как правильно явно создать экземпляр класса шаблона с полностью специализированными членами?
Допустим, у нас есть следующие файлы:
foo.h
namespace ns
{
template <typename T>
class Foo
{
public:
Foo();
~Foo();
void DoIt();
};
}
foo.cpp
#include "foo.h"
#include...
1912 просмотров
schedule
04.08.2023
Путаница вокруг явного создания экземпляра шаблона
Что ж, я думаю, что меня очень смущает явное создание экземпляра шаблона ~> _ ‹~
Может ли явное объявление создания экземпляра использовать неявное определение экземпляра?
Что, если в программе существуют как явные, так и неявные определения...
693 просмотров
schedule
13.07.2023
Когда явное определение экземпляра шаблона предшествует явному объявлению, GCC и clang расходятся во мнениях.
См. следующий код:
#include <vector>
template class std::vector<int>;
extern template class std::vector<int>;
int main() {}
В то время как GCC 5.2 компилируется нормально, clang 3.6 выдает следующее сообщение об ошибке:...
723 просмотров
schedule
23.05.2022
Как экспортировать класс, полученный из явно созданного шаблона в Visual Studio?
В моей DLL у меня есть шаблон класса и второй класс, полученный из экземпляра этого шаблона. Оба класса должны быть экспортированы и использоваться в других DLL. Компилятором является Visual Studio 2013. Я хочу, чтобы код шаблона создавался ровно в...
1954 просмотров
schedule
29.12.2022
Могу ли я использовать decltype(), чтобы избежать дублирования кода при явном создании экземпляров шаблона?
У меня есть длинное объявление функции шаблона:
template <typename T> void foo(lots ofargs, goin here, andeven more, ofthese arguments, they just, dont stop);
без перегрузок. и я хочу явно создать его экземпляр. Я могу написать...
116 просмотров
schedule
23.09.2022
Объявления явного создания экземпляров шаблона C++: лучшие практики
Мой вопрос заключается в том, как мы должны правильно использовать явные объявления экземпляров шаблона ?
Предположим, у нас есть некоторый шаблонный класс template<class T> Foo .
Вот мой разум, как справиться с этой функцией:...
1010 просмотров
schedule
10.08.2022
Явное создание экземпляра вариационного конструктора: идентификатор шаблона не соответствует ни одному объявлению шаблона.
Я пытаюсь явно создать экземпляр variadic конструктор. Этот минимальный пример для распечатать все arguments вызывает ту же ошибку, которую я вижу на MinGW-w64 на 64-битной Win 7 с GCC 5.3.
struct stf {
template<typename... Args>...
301 просмотров
schedule
07.12.2022
Явное создание экземпляра шаблона и ссылки на пересылку
Недавно я обсуждал со студентами возможности ограничения типов для шаблонов , использующих ссылки для переадресации . Я знал о сравнении типов по is_same вместе с static_assert или enable_if , но мы также говорили о явном создании экземпляров...
317 просмотров
schedule
20.04.2022
MSVC не удается скомпилировать явное создание экземпляра шаблона с закрытым типом в качестве аргумента.
Рассмотрим следующий пример, состоящий из 4 файлов.
Внешний.h
#pragma once
#include "genericAlgorithm.h"
class Outer
{
private:
struct Inner {}; // Note that Inner is private
const Inner inner;
public:
Outer() : inner()...
331 просмотров
schedule
29.05.2023
Как я могу сжато написать множество явных экземпляров шаблонов функций?
Я пишу библиотеку C++, содержащую множество шаблонов функций, которые я хочу явно создать и экспортировать для нескольких параметров типа. В моем конкретном случае у меня есть много шаблонов числовых функций, которые я хочу отдельно создать и...
371 просмотров
schedule
29.04.2023
Создание экземпляров шаблонов функций-членов для нескольких типов
У меня есть несколько классов с шаблонными функциями-членами и предопределенный список типов, с которыми они будут использоваться ( Wandbox link :
// main.cpp:
#include "class.h"
int main(int argc, char** argv) {
A a;
a.foo(5);...
1235 просмотров
schedule
11.06.2023
Почему явное создание экземпляра шаблона не нарушает ODR?
Этот вопрос возник в контексте этого ответа .
Как и следовало ожидать, эта единица перевода не компилируется:
template <int Num> int getNum() { return Num; }
template int getNum<0>();
template int getNum<0>(); // error:...
366 просмотров
schedule
05.02.2024
Когда шаблоны функций создаются в шаблоне класса?
В какой момент создаются экземпляры шаблонов функций в следующем шаблоне класса?
// a.h
#pragma once
template <typename T>
class A {
public:
template <typename T2> void func1(T2 t);
void func2(T t);
T func3();
void...
51 просмотров
schedule
04.08.2022
Как работает явное создание экземпляра шаблона?
Я изо всех сил пытаюсь понять явное создание шаблона с использованием спецификатора extern . Вот мой пример
// power.h
template <typename T>
class Power
{
public:
T operator()(T const& x) {return x * x;}
};
// power.cpp...
36 просмотров
schedule
03.05.2024
Автоматизация явного создания экземпляра шаблона
Чтобы сократить время компиляции в проекте с большим количеством шаблонов, я пытаюсь явно создавать экземпляры многих шаблонов в отдельной единице компиляции. Поскольку эти шаблоны зависят от enum class элементов, я могу перечислить все возможные...
96 просмотров
schedule
03.02.2023
Когда происходит создание экземпляра для явного создания экземпляра шаблона функции
Здравствуйте, я пытаюсь узнать о явном создании экземпляров . И поэтому читая разные примеры, но в одном примере есть некоторые сомнения. Пример приведен ниже, и у меня есть 2 сомнения в этом конкретном примере.
Файл Application.cc содержит:...
53 просмотров
schedule
16.07.2023