14
ответов

Полные по Тьюрингу шаблоны C++?

Мне говорят, что шаблонная система в C++ полна по Тьюрингу во время компиляции. Это упоминается в этом сообщении и также на Википедию. Можно ли обеспечить нетривиальный пример вычисления, которое использует...
вопрос задан: 23 May 2017 11:47
14
ответов

Неопределенная ссылка с шаблоном metafunction [duplicate]

Я пытаюсь написать метафайла шаблона C ++, которая распаковывает беззнаковое короткое значение в два значения unsigned char. Компиляция определения метафайла и файл main.cpp отлично работают (как ...
вопрос задан: 24 February 2015 21:54
14
ответов

Кто-либо использует шаблонное метапрограммирование в реальной жизни? [закрытый]

Я обнаружил шаблонное метапрограммирование больше чем 5 лет назад и вытащил огромный удар из чтения современного Дизайна C++, но я никогда не находил, что opertunity использовал его в реальной жизни. Вы когда-либо использовали это...
вопрос задан: 30 August 2011 16:05
8
ответов

Каковы самые прохладные примеры метапрограммирования, которое Вы видели в C++? [закрытый]

Каковы самые прохладные примеры метапрограммирования, которое Вы видели в C++? Каковы некоторые практические применения метапрограммирования, которое Вы видели в C++?
вопрос задан: 12 May 2019 05:27
7
ответов

C ++ Template Meta Programming: Compile-time tracer / counter [duplicate]

трассировщики пространства имен {template & lt; size_t N, bool B & gt; struct alloc_buffer_tracer {static constexpr size_t value = N; // значение представляет количество объявленных объектов буфера с ...
вопрос задан: 29 May 2011 08:47
6
ответов

Можно ли написать шаблон для проверки существования функции?

Можно ли написать шаблон, который меняет поведение в зависимости от того, определена ли определенная функция-член в классе? Вот простой пример того, что я хотел бы написать: template < class T & ...
вопрос задан: 3 May 2017 17:35
4
ответа

Функция шаблона не компилируется: ожидаемое первичное выражение перед '& gt;' [duplicate]

Я хотел бы обернуть следующую строку как функцию, которая принимает параметр как тип шаблона (для замены ConnectionManager для любого другого типа): std :: shared_ptr & lt; ConnectionManager & gt; client = ...
вопрос задан: 1 June 2016 12:28
3
ответа

Как может Вы выполнять итерации по элементам станд.:: кортеж?

Как я могу выполнить итерации по кортежу (использующий C++ 11)? Я попробовал следующее: для (интервал i=0; я <станд.:: tuple_size <T...>:: значение; ++ i) станд.:: доберитесь <i> (my_tuple) .do_sth (); но это не работает:...
вопрос задан: 8 February 2019 20:00
3
ответа

Основанный на политике шаблонный дизайн: Как получить доступ к определенным политикам класса?

У меня есть класс, который использует несколько политик, которые являются шаблонными. Это называют Тарелкой в следующем примере. Я храню многие из этих Тарелок в векторе (использование указателя на простой базовый класс), но затем я был бы...
вопрос задан: 1 July 2014 11:36
3
ответа

На каких правилах C ++ это определение declval на основе? [Дубликат]

Недавно мне было интересно, как реализуется метафанизация, такая как declval. Первое, что я пробовал, было: template & lt; typename T & gt; constexpr auto declval () - & gt; Т & амп; & амп ;; это как ...
вопрос задан: 7 February 2013 01:32
2
ответа

Перечисление по кратному выражению

У меня есть некоторый вспомогательный код, который выполняет перестановку векторов, используя индексы времени компиляции. Крайне важно, чтобы сгенерированный код был максимально эффективным. Я полагаюсь на пакеты параметров ...
вопрос задан: 19 January 2019 17:10
2
ответа

Как написать переменную функцию без пакета параметров?

предположим, что у меня есть шаблон шаблона & lt; typename Bar & gt; Результат foo (const Input & amp; input); и я вместо этого хочу создать шаблон foo (), который получит много аргументов шаблона Bar и много Input's ...
вопрос задан: 13 July 2018 19:55
1
ответ

Реализация алгоритма RLE в стиле метапрограммирования C ++

Я реализовал простой рекурсивный алгоритм для RLE (Run Length Encoding). Код: #include < iostream > использование пространства имен std; шаблон < size_t N > struct RLE {static size_t cnt; ...
вопрос задан: 4 March 2019 09:55
1
ответ

Поиск определенного типа из списка в C ++ с использованием шаблонов, не включая базовые классы

Это может быть невозможно, так что альтернативных решений проблемы будет достаточно, у меня также есть список действий, которые я хочу отслеживать в классе Activity {public: virtual void ...
вопрос задан: 19 January 2019 12:44
1
ответ

Почему это неоднозначный вызов функции с использованием GCC? Шаблонный вывод не удался?

Я не могу скомпилировать мой текущий, на мой взгляд, действительный код C ++ (17) ни с помощью GCC, ни clang. Недавно мне удалось вызвать ошибку при компиляции моего (на мой взгляд) корректного кода C ++ 17 с помощью clang (сообщение об ошибке: ...
вопрос задан: 18 January 2019 12:35
1
ответ

Проверка существования члена, возможно, в базовом классе, версия C ++ 11

В https://stackoverflow.com/a/1967183/134841 предоставляется решение для статической проверки существования члена, возможно в подклассе типа: template class ...
вопрос задан: 23 May 2017 12:34
1
ответ

Рекурсия шаблона с std :: index_sequences / std :: tuples: что здесь делает компилятор? [Дубликат]

Я нашел эти фрагменты для кода C ++ 17 в случае, когда std :: tuple / std :: index_sequence должен обрабатываться рекурсией: пример 1) template & lt; class ... Ts & gt; constexpr T foo (const std :: tuple & lt; Ts ... & gt; & ...
вопрос задан: 12 January 2016 08:09
1
ответ

«Слишком много списков параметров шаблона» ошибка при специализации функции-члена

Я хотел бы определить некоторые методы-члены шаблона внутри класса шаблона, например, так: template class CallSometing { public: void call (T tObj); // 1st template <...
вопрос задан: 28 October 2015 18:38
0
ответов

Реализация вектора на C ++ [закрыто]

Недавно я написал реализацию STL Vector в качестве упражнения по программированию. Программа компилируется, но я получаю странную ошибку: terminate вызывается после создания экземпляра 'std :: bad_alloc' ...
вопрос задан: 12 May 2019 09:45
0
ответов

Определите, является ли тип контейнером STL во время компиляции

Я хотел бы написать шаблон, который будет определять, является ли тип контейнером STL во время компиляции. У меня есть следующий фрагмент кода: struct is_cont {}; struct not_cont {}; template <...
вопрос задан: 8 March 2019 01:30
0
ответов

подробности о std :: make_index_sequence и std :: index_sequence

Я наслаждаюсь наращиванием вариадических шаблонов и начал возиться с этой новой функцией. Я пытаюсь разобраться в деталях реализации std :: index_sequence (используется для ...
вопрос задан: 5 April 2018 12:46
0
ответов

Получение типа члена

ПРИМЕЧАНИЕ. Этот вопрос изначально задавали еще в 2012 году. До того, как спецификатор decltype был полностью реализован какими-либо крупными компиляторами. Вы не должны смотреть на этот код, если только у вас нет ...
вопрос задан: 13 February 2018 18:59
0
ответов

Любопытно взаимно повторяющиеся определения классов

Я хочу, чтобы объявления типов в двух классах взаимно зависели друг от друга. Вот первый пример, который компилируется с использованием clang и gcc: template struct A {using X = char; ...
вопрос задан: 12 January 2018 17:01
0
ответов

Как самостоятельно зарегистрировать экземпляры классов, используя CRTP?

У меня есть реестр лямбда-функций, связанных с определенным CommandId, где зарегистрированная функция должна создавать конкретный экземпляр класса executor команды и предоставлять ему некоторые ...
вопрос задан: 9 June 2017 19:23
0
ответов

получение const_iterator от итератора [дубликат]

Возможный дубликат: получение const_iterator от итератора Я хочу написать метафункцию, которая возвращает соответствующий const_iterator из шаблона итератора struct ...
вопрос задан: 23 May 2017 12:16
0
ответов

Рекурсивный вывод типов шаблонов в C++

Мне интересно немного узнать о метапрограммировании шаблонов. В приведенном ниже коде я пытаюсь найти целочисленный тип без знака, достаточно большой для хранения N битов, указанных во время компиляции, используя...
вопрос задан: 23 May 2017 11:56
0
ответов

Почему свойства типа C++11 не являются псевдонимами шаблонов?

Аналогичный вопрос: Почему type_traits реализуются с помощью специализированных структур шаблонов вместо constexpr? – но с другим ответом. Я понимаю, что шаблоны псевдонимов не могут быть специализированными и, следовательно...
вопрос задан: 23 May 2017 11:45
0
ответов

Можно ли использовать свойства типа _/ SFINAE, чтобы узнать, определяет ли класс член TYPE?

Я видел этот вопрос, который позволяет проверить наличие функции-члена, но я пытаюсь выяснить, имеет ли класс тип члена. В приведенном ниже примере оба оцениваются как "false"...
вопрос задан: 23 May 2017 11:33
0
ответов

Неоднозначная перегрузка в вариативных шаблонах без аргументов

Связано: неоднозначная перегрузка при доступе к шаблону без аргументов функции с вариативными параметрами Простая функция вариативного шаблона не может мгновенно активировать Почему эта вариативная функция неоднозначна? ...
вопрос задан: 23 May 2017 10:27
0
ответов

Вычисление факториала небольшого целого числа во время компиляции

Я только что реализовал (еще раз )рекурсивный шаблон для вычисления факториала целого числа во время компиляции (кто бы мог подумать, что когда-нибудь он мне действительно понадобится! ). Всё-таки вместо прокатки...
вопрос задан: 16 February 2017 01:19