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

Функции, которые служат образцом для создания других подобных функций. Основная идея шаблонных функций - создать функцию без указания точного типа (ов) некоторых или всех переменных.
1 ответ

SFINAE: удалить функцию с тем же прототипом

Интересно, в чем разница между этим кодом, который работает: #include <type_traits> #include <iostream> template<typename T> using is_ref = std::enable_if_t<std::is_reference_v<T>, bool>; template<typename T> usin…
20 май '18 в 23:41
2 ответа

Функция шаблона зависит от нетипичного параметра

Можно ли как-то определить перегруженную функцию шаблона на основе нетипичного параметра? следующая ситуация: template<uint8_t> void SetupMem(); template<> void SetupMem<4>() { /* some code */ } template<> void SetupMem<8&…
09 авг '18 в 09:01
2 ответа

Вызывать указатель на функцию шаблона с нулевым аргументом с переменным аргументом шаблона?

Вот фрагмент кода из поста в блоге Functional C++, описывающий, как можно реализовать обобщенную оценку функции. Мой вопрос заключается в том, как вы можете объявить указатель на функцию шаблона f как R(C::*f)() без аргументов и при этом иметь возмо…
2 ответа

C++ - шаблонная функция, которая может возвращать разные типы?

Я работаю над разделом кода, который позволяет пользователю выполнять поиск по различным типам (double/string/date(пользовательский класс)). Это включает в себя метод под названием readInSearchCriteria() что я пытался установить в качестве шаблона. …
25 мар '16 в 22:02
3 ответа

Почему ни одна шаблонная функция не делает больше двоичной, чем шаблонная функция

Смотрите эту простую программу #include <cstdio> #include <cstdlib> void foo(){ printf("%d",1); } int main(){ foo(); } Я компилирую его с помощью gcc 4.6.4 -std= C++0x -O2 -g -Wall на Linux. И двоичный файл 11`238 байт. Но этот код соста…
05 ноя '13 в 11:06
2 ответа

Обтекание шаблонной функции C++

Я пытаюсь обернуть шаблонную функцию с помощью опции компоновки GNU. Код выглядит так: // f.h template<typename T> void f(T t) { } // bar.h void bar(); // bar.cpp #include "bar.h" #include "f.h" void bar() { f(42); } // test.cpp extern "C" { e…
17 янв '12 в 14:32
2 ответа

Пересылка ссылок и шаблонов

Рассмотрим эти две функции шаблона: template<typename T> void foo(T&& bar) { // do stuff with bar, which may or may not be an instance of a templated class } template<typename U, template<typename> class T> void foo(T<U&…
1 ответ

Слияние вектора + сопоставление версий функции с одной совместимой версией

Это две мои перегруженные функции для std::map контейнер и для std::vector контейнер с лямбда-выражением. Кто-нибудь видит способ сделать это шаблон-функцией, которая может проверять лямбда-выражение для pair тип (в моем случае второй из пары) и тип…
18 янв '16 в 15:33
1 ответ

Почему автоматическое понижение рейтинга не применяется к функциям шаблона?

Кто-то задал этот вопрос о добавлении строки. Это string s; s = s + 2; не компилируется. Люди давали ответы о том, что operator+ определяется как функция шаблона, в то время как operator+= нет, поэтому авто удручает (int(2) в char(2)) не применяется…
04 авг '17 в 12:03
3 ответа

Проблема связывания, когда производный класс вызывает шаблонную функцию в базовом классе

У меня есть класс Base в base.h, который имеет функцию шаблона class Base { template <typename T> void test(T a); } этот шаблон должен читать в int или же double типа, и у меня есть класс Derived, который является производным от класса Base Я …
0 ответов

Как определить шаблонную функцию друга класса шаблона

У меня есть шаблон класса array_T который является массивом общего назначения и функцией шаблона linear search TEMPLATE.h и его объявили другом для класса arrayTemplate.h чтобы можно было использовать функцию-член класса getArraySize() и член класса…
06 янв '17 в 16:50
2 ответа

Шаблоны функций в C++?

Для школы у меня есть задание создать шаблон функции и использовать пользовательский ввод для динамической памяти. Мой код не работает, но мой учитель говорит, что он правильный, и не работает только мой компилятор. Это ошибка, которую я получаю от …
0 ответов

Об аргументе шаблона по умолчанию в шаблоне функции

Я понял, что в C++11 возможно иметь значение по умолчанию в аргументах шаблона функции-шаблона. До сих пор это было разрешено только для занятий. Я всегда думал, что установка значения по умолчанию в аргументе шаблона в C++11 будет означать что-то в…
23 июн '14 в 22:10
1 ответ

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

Я пытаюсь выяснить, является ли частичная спецификация шаблонных функций частью стандарта C++ или это что-то специфичное для компилятора. Под частичной спецификацией я подразумеваю указание только тех типов, которые компилятор не может определить. П…
1 ответ

Ограничивает специализации с использованием SFINAE, Constraints или Concepts?

Следующая программа работает нормально: struct M; // forward declare so compiler will recognize this type struct N; template< typename J > struct B { template< typename U > void Func1(); }; template<> template<> void B< M …
1 ответ

Неразрешенный внешний символ C++ с вызовом функции шаблона

Пока я не вызываю функцию, все в порядке, но как только я вызываю функцию, я получаю неразрешенный внешний символ. Все мои классы находятся в пространстве имен SSE (мое собственное) и до сих пор работали нормально. Позволь мне показать. #include "SD…
13 мар '13 в 02:35
0 ответов

Неопределенная ссылка для функции шаблона в C++

У меня есть template функция, и у меня всегда есть ошибка, используя typename в моих переменных. У меня есть две функции для вызова, они template <> void caffe_axpy<float>(const int N, const float alpha, const float* X, float* Y) { cblas…
11 авг '17 в 02:19
1 ответ

DLL + класс экспорта + член шаблона func = неразрешенный внешний символ. Есть ли шанс исправить?

Прежде всего, это не повторяющийся вопрос, потому что 1) это проблема с компоновщиком, компилятор успешно прошел, потому что я его явно создал. 2) Речь идет не о классе шаблона, а о функции-члене шаблона. 3) У меня есть некоторые ограничения на стру…
4 ответа

Почему ADL не находит шаблоны функций?

Какая часть спецификации C++ ограничивает поиск, зависящий от аргументов, от поиска шаблонов функций в наборе связанных пространств имен? Другими словами, почему последний звонок в main ниже не скомпилировать? namespace ns { struct foo {}; template&…
3 ответа

Вызов функции шаблона из файла C

Я знаю, что шаблоны не определены в C. Однако в моем случае у меня есть API, написанный на C++, который используется приложением, написанным на C. Я хочу добавить функцию шаблона в API. Функция определяется в abc.cpp следующим образом: template<t…
18 ноя '16 в 13:30