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

Often used to refer to a template parameter that is itself a template.
3 ответа

Использование имен аргументов параметров шаблона шаблона

В коде template < template<class TTP> class TP > ... // whatever является TTP тогда можно использовать где угодно? Не могу найти ссылку на то, что происходит с этими именами в Стандарте.
15 фев '15 в 12:31
0 ответов

Поддерживаются ли параметры шаблона шаблона для функции в новых стандартах C++?

Я нашел следующее утверждение в книге Шаблон C++: Полное руководство: Параметры шаблона шаблона для шаблонов функций не допускаются. Но он следующий кусок кода компилирует и запускает для меня. template< typename T, template <typename elem,typ…
2 ответа

Почему самый простой шаблон-шаблон не может быть скомпилирован?

Следующий код не может быть скомпилирован с VC++ 2013 CTP. template <template <class> A, class B> void f(A<B>) {} Вывод таков: error C2988: unrecognizable template declaration/definition error C2059: syntax error : '<L_TEMPLATED…
2 ответа

C++ шаблон шаблона нетипичный параметр

Я пытаюсь добиться следующего: template<template<typename> bool Function_, typename ... Types_> constexpr auto find(Tuple<Types_ ... >) noexcept { // ... } где возможная функция может быть: template<typename T> inline constex…
12 июл '17 в 04:09
1 ответ

Шаблон C++ Template для модульного тестирования

Я экспериментирую с использованием возможностей шаблонных шаблонов C++, чтобы уменьшить дублирование кода в небольшом сегменте модульных тестов в моем коде, но безуспешно. Я видел эти ответы на похожие вопросы, но все еще не могу понять, что говорит…
23 окт '18 в 21:55
1 ответ

Ссылаясь на шаблонную функцию в шаблоне

Я хотел бы иметь возможность назвать шаблонной функции в шаблоне. Поскольку можно назвать шаблонный класс с использованием синтаксиса "шаблон шаблона", а поскольку можно назвать функцию с использованием синтаксиса "указатель функции", мне было интер…
14 мар '16 в 10:46
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&…
2 ответа

Функциональный C++ через злоупотребление шаблоном

Я решил попытаться написать реализацию функциональной карты на C++ с использованием шаблонов, и вот что я придумал: template < class U, class V, template <class> class T > class T<V> WugMap( class T<U>::const_iterator first, …
1 ответ

Является ли значение параметра шаблона шаблона по умолчанию выводимым контекстом?

Я был действительно удивлен, что и gcc, и clang принимают этот код: #include <iostream> #include <vector> #include <type_traits> template <class T, template <class, class = T> class TT, class Y> T foo(TT<Y>) { } i…
07 дек '16 в 20:44
1 ответ

Когда параметры шаблона шаблона стали частью стандарта?

Я понимаю из Раздела 1.5.2 Modern C++ Design, что параметры шаблона шаблона не были широко поддержаны компиляторами во время написания книги. Когда эта функция стала частью стандарта?
09 авг '15 в 10:03
2 ответа

Как извлечь шаблонный класс шаблона из boost::enable_shared_from_this?

Как можно извлечь класс шаблона с шаблонным типом из boost::enable_shared_from_this? template<template<class T> class Container> class Myclass : public boost::enable_shared_from_this<?> { }; Это не компилируется: template<templa…
12 июл '13 в 11:32
1 ответ

Странный параметр шаблона шаблона, ожидаемая ошибка

При попытке скомпилировать этот кусок кода: template <class URNG> struct Dumb : Brain<Dumb, URNG> { Move operator()(const Rat<Dumb, URNG>& rat, URNG&& urng) { Move move; move.x = 1; move.y = 0; //rat.look(1, 2); //rat.g…
24 янв '15 в 14:38
1 ответ

Как применить ограничения между шаблоном и параметрами шаблона в C++17

У меня есть следующий код, который компилируется (GCC7, C++17): template<typename T> struct NDArrayHostAllocatorNew { static T* allocate(std::size_t size) { return new T[size]; } static void deallocate(const T* ptr){ delete [] ptr; } }; templa…
13 окт '17 в 06:16
2 ответа

Шаблон переменной шаблона?

Допустим, у вас есть тип кортежа, и вы хотите извлечь его пакет параметров шаблона, чтобы создать экземпляр другого шаблона. Если это шаблон типа, то у меня может быть такая утилита: template < typename Tuple, template <typename...> typenam…
2 ответа

Шаблон, содержащий итераторы коллекции std

Этот шаблон может хранить векторные итераторы определенного типа. template<typename T> struct foo { typedef typename std::vector<T>::iterator it; std::vector<it> m_collection; }; Как сделать шаблон более универсальным и поддерживат…
08 янв '19 в 21:02
2 ответа

Псевдоним шаблона C++11 в качестве аргумента шаблона шаблона приводит к другому типу?

Мы наблюдали странное поведение при компиляции следующего исходного кода: template<template<class> class TT> struct X { }; template<class> struct Y { }; template<class T> using Z = Y<T>; int main() { X<Y> y; X<…
2 ответа

Используйте std::tuple для списка параметров шаблона вместо списка типов

Я пытаюсь сделать вызов шаблонной функции, как это: typedef std::tuple<int, double, bool> InstrumentTuple; Cache cache; InstrumentTuple tuple = cache.get<InstrumentTuple>(); Я знаю, что могу "просто" передать типы кортежей. Это то, что я…
4 ответа

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

Я ожидаю, что последние две строки первого примера кода будут печататься одинаково. Типы вычитаются так, как я ожидаю, и разрешение перегрузки также соответствует ожиданиям. Однако, если я явно набираю квалификацию вызова функции, тогда я получаю др…
02 сен '13 в 04:06
3 ответа

Функция шаблона для получения общей карты в качестве параметра

Там может быть много случаев, когда мы хотим выполнить какую-то операцию на std::map или std::unordered_map это точно так же, независимо от типа карты. Давайте рассмотрим следующий пример: #include <map> #include <unordered_map> #include…
09 авг '17 в 21:48
1 ответ

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

У меня возникают проблемы при написании элементов шаблона не шаблонного класса, особенно при выводе параметров шаблона аргумента шаблона шаблона. Следующий код, минимальный, иллюстрирует мою проблему. Я подозреваю, что там как минимум две разные про…