variadic-templates

Я хотел бы "сгенерировать" таблицу переходов указателей функций. Функции, на которые указывают, имеют два типа шаблонов. Для каждой возможной пары в двух списках типов должна быть создана отдельная функция. В идеале, мы могли бы иметь что-то вроде: #include <tuple> template <typename X, typename Y&...

Как (или возможно ли) распаковать пакет параметров с числовой последовательностью? Например, template <typename C, typename... T> C* init_from_tuple(bp::tuple tpl) { return new C{bp::extract<T>("magic"(tpl))...}; // <-- } Которую строка <-- должна расширить до return new C{bp::ex...

Я писал шаблон функции как template<typename ...T> void f(T ...t) { X x(t...); // ... } Когда я смотрел на него, мне было интересно, что происходит для вызова f(). Сделает ли досадный синтаксический анализ X объявлением функции? Компиляторы, похоже, делают его переменной. Может кто-нибудь помочь...

У меня есть функция foo, которая вызывает функцию bar с подмножеством типов перешел в foo'шаблонов с переменным количеством аргументов. Например: template <typename... T> void foo() { // ... template <size_t start_idx, typename... T> using param_pack = /*Parameter pack with T[start_idx]......

почему нет std::make_unique шаблон функции в стандартной библиотеке C++11? Я нахожу std::unique_ptr<SomeUserDefinedType> p(new SomeUserDefinedType(1, 2, 3)); немного многословен. Разве не было бы намного приятнее следующее? auto p = std::make_unique<SomeUserDefinedType>(1, 2, 3); это скрывае...

просматривая текущую реализацию gcc новых заголовков C++11, я наткнулся на "......" знак. Вы можете проверить, что следующий код компилирует штрафа в размере [via ideone.com]. template <typename T> struct X { /* ... */ }; template <typename T, typename ... U> struct X<T(U......)> // this l...

в C++11 есть вариативные шаблоны, такие как этот: template< class T, class... Args > unique_ptr<T> make_unique( Args&&... args ) { return unique_ptr<T>(new T(std::forward<Args>(args)...)); } есть некоторые курьезы об этом: выражение std::forward<Args>(args)... испо...

помещения: немного поиграв с вариативными шаблонами, я понял, что достижение всего, что выходит за рамки тривиальных задач метапрограммирования, вскоре становится довольно громоздким. В частности, я обнаружил, что желаю способ выполнить универсальные операции над пакетом аргументов например iterate,сплит,ци...

Это продолжение моего предыдущего вопроса о довольно-печати контейнеров STL, для которых нам удалось разработать очень элегантное и полностью общее решение. в этом следующем шаге я хотел бы включить pretty-printing for std::tuple<Args...>, используя вариативные шаблоны (так что это строго C++11). Ибо ...

я экспериментировал с C++0x вариативными шаблонами, когда я наткнулся на эту проблему: template < typename ...Args > struct identities { typedef Args type; //compile error: "parameter packs not expanded with '...' }; //The following code just shows an example of potential use, but has no relation ...