Свързани въпроси 'template-meta-programming'

Съответстващи псевдоними на шаблони като параметри на шаблон на шаблон
В момента пиша метафункция за оценка на изрази, нещо като boost::mpl::apply: template<typename EXPRESSION , typename... ARGS> using eval = typename eval_impl<EXPRESSION,ARGS...>::result; Както можете да видите, използвам C++11...
163 изгледи

Как да напиша функция с променлив шаблон в C++, където пакетът с параметри не е последният параметър?
Опитвам се да използвам функция с променлив шаблон, където пакетът с параметри не е последният параметър в списъка. Имайте предвид, че има две рекурсивни извиквания – едното изпуска параметър пред пакета, другото извикване изпуска параметър след...
174 изгледи

Проверете дали даден клас има евентуално претоварен оператор за извикване на функция
Чудя се дали би било възможно да се приложи характеристика в C++20 , за да се провери дали тип T е такъв, че има евентуално претоварен/евентуално шаблонен оператор за извикване на функция: operator() . // Declaration template <class T>...
84 изгледи

Как да правя общи изчисления върху разнородни пакети аргументи на функция с променлив шаблон?
ПРЕДСТАВКА: След като си поиграх малко с различни шаблони, разбрах, че постигането на нещо, което надхвърля малко тривиалните задачи за мета-програмиране, скоро става доста тромаво. По-конкретно, открих, че желая начин за извършване на общи...
6859 изгледи

Как да изведа по време на компилация корена на дърво на наследяване, общо за два типа, ако такова съществува?
Имам проблем, при който трябва да открия общия предшественик на два типа (с един или нула базови класове), ако съществува. Възможно ли е да се изгради черта на типа, за да се реши този проблем? В код: template<typename T1, typename T2>...
243 изгледи
schedule 25.11.2023

Компактна и проста std::tuple инверсия
Нов съм в мета програмирането. Разгледах други въпроси, които са подобни, но никой от тях не прави това, което наистина искам. Ето моя опит за обръщане на std::tuple. Основният проблем, който имам, е обръщането на данните във входния кортеж....
588 изгледи
schedule 15.01.2024

Получаване на типа & за вграден и оператор&()?
Редактиране: Отговорът, който маркирах по-долу, не е 100% правилен, всъщност е в коментар: using TPtr = decltype(&std::declval<T&>()); Опитвам се да използвам std::conditional<> , за да получа типа &T , където T...
54 изгледи

различни реализации на класове въз основа на параметър на шаблона
Предполагам, че това е тривиално за хора, които познават шаблони... Да предположим, че искаме две различни реализации на този шаблонен клас, в зависимост от стойността на N: template <int N> class Foo { ... }; Например:...
1264 изгледи

По избор публикувайте методи, базирани на различни параметри на шаблона
Предговор Представете си, че имам шаблон: template<class... Opts> class rqueue , който може да има различни функции, избрани чрез тагове (структури със специални опции), предадени към списъка с параметри, напр. rqueue<trace_record,...
91 изгледи
schedule 17.03.2024