Вопросы по теме '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 просмотров

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

Шаблоны 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 просмотров

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 просмотров

Как изменить количество аргументов шаблона, поддерживаемых 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 просмотров

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

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

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