Вопросы по теме 'template-meta-programming'
Какие самые крутые примеры метапрограммирования вы видели в C++?
Какие самые крутые примеры метапрограммирования вы видели в C++? Какие практические применения метапрограммирования вы видели в C++?
9181 просмотров
schedule
31.03.2022
получение const_iterator из итератора
Возможный дубликат: Получение const_iterator из итератора
Я хочу написать метафункцию, которая возвращает соответствующий const_iterator из iterator
template <class Iterator>
struct get_const_iterator
{
typedef ???...
1847 просмотров
schedule
25.03.2022
Как определить, является ли тип лямбда-выражением во время компиляции?
Предположим, у меня есть тип my_struct , содержащий переменную-член f , которая является функцией. f может быть лямбда-функцией С++ 11.
Поскольку присваивать лямбда-объектам незаконно, я хотел бы реализовать оператор присваивания my_struct...
1657 просмотров
schedule
12.11.2023
Почему type_traits реализуются со специализированными структурами шаблонов вместо constexpr?
Есть ли причина, по которой стандарт определяет их как шаблон struct s вместо простого логического constexpr ?
В дополнительном вопросе, на который, вероятно, будет дан хороший ответ на основной вопрос, как можно было бы делать enable_if вещи с...
2355 просмотров
schedule
27.09.2023
Как работает этот шаблон класса has_member?
Я пытаюсь понять, как работает следующий шаблон класса (взято из здесь ), но я не мог понять это правильно:
template <typename Type>
class has_member
{
class yes { char m;};
class no { yes m[2];};
struct BaseMixin
{...
1692 просмотров
schedule
18.01.2024
Определите, является ли тип контейнером STL во время компиляции
Я хотел бы написать шаблон, который будет определять, является ли тип контейнером stl во время компиляции.
У меня есть следующий фрагмент кода:
struct is_cont{};
struct not_cont{};
template <typename T>
struct is_cont { typedef not_cont...
19045 просмотров
schedule
21.02.2024
Функция вызова во время инициализации программы
Поэтому я хотел бы иметь возможность вызывать функцию во время инициализации. Это пустая функция, но я хочу, чтобы побочные эффекты (в данном случае обновление таблицы фабричных функций) были на месте к моменту вызова main() . Сейчас я просто...
232 просмотров
schedule
01.06.2022
Что случилось с моими членами класса условного шаблона SFINAE redux:?
Я новичок в написании кода метапрограммирования шаблона (а не просто в его чтении). Так что я столкнулся с некоторыми проблемами нубов. Один из них довольно хорошо резюмирован в сообщении, не относящемся к SO, под названием " Что случилось с моим...
2543 просмотров
schedule
02.11.2022
Проблема с метафункцией для определения класса-в-шаблоне-класса
У меня есть код со следующей структурой:
template <typename T>
struct Foo
{
struct Bar
{
int data;
};
};
Я хочу написать метафункции, которые сообщат мне, является ли тип Foo или Bar. Первый простой:
template <typename...
302 просмотров
schedule
31.05.2024
TMP: как обобщить декартово произведение векторов?
Существует отличное решение C++ (на самом деле 2 решения: рекурсивное и нерекурсивное) для декартово произведение вектора целочисленных векторов . В целях иллюстрации/простоты давайте просто сосредоточимся на нерекурсивной версии .
Мой...
2983 просмотров
schedule
01.12.2023
ошибка аргумента метафункции операции преобразования boost::mpl
В веб-документации Boost MPL , в нем говорится о передаче классов метафункций в качестве аргументов для boost::mpl::transform. Аргумент метафункции в этом случае должен быть какой-то операцией, выполняемой над mpl::ForwardSequence. Однако при...
784 просмотров
schedule
26.04.2022
Проблемы с метапрограммированием шаблона делегата
Приведенный ниже код был адаптирован другим программистом из кода Yingle Jia и мне нужно портировать его на Linux. Он отлично компилируется в VS2010, но когда я пытаюсь собрать в Ubuntu с gcc 4.6.3, он показывает ошибки на
template <class R...
163 просмотров
schedule
17.06.2023
Лучший способ (или обходной путь) специализации псевдонима шаблона
В настоящее время я реализую крошечную библиотеку вычислений времени компиляции на основе метапрограммирования.
Если бы я определил базовый класс для операторов, который имеет определение типа результата (я решил использовать интегральные оболочки,...
2887 просмотров
schedule
05.08.2022
Получение элемента кортежа по типу (до C++0x)
У меня есть шаблонный класс, который содержит кортеж и хочет иметь возможность извлекать элементы по типу во время компиляции. Для упрощения класс контейнера ограничен максимум тремя записями:
template< class U = null_type, class V =...
833 просмотров
schedule
28.09.2022
Очень быстрая сортировка массивов фиксированной длины с использованием сетей компараторов
У меня есть критический для производительности код, который включает сортировку очень короткого массива фиксированной длины с примерно 3–10 элементами в C ++ (параметр изменяется во время компиляции).
Мне пришло в голову, что статическая сеть...
5385 просмотров
schedule
04.02.2022
Вычисление аргумента шаблона во время компиляции
Я пытаюсь вывести большее из двух аргументов шаблона во время компиляции. Оба аргумента шаблона имеют тип size_t.
У меня есть шаблонный тип SomeType, который принимает size_t в качестве аргумента шаблона. Затем у меня есть функция, которая...
463 просмотров
schedule
21.02.2023
Обнаружение наследования того же класса с помощью SFINAE
Я пытаюсь написать метафункцию, которая проверяет, все ли типы, переданные в качестве вариативного параметра шаблона, различны. Кажется, что наиболее эффективный способ сделать это — наследовать от набора классов и определить, есть ли ошибка....
606 просмотров
schedule
18.10.2022
ExtJS 4.2 Динамически генерируемая модель + хранилище + представление для ряда похожих источников данных
У меня есть коллекция похожих объектов, с которыми нужно обращаться одинаково.
Пример объектов:
Foo (id, title, size)
Bar (id, name, count, ...)
...
Обычно для каждого я должен создать 3 файла + зарегистрироваться в хранилищах и...
241 просмотров
schedule
09.03.2023
Захватить тип аргумента функции из фактических аргументов
Можно ли зафиксировать тип формального аргумента, имея только имя функции и фактические аргументы?
Мне понадобится что-то похожее на decltype, но оно должно возвращать тип функции, а не возвращаемый тип функции.
Я нашел половину решения с C ++...
394 просмотров
schedule
20.05.2022
Метапрограммирование С++ - дерево поиска во время компиляции
ОБНОВЛЕНИЕ: извините за путаницу в терминах — мне нужно не бинарное дерево, а дерево сегментов или дерево интервалов.
Представьте, что мне нужно статически инициализировать дерево поиска каждый раз, когда выполняется моя программа.
Tree t;...
1709 просмотров
schedule
16.10.2023