Template-Meta-Programming – вопросы и ответы – страница 8

52
голоса
1
ответ
Основываясь на ответе в разделе "Определение constexpr с помощью SFINAE", я пытаюсь использовать SFINAE для проверки наличия "constexpr" в моем классе. Проблема заключается в том, что constexpr явл...
6 лет назад Allan
114
голосов
1
ответ
Я работаю над некоторым низкоуровневым кодом с интерфейсами высокого уровня и испытываю потребность в операторе сравнения для модульного тестирования для простых старых типов данных (например, FILE...
1 год, 10 месяцев назад bluedragon
52
голоса
2
ответа
У меня есть static_loop конструкция static_loop template <std::size_t n, typename F> void static_loop(F&& f) { static_assert(n <= 8 && "static loop size should <= 8"); i...
1 год, 3 месяца назад Amos
87
голосов
2
ответа
Что бы выглядел X в следующем коде, если он был преобразован для использования вариативных шаблонов С++ 11 и должен поддерживать произвольное количество аргументов шаблона? template<int OFFSET&g...
8 лет, 3 месяца назад Allan
72
голоса
1
ответ
У меня есть схема кодирования, где я конвертирую цифры [0-9], используя следующее правило: 0 - 3 1 - 7 2 - 2 3 - 4 4 - 1 5 - 8 6 - 9 7 - 0 8 - 5 9 - 6 Поэтому я могу использовать следующий массив д...
1 год, 8 месяцев назад doron
63
голоса
1
ответ
Рассмотрим следующий класс: template<bool Condition> class MyClass { protected: /* SOMETHING */ _var; }; С std::conditional<Condition, const int, int>::type _var; Я могу выбрать, являет...
7 лет, 6 месяцев назад Vincent
62
голоса
2
ответа
Итак, я пытаюсь создать библиотеку с помощью boost::hana , которая требует, чтобы функциональность получала индекс элемента на основе значения: constexpr auto tup = boost::hana::make_tuple(3_c, boo...
4 года, 4 месяца назад Russell Greene
62
голоса
3
ответа
Я пытаюсь использовать шаблон функции (или некоторую другую templatized конструкцию) для эмуляции функции без неявных преобразований, применяемых к аргументам или возвращаемому выражению. Какой сам...
2 года, 1 месяц назад Gregory Nisbet
52
голоса
1
ответ
Я хочу создать вложенную шаблонную структуру typedef, чтобы создать что-то из метакласса с метаметодами, которые могут иметь разные аргументы. Пример кода следующий: #include <iostream> using...
4 года, 2 месяца назад DawidPi
52
голоса
1
ответ
Я пытаюсь написать функцию, которая, например, возьмет: std::array<std::variant<int, std::string_view>, 4> и double d , и возврат: std::array<std::variant<int, std::string_view, d...
1 год, 6 месяцев назад Sebastian
98
голосов
3
ответа
Я пытаюсь определить, вызвана ли конкретная перегрузка для моей функции. Я предполагал, что мог бы сделать что-то похожее на этот ответ , но я считаю, что проблема заключается в том, что template&l...
11 месяцев назад pingul
72
голоса
1
ответ
У меня есть многомерный массив, который в настоящее время не принимает инициализацию initializer_list, но я хочу это разрешить. Однако кажется, что я не могу указать произвольное количество вложенн...
7 лет, 4 месяца назад Zach Saw
51
голос
2
ответа
Я хотел бы написать предиктор MP для типа и функции. Кажется, что-то незаконно: #include <iostream> template <class R> struct X { static constexpr int value = 0; }; // Specialization fo...
3 года, 1 месяц назад user2146414
72
голоса
2
ответа
Я создал шаблон is_iterable, как показано ниже, - который проверяет, что бесплатные функции begin/end доступны (в контексте ADL) и возвращают правильный объект итератора. (Что является требованием ...
7 лет, 9 месяцев назад summerlight
52
голоса
1
ответ
Продолжая чтение библиотеки диапазонов-v3, я понял, что все проверки правильных выражений для типов шаблонов имеют хвостовое выражение "42", и мне интересно, в чем его цель. Например: namespace con...
2 года, 7 месяцев назад Peregring-lk
72
голоса
1
ответ
Как скомпилировать программу метапрограммирования образца cuda newton в Оценка выражений, состоящих из операций с элементарной матрицей в Thrust Для справки, Ньютон находится здесь:
2 года, 7 месяцев назад WRF
89
голосов
3
ответа
Привет, я играл с TMP и думал о создании класса, который выглядит примерно так: template<typename T, typename LogFunc> class { (где LogFunc должен быть по умолчанию "nop") Идея состоит в том,...
7 лет, 5 месяцев назад NoSenseEtAl
94
голоса
1
ответ
Рассмотрим следующую метафункцию, которая вычисляет целочисленную степень целого: template <std::intmax_t Base, std::intmax_t Exponent> struct integer_power { static constexpr std::intmax_t t...
6 лет, 4 месяца назад Vincent
101
голос
1
ответ
Я знаю, что тривиально проверить, является ли тип экземпляром класса-шаблона с параметрами TYPE , как описано здесь: Как проверить, тип - это экземпляр данного шаблона класса? Но... возможно ли име...
7 лет, 1 месяц назад etherice
72
голоса
2
ответа
Я искал решение SFINAE для проверки во время компиляции, если тип имеет метод. Моя цель - проверить, является ли тип допустимым "тип утки" , но вместо бесполезной ошибки компиляции я хочу использов...
3 года, 6 месяцев назад wasthishelpful
142
голоса
0
ответов
Я хочу, чтобы объявления типов в двух классах взаимно зависели друг от друга. Вот первый пример, который компилируется как с clang, так и с gcc: template <class Sum> struct A { using X = char...
2 года, 2 месяца назад D. Dmitriy
95
голосов
6
ответов
Из статьи cppreference.com на std::enable_if , Заметки Распространенной ошибкой является объявление двух шаблонов функций, которые отличаются только аргументами шаблона по умолчанию. Это недопустим...
11 месяцев, 4 недели назад David Hammen
65
голосов
1
ответ
Я работаю над тем, чтобы сделать небольшое упражнение для шаблона делегата: 1.) лучше, 2. лучше понять метапрограммирование шаблонов и до 3) возможно даже использовать делегатов для какого-то управ...
5 лет, 5 месяцев назад thndrwrks
81
голос
1
ответ
Я столкнулся с небольшой проблемой (легко разрешимой) при написании кода шаблона С++ 03, который компилируется обычно, который не будет компилироваться при использовании диалекта С++ 11. Проблема в...
4 года, 8 месяцев назад Samuel Navarro Lou
280
голосов
4
ответа
У меня есть класс, поведение которого я пытаюсь настроить. template<int ModeT, bool IsAsync, bool IsReentrant> ServerTraits; Затем позже у меня есть свой серверный объект: template<typenam...
7 лет, 1 месяц назад Nathan Doromal
137
голосов
3
ответа
Почему у меня странный вывод для этого кода? Как правильно проверить тип? #include <iostream> #include <tuple> #include <type_traits> template<typename T> struct is_tuple : ...
2 года, 7 месяцев назад 神秘德里克
63
голоса
5
ответов
Как я могу создать функцию, которая принимает одинаковые числа string-int-char func("aa","sd","zzz",123,13,3,'w','a','x') //correct func("aa","sd",123,3,'w','x') //correct func("aa",2,'w') //correc...
6 лет, 2 месяца назад Omid
88
голосов
4
ответа
Как мне получить "разыменованный тип" другого типа в С++ 03? Обратите внимание, что это может быть другой разыменованный тип типа std::vector<int>::iterator . например. если у меня есть templ...
8 лет, 7 месяцев назад Mehrdad
72
голоса
2
ответа
Скажем, у меня есть большой код с использованием макета памяти Array of Structures (AoS). Я хотел бы построить абстракцию нулевой стоимости в C++, которая позволяет мне переключаться между AoS и So...
1 год, 10 месяцев назад Paolo Crosetto
119
голосов
5
ответов
Рассмотрим следующий пример: template <class T> class method_traits; template <class T, class Ret, class... Arg> class method_traits<Ret(T::*)(Arg...)> { public: using type = Arg;...
2 года, 5 месяцев назад eyelash
52
голоса
2
ответа
Я пытаюсь понять этот код, и я нашел еще немного контента SO на эту тему. В компакт
4 года, 3 месяца назад Steven Lu
52
голоса
1
ответ
Как можно преобразовать вектор stl-контейнеров? У меня есть: typedef boost::mpl::vector<std::vector<boost::mpl::_1>, std::deque<boost::mpl::_1> > Containers; Прислушайтесь к тому,...
4 года, 7 месяцев назад Max Martinevsky
139
голосов
1
ответ
Рассмотрим следующую программу: #include <tuple> #include <vector> #include <iostream> #include <type_traits> template <class T> struct ordered {}; template <class....
2 года, 1 месяц назад Vincent
81
голос
3
ответа
У меня например #include <iostream> template <typename T> struct Base {}; template <> struct Base<std::string> { static const int value = true; }; template <> struct B...
11 месяцев, 1 неделя назад bradgonesurfing
51
голос
1
ответ
Я пытаюсь реализовать простой протокол с boost :: msm. По мере поступления пакетов они обрабатываются и отправляются на машину состояния (SM) для обработки соответствующим образом. Мой класс pkt (т...
1 год, 10 месяцев назад qwa
95
голосов
0
ответов
Я хотел бы вставить std :: array, известный во время компиляции, в качестве параметра шаблона. Таким образом, вместо итерации среди 0,..., N, я мог бы выполнять итерацию от массива [0] до массива [...
11 месяцев, 4 недели назад Garo
52
голоса
1
ответ
Поэтому в последнее время я добился прогресса в создании персональной библиотеки, используя Template Metaprogramming (используя в качестве моей текущей ссылки книгу Modern C++ Design]. Я думал о на...
4 года, 1 месяц назад spektr
101
голос
0
ответов
Я пробую примеры Typelist, а также читаю пример, приведенный в следующей ссылке. Пример шаблона посетителя Но в этом примере они не использовали Typelist.h, предоставленный loki. Мой вопрос заключа...
7 лет, 1 месяц назад vinay patel
62
голоса
0
ответов
У меня есть эта часть кода ( http://coliru.stacked-crooked.com/a/ee05a00fc8ab5057 ): #include <type_traits> struct unregistered; unregistered register_type(...); template<class T> const...
1 год, 9 месяцев назад wsxedcrfv
52
голоса
1
ответ
Рассмотрим следующее: template<typename T> struct S { typedef M< &T::foo > MT; } Это будет работать для: S<Widget> SW; где Widget::foo() - некоторая функция Как бы я изменил о...
4 года, 2 месяца назад unshul
Чтобы , пожалуйста,
Выберите тему жалобы:

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