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

74
голоса
1
ответ
Предполагается, что мой код должен определить, принимает ли данная функция данный тип в качестве параметра. Отвечая на ваши будущие вопросы "зачем", я в ближайшее время отвечу: использовать его с ш...
7 лет назад user2146414
72
голоса
1
ответ
У меня есть класс Foo , который принимает разные варианты предикатов через свой конструктор. template<typename T> struct Value { T value; }; class Foo { public: template<typename T> Foo...
3 года, 4 месяца назад manison
62
голоса
5
ответов
Скажем, у меня есть тип с функцией f() : struct A { void f() {} }; и два вектора: std::vector<A*> x; std::vector<A*******> y; (Глупое количество указателей только для драматического эфф...
2 года, 8 месяцев назад Leo Heinsaar
94
голоса
0
ответов
Я реализовал std::experimental::is_detected из обоих https://en.cppreference.com/w/cpp/experimental/is_detected, а также странное поведение MSVC с std :: эксперимента
1 год, 2 месяца назад xerion
82
голоса
3
ответа
Я новичок в шаблонном метапрограммировании и пытался создать программу, которая обнаружит, если пакет параметров имеет последовательные имена одинаковых типов. Например, <int, int> , <int,...
1 год, 5 месяцев назад Varunaditya Jadwal
95
голосов
1
ответ
Этот вопрос сочетает в себе несколько фрагментов кода и немного сложнее, но я попытался похудеть как можно больше. Я пытаюсь использовать std::enable_if для условного вызова правильного конструктор...
2 года назад AOK
100
голосов
1
ответ
Итак, у меня есть класс шаблонов, который я бы хотел принять std:: map, где тип данных является либо необработанным указателем, либо std:: unique_ptr. Затем в этом классе я хотел бы получить тип ба...
7 лет, 10 месяцев назад grivescorbett
53
голоса
1
ответ
Я новичок в SFINAE. я заметил, что: template <typename T> void f(T t) { t.Crash(); } // version 1 void f(...) { } // The sink. f(1); template <typename T> void f(const T& t, typenam...
2 года, 8 месяцев назад pepero
71
голос
0
ответов
Я хотел бы обернуть следующую строку как функцию, которая принимает параметр как тип шаблона (для замены ConnectionManager для любого другого типа): std::shared_ptr<ConnectionManager> client ...
2 года, 4 месяца назад Trismegistos
106
голосов
1
ответ
Учитывая some_type с функцией-членом f можно определить f подпись, как это (и скажем, some_type ее в кортеж): template <typename R, typename T, typename... A> std::tuple<R, A...> signat...
7 лет, 2 месяца назад yuri kilochek
73
голоса
1
ответ
Я пытаюсь создать класс, который будет хранить кортеж векторов. У меня странная ошибка компиляции, происхождение которой я не понимаю. Код: #include <iostream> #include <tuple> #include...
3 года, 4 месяца назад Martin Vymazal
61
голос
2
ответа
Итак, с помощью SFINAE и С++ 11 можно реализовать две разные функции шаблона, основанные на том, можно ли заменить один из параметров шаблона. Например struct Boo{ void saySomething(){ cout <<...
5 лет назад kamziro
52
голоса
3
ответа
Я имею в виду пример примера SFINAE , Я попытался запустить образец, //enable_if template<bool, typename T = void> struct enable_if {}; template <typename T> struct enable_if<true, T...
2 года назад tesla1060
52
голоса
1
ответ
Рассмотрим следующий класс: class Example { const void * pValue; (Example& (*SIndex(const void *,char *))); (Example& (*NIndex(const void *,unsigned long long *))); template<class T,type...
6 лет, 4 месяца назад glenflet
94
голоса
1
ответ
TL; DR Я хочу написать функцию шаблона Process(T value) , которая ведет себя по-разному для разных значений в зависимости от существования функции, не являющейся членом CreateProcessor<T>() ....
4 года назад Maxim Akhmedov
61
голос
3
ответа
Здесь проблема, с которой я столкнулся, играя с вариативными шаблонами. У меня есть код, который использует специализацию для подсчета "интересных" типов в пакете параметров, например: template<...
3 года, 9 месяцев назад BD at Rivenhill
53
голоса
0
ответов
Исходный код Это в основном нерекурсивная реализация std::tuple_element . Примечание. Чтобы сделать это нерекурсивным, вы должны заменить std::make_index_sequence на нерекурсивную реализацию. Я ост...
4 года, 4 месяца назад user2296177
97
голосов
1
ответ
Я изо всех сил пытаюсь понять, как удержание работает в следующем случае: template<class Category, Category code> struct AImpl { }; template<class Category, Category code> struct AHelpe...
11 месяцев, 1 неделя назад Saturnu
62
голоса
4
ответа
Я пытаюсь выполнить минимальную находку в c++ с мета-программированием шаблонов: template<int first,int...a> struct min { static const int value= sizeof...(a) && first>min<a...&...
5 лет, 4 месяца назад Dave
62
голоса
3
ответа
Вот моя реализация преобразования двоичного литерала в десятичный: template<char Head, char... Tail> constexpr int operator"" _b() { if constexpr (sizeof... (Tail) == 0) { return Head - '0'; ...
1 год, 3 месяца назад 陳 力
225
голосов
15
ответов
Учитывая следующее: template<typename T> class A { public: static const unsigned int ID = ?; }; Я хочу, чтобы ID генерировал уникальный идентификатор времени компиляции для каждого T. Я рассм...
8 лет, 6 месяцев назад David
50
голосов
2
ответа
Поэтому я начал реализовывать некоторые алгоритмы, которые имитируют поведение алгоритмов STL, но с гетерогенным контейнером aka std :: tuple. template<typename UnaryPredicate, typename Tuple>...
2 года, 10 месяцев назад Yamahari
-5
голосов
1
ответ
У меня есть код, который работает, за исключением следующей строки std::is_same<first_argument<functorArgTemplated>::type,int>::value <<std::endl; // this does not work Кто-нибудь...
3 года, 10 месяцев назад bodzcount
75
голосов
2
ответа
Я знаю, как написать класс, который может обнаруживаться во время компиляции, если данный класс T имеет член с заданным именем с данным типом Type, например. #include <type_traits> template &...
7 лет, 1 месяц назад MadScientist
97
голосов
2
ответа
Я собираюсь написать шаблонную реализацию KDTree, которая теперь должна работать только как Quadtree или Octree для реализации BarnesHut. Решающим моментом здесь является дизайн, я хотел бы указать...
7 лет, 10 месяцев назад linello
72
голоса
1
ответ
Я работаю с методами мета-программирования шаблонов, и сейчас я просто играю с разными способами делать вещи на данный момент. Вот код: template<const int A> struct iwrapper { static const in...
1 год, 8 месяцев назад Saswat Mishra
96
голосов
2
ответа
Как я понимаю, нормальный код C++ транслируется в ассемблер во время компиляции, который затем выполняется CPU во время выполнения. Поэтому я не совсем понимаю, что такое суета с преимуществами мет...
7 лет, 1 месяц назад user997112
96
голосов
1
ответ
Я пытаюсь создать аргументы из шаблона переменной и переслать его в хранимую функцию. Если аргументы (typename... Args) я хочу перебрать каждый тип и извлечь аргумент этого типа из контейнера хране...
11 месяцев, 4 недели назад Grimbox
114
голосов
1
ответ
Описание проблемы: C++17 вводится std::invocable<F, Args...> , что приятно обнаружить, если тип... является invocable с данными аргументами. Однако был ли способ сделать это для любых аргумен...
2 года, 1 месяц назад Vincent
119
голосов
3
ответа
Предположим, что у нас есть шаблонная функция: template<typename T1, typename T2, typename T3> T3 such_fun(T1 a, T2 b) { // do something... } и теперь мы хотим использовать его в качестве арг...
8 лет, 1 месяц назад Wojciech Żółtak
53
голоса
1
ответ
У меня проблема, когда неизвестный код использует мета шаблоны, которые пытаются использовать типы разметки во время компиляции и времени выполнения. Это означает, что они пересекают иерархию указа...
5 лет, 5 месяцев назад thesaint
73
голоса
4
ответа
Я хочу хранить целые числа для заданных типов, которые должны использоваться во время компиляции и во время выполнения. До сих пор у меня есть следующее: template<typename T> struct my_int { ...
6 лет, 4 месяца назад Mike M
64
голоса
2
ответа
Я пишу библиотеку, где пользователь предоставляет обратный вызов как лямбда. В сценарии по умолчанию я хочу просто вызвать лямбду и передать обратно объект. Теперь есть нетривиальные сенарии, где п...
4 года, 7 месяцев назад Martin York
65
голосов
3
ответа
Вопрос Можно ли создать складной (※ кратное выражение ) пакет параметров шаблона? пример Рассмотрим следующий пример (функция, которая принимает два аргумента типа int
1 год, 3 месяца назад Benio
97
голосов
1
ответ
Мне интересно немного узнать о мета-программировании шаблонов. В приведенном ниже коде я пытаюсь найти неподписанный интегральный тип, достаточно большой для хранения N бит, указанных во время комп...
7 лет, 10 месяцев назад TractorPulledPork
53
голоса
1
ответ
Я хочу написать шаблон класса MyClass который принимает как обычные, так и не исключая подписи. Например, MyClass<int()> и MyClass<int() noexcept> . Вот что я попробовал: template<ty...
1 год, 2 месяца назад John Smith
104
голоса
3
ответа
Я хочу написать структуру шаблона foo , так что foo<N>::value_type - это целое число ближайшего размера (округление) до N . Например foo<32>::value_type => uint32_t , foo<33>::...
8 лет, 6 месяцев назад Freddie Witherden
-5
голосов
3
ответа
Я пытаюсь сделать это с помощью HLS, а не "обычным" C++, поэтому большинство библиотек (STL, boost и т.д.) Не будут работать, поскольку их невозможно синтезировать (ручное управление памятью не доп...
1 год, 4 месяца назад Kartik Prabhu
91
голос
1
ответ
Интересно, можно ли написать класс шаблона, имея разные члены, установленные в его скомпилированной версии. Например, как это достигается с помощью наследования: /// These statistics are supported ...
1 год, 11 месяцев назад Alexey
51
голос
1
ответ
Короче: я хочу извлечь различные параметры из параметров вариационного шаблона, но не только по тегу, но и по индексу для тех параметров, у которых нет известного тега. Мне нравится подход в boost ...
5 лет, 7 месяцев назад firda
Чтобы , пожалуйста,
Выберите тему жалобы:

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