Вопросы по теме '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 просмотров
schedule
04.06.2022
Шаблоны Variadic Контейнер многомерного массива
В документе с предложением C++0x Variadic Templates Proposal Ссылка есть пример класса, который поддерживает произвольное количество измерений. Я скопировал его ниже:
template<typename T, unsigned PrimaryDimension, unsigned... Dimensions>...
3885 просмотров
schedule
28.12.2022
Необходимость опережающего объявления шаблонных функций
Недавно я создал этот пример кода, чтобы проиллюстрировать использование функции вариативного шаблона 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 просмотров
schedule
10.10.2022
Как изменить количество аргументов шаблона, поддерживаемых std::tuple в MSVC++?
MSVC++ еще не поддерживает вариативные шаблоны, поэтому его стандартная библиотека «подделывает» их для таких классов, как std::tuple , с помощью макросов. Недавно я попытался скомпилировать один из своих проектов с бета-версией VC11 и получил вот...
3052 просмотров
schedule
07.02.2023
Есть ли хороший обходной путь для GCC, извините, нереализованный: не может расширить «NEXT» в ошибку списка аргументов фиксированной длины?
Возможный дубликат: Ошибка GCC с вариативными шаблонами: извините, не реализовано: невозможно преобразовать "Идентификатор" в список аргументов фиксированной длины
У меня есть этот код, и он выдает сообщение об ошибке, показанное в...
688 просмотров
schedule
21.03.2023
Самый простой способ получить N-й аргумент вариативного шаблонного класса?
Интересно, какой самый простой и распространенный способ получить N-й параметр шаблонного класса с переменным числом аргументов во время компиляции (возвращаемое значение должно быть статической константой для компилятора, чтобы сделать некоторые...
5054 просмотров
schedule
15.12.2022
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 просмотров
schedule
20.05.2023
Можно ли передать ссылку на функцию шаблона с переменным числом аргументов?
Предположим, у меня есть базовый класс, использующий CRTP и предоставляющий статическую функцию-член с переменным шаблоном.
template<typename derived_task>
struct task_impl : library::task
{
/* some useful functionality implemented using...
2599 просмотров
schedule
28.08.2022
Обертывание функций C в автообъектах без дублирования кода
В C ++ 03, когда вам нужно было обернуть кучу функций C в класс для создания «автоматического объекта», вам нужно было настроить объект в соответствии с типом функций, которые он инкапсулирует. Например, чтобы обернуть файл Windows HANDLE, вам нужно...
167 просмотров
schedule
07.09.2022
Оператор шаблона Variadic‹‹
Я пытаюсь изменить некоторые из моих функций foo() на operator<<() просто ради того, чтобы код "половина C/половина C++" больше походил на C++. Однако бывает, что я застрял на следующем этапе преобразования :
template <class......
1748 просмотров
schedule
04.04.2023