Template-Meta-Programming – вопросы и ответы

72
голоса
1
ответ
Я хочу реализовать следующее: template <typename Functor, typename... Params> void foo( size_t n /* magic goes here, producing function parameters p1, p2, etc. */ /* corresponding to the para...
11 часов назад einpoklum
82
голоса
1
ответ
Я играл с Boost.Proto, в основном для развлечения, и чтобы увидеть, буду ли я в будущем использовать его в своих проектах. Тем не менее, как, вероятно, большинство новичков в этой библиотеке, я игр...
14 часов назад Giuliano
95
голосов
1
ответ
На данный момент я используя этот метод, чтобы проверить, имеет ли класс метод с определенной сигнатурой. После посещения Вальтер Э. Браун метапрогра
1 день, 13 часов назад Vittorio Romeo
139
голосов
1
ответ
Предположим, что следующая ситуация: Введите A и введите B , B можно неявно преобразовать в A , но противоположное неверно. У меня есть функция template<class T> void do_stuff(T a, T b); Я хо...
1 день, 14 часов назад George
51
голос
1
ответ
Не учитывайте следующий код: #include <iostream> template <typename T_VAL> // not used template argument struct Foo { int x; }; template <typename T_VAL> struct Bar { int x; }; te...
1 день, 16 часов назад pavelkolodin
72
голоса
1
ответ
Я пытаюсь создать класс, похожий на следующий #include <cstdlib> #include <iostream> #include <typeinfo> #include <type_traits> #include <complex> template<class K,...
1 день, 16 часов назад BigDawg
62
голоса
1
ответ
Реально я не думаю, что это хорошая практика. Но поскольку метапрограммирование c++ является завершением Тьюринга, я изучал это ради полноты. В производстве я не буду использовать его, но для удово...
2 дня, 12 часов назад over_optimistic
53
голоса
1
ответ
У меня есть два набора кода, первый из которых компилируется и ведет себя так, как ожидалось, но [представляется] бесполезным подробным: template<point_type type, typename T> struct point2d_b...
2 дня, 15 часов назад Xirema
71
голос
1
ответ
Можно ли определить шаблон, который принимает один параметр указателя и извлекает тип, на который указывает? extern int three = 3; typename examine<&three>::pointed_type // int
2 дня, 15 часов назад Kietz
72
голоса
1
ответ
Скажем, у меня есть metafunction Filter , который фильтрует список типов: template<template<typename> class TFilter, typename... Ts> using Filter = MetaList</* check TFilter<T>...
2 дня, 15 часов назад Vittorio Romeo
64
голоса
1
ответ
Есть ли способ получить сводку созданных шаблонов (с какими типами и сколько раз - например, с гистограммой) внутри единицы перевода или для всего проекта (общий объект/исполняемый файл)? Если у ме...
2 дня, 16 часов назад onqtam
82
голоса
1
ответ
Я пишу класс контейнера и хочу предоставить конструктор, который принимает итераторы как параметр, но только если соответствующий итерированный тип соответствует типу контейнера. Итак, я написал: t...
2 дня, 17 часов назад galinette
50
голосов
1
ответ
Я переношу некоторый код MSVC, который я написал в GCC, но он не смог скомпилировать GCC (см. Https://ideone.com/UMzOuE ). template <const int N> struct UnrolledOp { template <const int j,...
3 дня, 9 часов назад Zach Saw
62
голоса
1
ответ
Я знаю, что мой код должен работать в С++ 14, но мне нужно реплицировать это поведение в С++ 11, я не смог сделать эквивалентный init() может ли кто-нибудь помочь? enum MyEnum { BANANA, APPLE, PINE...
3 дня, 12 часов назад Wagner Gascho
71
голос
1
ответ
ITNOA Мой вопрос заключается в том, как использовать std::enable_if в сценарии частичной специализации шаблона с вариадическим шаблоном? например, у меня есть класс, который использует частичную сп...
3 дня, 17 часов назад sorosh_sabz
86
голосов
1
ответ
Я пытаюсь написать черту, которая определяет, ссылается ли какой-то вызываемый на ссылку rvalue как свой первый параметр. Это позволяет некоторому метапрограммированию настраивать, использовать ли ...
3 дня, 19 часов назад Niall Douglas
51
голос
1
ответ
Я пишу функцию push_back для добавления временного контейнера в другой контейнер. И он должен изменить размер или зарезервировать контейнер перед использованием push_back (а также он должен предпоч...
4 дня, 9 часов назад Omid
52
голоса
1
ответ
Следующий код не компилируется с GCC 5.2 (С++ 14). Он компилируется с clang 3.6 (С++ 14). (исходный код можно найти
4 дня, 10 часов назад Lingxi
53
голоса
1
ответ
Если бы у меня был класс, содержащий N чисел одинаковых vectors . Как бы я пошел о внедрении стандартного шаблона итератора, который бы итерации между 1 и N числом векторов. Я написал небольшой при...
4 дня, 11 часов назад Brian
64
голоса
1
ответ
У меня есть класс InsertStatement который использует внешнюю bind функции: namespace sqlite { template <typename T> inline void bind(SQLiteStatement &statement, size_t idx, const T &v...
4 дня, 11 часов назад HappyCactus
219
голосов
1
ответ
В ответе на этот пост (частично), специализирующийся на параметре нестандартного шаблона зависимого типа ", он сообщает: Тип параметра шаблона, соответствующего специализированному аргумент non-typ...
4 дня, 12 часов назад Adrian
72
голоса
1
ответ
Я не уверен, что дедукция типа шаблона входит в драку здесь. Но позвольте мне объяснить. У меня есть шаблон class EventProducer , из которого объекты, которые генерируют события, получают один раз ...
4 дня, 13 часов назад Kristian D'Amato
74
голоса
1
ответ
У меня есть следующий код в С++: struct A; struct B { B(){} template<typename T> B(T param){} }; Я хочу, чтобы шаблон конструктора был действительным только тогда, когда имя типа T можно прео...
4 дня, 14 часов назад Raul Alonso
-7
голосов
1
ответ
Я хочу знать решение мета-программирования шаблона для задачи поиска GCD двух чисел с использованием рекурсивного алгоритма Евклида, приведенного ниже для вашей справки. function gcd(a, b) if b = 0...
4 дня, 14 часов назад Varun Rao
62
голоса
1
ответ
, #include <iostream> #include <type_traits> using namespace std; template<typename T> struct MyClass{ void hello( void) { hello(std::is_same<T,bool>()); } void hello(std::t...
4 дня, 17 часов назад user2709349
74
голоса
1
ответ
У меня возникли проблемы с пониманием следующих кодов: #include <iostream> using namespace std; template <class PixType, bool B = PixType::is> class Test { public: void print() { cout &...
5 дней, 14 часов назад Codinfox
94
голоса
1
ответ
Полчаса назад я обнаружил вариационные параметры шаблона, и теперь я полностью подключен. У меня есть абстракция на основе статического класса для выходного вывода микроконтроллера. Я хочу сгруппир...
5 дней, 17 часов назад Wouter van Ooijen
62
голоса
1
ответ
Во-первых, позвольте мне начать с того, что я пытаюсь сделать. Я работаю над библиотекой, которая упрощает внедрение интерпретатора Python в код C++, и я хотел бы использовать некоторые функции C++...
6 дней, 12 часов назад John Joseph
51
голос
1
ответ
У меня есть следующий код инкапсуляции для пакетов вариативных параметров. template <typename... Args> struct pack { }; template <template <typename... Args> class ENCAP, typename......
6 дней, 12 часов назад difftator
88
голосов
1
ответ
Имея следующий фрагмент кода: #include <iostream> #include <type_traits> template <typename F, typename = typename std::enable_if< std::is_function< F >::value >::type>...
6 дней, 15 часов назад Patryk
62
голоса
1
ответ
Я пытаюсь добавить еще один аргумент шаблона к факториальному примеру метапрограммирования. Но следующее не работает. Каков правильный путь? Код: #include <iostream> template <typename T, ...
6 дней, 16 часов назад hamster on wheels
72
голоса
1
ответ
Насколько я могу судить, для чисто функциональных типов последовательностей наивная реализация последовательности приведет к сложности времени O (n) для доступа к элементу и лучшей реализации (как ...
1 неделя назад JohnDuck
131
голос
1
ответ
Я пытаюсь использовать unordered_map. Но на некоторых серверах у нас нет библиотеки tr1. В тех случаях я хочу использовать карту. Итак, я хочу написать заголовочный файл, в котором я буду использов...
1 неделя назад vinod
80
голосов
1
ответ
Я пытаюсь создать вид Factory, основанный на некоторых значениях enum, которые пользователь может выбрать во время компиляции. Главное здесь - создать своего рода магический переключатель, который ...
1 неделя назад svoltron
65
голосов
1
ответ
Как украсить сигнатуру метода с помощью async с помощью CodeDom.CodeMemberMethod ? я хочу иметь в результате: public async Task SomeMethodAsync() { } Невозможно сделать это с помощью CodeDom. Я зак...
1 неделя назад Denis
169
голосов
1
ответ
Рассмотрим эту программу: #include <iostream> #include <type_traits> using namespace std; struct russell { template <typename barber, typename = typename enable_if<!is_convertible...
1 неделя назад n.m.
103
голоса
1
ответ
У меня есть такой тип: template<typename T> struct wrapper { using foo = typename T::foo; using bar = typename T::bar; using baz = typename T::baz; // More of those... }; Мне бы хотелось, что...
1 неделя, 1 день назад Morwenn
72
голоса
1
ответ
Мне показалось, что я бы оценил некоторые алгоритмы сортировки, но я должен неправильно создавать шаблоны: код #include <iostream> #include <vector> template <typename ForwardIterato...
1 неделя, 1 день назад Ben
81
голос
1
ответ
Ну, я пишу код на С++ 98 и пытаюсь использовать метапрограммирование. Я написал такое "связующее": template< template< template<typename TArg1_1> class TArg1, template<typename TArg2...
1 неделя, 1 день назад svv
147
голосов
1
ответ
Есть ли способ гарантировать, что параметр шаблона является типом класса enum? Я знаю, что type_traits имеет std::is_enum , но я не хочу, чтобы он соответствовал регулярным перечислениям, просто en...
1 неделя, 1 день назад Gilad Naaman
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема