Вопросы по теме 'variadic-templates'

В чем смысл токена? то есть оператор двойного многоточия в пакете параметров
Просматривая текущую реализацию новых заголовков C++11 в gcc, я наткнулся на токен "....". Вы можете проверить, что следующий код компилируется [через ideone.com]. template <typename T> struct X { /* ... */ }; template <typename T,...
8013 просмотров
schedule 10.07.2023

Расширение пакета параметров, содержащего initializer_list, до конструктора
Я намереваюсь использовать shared_ptr совсем немного в следующем проекте, поэтому (не зная о std::make_shared ) я хотел написать вариативную функцию шаблона spnew<T>(...) как shared_ptr -возвращающую замену для new . Все шло гладко, пока...
2937 просмотров
schedule 18.07.2022

Реализация std::array-подобного контейнера с C++11 initializer_list
Единственное и очень неудобное предостережение std::array заключается в том, что он не может вывести свой размер из списка инициализаторов, как встроенные массивы C, его размер должен быть передан как шаблон. Можно ли реализовать контейнер типа...
4004 просмотров
c++ arrays initializer-list c++11 variadic-templates
schedule 04.06.2022

Шаблоны Variadic Контейнер многомерного массива
В документе с предложением C++0x Variadic Templates Proposal Ссылка есть пример класса, который поддерживает произвольное количество измерений. Я скопировал его ниже: template<typename T, unsigned PrimaryDimension, unsigned... Dimensions>...
3885 просмотров

Необходимость опережающего объявления шаблонных функций
Недавно я создал этот пример кода, чтобы проиллюстрировать использование функции вариативного шаблона C++11. template <typename Head, typename... Tail> void foo (Head, Tail...); template <typename... Tail> void foo (int, Tail...); void...
12826 просмотров
schedule 22.02.2023

Variadic Templates, Perfect Forwarding к функциям с аргументами по умолчанию
Я использовал вариативный шаблон, который действует как брандмауэр исключений в интерфейсе между C и C++. Шаблон просто берет функцию, за которой следуют N аргументов, и вызывает функцию внутри блока try catch. Это работает нормально, к сожалению,...
2725 просмотров
schedule 09.12.2022

Расширения пакета шаблонов Variadic
В выступлении Андрея о GoingNative 2012 он рассказывает о шаблонах Variadic и в какой-то момент на примере ниже объясняется, как работают расширения пакета параметров. Будучи новичком в этой теме, мне было довольно сложно понять, как работает...
1068 просмотров
schedule 21.05.2022

Вариативная версия FastDelegate и копия с дополнительным значением
Я портирую FastDelegate на C ++ 0x с использованием вариативных шаблонов. #include "FastDelegate.h" template<class R=fastdelegate::detail::DefaultVoid, class ...P> class fast_delegate_base { private: typedef...
710 просмотров
c++ c++11 variadic-templates rvalue-reference
schedule 10.10.2022

Как изменить количество аргументов шаблона, поддерживаемых std::tuple в MSVC++?
MSVC++ еще не поддерживает вариативные шаблоны, поэтому его стандартная библиотека «подделывает» их для таких классов, как std::tuple , с помощью макросов. Недавно я попытался скомпилировать один из своих проектов с бета-версией VC11 и получил вот...
3052 просмотров

Есть ли хороший обходной путь для GCC, извините, нереализованный: не может расширить «NEXT» в ошибку списка аргументов фиксированной длины?
Возможный дубликат: Ошибка GCC с вариативными шаблонами: извините, не реализовано: невозможно преобразовать "Идентификатор" в список аргументов фиксированной длины У меня есть этот код, и он выдает сообщение об ошибке, показанное в...
688 просмотров

Самый простой способ получить N-й аргумент вариативного шаблонного класса?
Интересно, какой самый простой и распространенный способ получить N-й параметр шаблонного класса с переменным числом аргументов во время компиляции (возвращаемое значение должно быть статической константой для компилятора, чтобы сделать некоторые...
5054 просмотров

C++: помощник для сравнения параметров шаблонов variadic unsigned int
В классе, который сочетает в себе CRTP, вариативные шаблоны, метапрограммирование и перегрузку операторов, я хотел бы сравнить два вариативных параметра шаблонов unsigned int, чтобы выполнить некоторое статическое утверждение. Я думаю, что...
343 просмотров
schedule 05.07.2023

Выражение содержит нерасширенные пакеты параметров
Почему-то я не понимаю, как расширяются пакеты параметров вариативного шаблона. Что не так со следующим кодом? #include <iostream> template <typename T> struct print_one { static void run(const T& t) { std::cout...
15954 просмотров
schedule 25.09.2022

Является ли число неоднородных вариативных аргументов нетипового шаблона гибким?
Ниже определяется шаблон вложенного класса без типов с переменным числом переменных, DEF . Нетиповые параметры шаблона могут быть разнородными в соответствии с аргументами типа, предоставленными для Ts . template <typename ...Ts> struct...
224 просмотров
schedule 23.09.2022

вариативный шаблон определенного типа
Мне нужен вариативный шаблон, который просто принимает целые числа без знака. Однако я не смог заставить работать следующее. struct Array { template <typename... Sizes> // this works // template <unsigned... Sizes> -- this...
6489 просмотров
schedule 19.02.2023

Странный синтаксис - два оператора с многоточием в расширении пакета параметров
Возможный дубликат: Что означает «… …” токен? Просматривая заголовок libc++ <type_traits> , я наткнулся на следующие специализации шаблонов классов: template<typename> struct is_function : public false_type {...
136 просмотров
schedule 09.04.2022

C ++ 11: Как проверить, является ли тип экземпляром данного шаблона класса с гетерогенными параметрами NON-TYPE?
Я знаю, что проверить, является ли тип экземпляром шаблона класса, принимающего параметры TYPE , тривиально, как описано здесь: Как я могу проверить, является ли тип экземпляром данного шаблона класса? Но ... возможно ли иметь переменный...
2044 просмотров
c++ templates c++11 template-meta-programming variadic-templates
schedule 20.05.2023

Можно ли передать ссылку на функцию шаблона с переменным числом аргументов?
Предположим, у меня есть базовый класс, использующий CRTP и предоставляющий статическую функцию-член с переменным шаблоном. template<typename derived_task> struct task_impl : library::task { /* some useful functionality implemented using...
2599 просмотров
c++ c++11 pass-by-reference variadic-templates
schedule 28.08.2022

Обертывание функций C в автообъектах без дублирования кода
В C ++ 03, когда вам нужно было обернуть кучу функций C в класс для создания «автоматического объекта», вам нужно было настроить объект в соответствии с типом функций, которые он инкапсулирует. Например, чтобы обернуть файл Windows HANDLE, вам нужно...
167 просмотров
c++ c++11 variadic-templates resource-management
schedule 07.09.2022

Оператор шаблона Variadic‹‹
Я пытаюсь изменить некоторые из моих функций foo() на operator<<() просто ради того, чтобы код "половина C/половина C++" больше походил на C++. Однако бывает, что я застрял на следующем этапе преобразования : template <class......
1748 просмотров