Вопросы по теме 'typetraits'

Определение признаков типа. Капли признаков и метафункции
Читая исходный код, я нашел следующее определение признаков: namespace dds { template <typename Topic> struct topic_type_support { }; template <typename Topic> struct topic_data_writer { }; template <typename Topic>...
1132 просмотров
schedule 12.06.2022

Как работает `is_base_of`?
Как работает следующий код? typedef char (&yes)[1]; typedef char (&no)[2]; template <typename B, typename D> struct Host { operator B*() const; operator D*(); }; template <typename B, typename D> struct is_base_of {...
26586 просмотров

отличить указатель на перегруженную функцию-член в C++
Я хочу различать перегруженную функцию-член в шаблонной структуре С++. Статический метод get_pointer из специализированной структуры distinguish_foo должен возвращать указатель на derived::foo , если этот метод существует . В противном случае...
291 просмотров

enable_if в функции шаблона члена шаблона класса
Похоже, это ошибка в MSVC10? #include <type_traits> template<int j> struct A{ template<int i> typename std::enable_if<i==j>::type t(){} }; int main(){ A<1>().t<1>(); //error C2770 }...
983 просмотров

Возможен ли трейт-класс is_functor C++?
Как я могу вывести статически, если аргумент является объектом функции C++ (функтор)? template <typename F> void test(F f) {} Я пробовал is_function<F>::value , но это не работает. Также кажется, что черты is_functor нет, так...
2984 просмотров
schedule 01.03.2022

Черты С++ для параметров функции, не являющейся шаблоном?
При определении шаблона функции экземпляры параметров шаблона, как правило, неизвестны. Признаки типа можно использовать для получения некоторой информации во время компиляции. Например, вот тривиальное применение is_pointer : template...
222 просмотров
schedule 13.06.2023

Почему признаки типа С++ 11 не являются шаблонами псевдонимов?
Аналогичный вопрос: Почему type_traits реализованы со специализированными структурами шаблонов вместо constexpr? — но с другим ответом. Я понимаю, что шаблоны псевдонимов не могут быть специализированы и, следовательно, в настоящее...
3574 просмотров

Шаблоны функций: разные специализации с типами
Рассматривая шаблоны классов, можно предоставить специализации шаблонов для определенных типов групп, используя характеристики типов и параметры фиктивных шаблонов активаторов. Я уже спрашивал об этом раньше . Теперь мне нужно то же самое для...
4451 просмотров

Реализация std::common_type
Просто чтобы посмотреть, как это работает, я посмотрел на реализацию std::common_type в libstdc++ в заголовке type_traits . Я должен признать, что я действительно не понимаю, как это работает. Вот: /// common_type template<typename......
1431 просмотров
schedule 16.07.2023

Ошибка замены
В настоящее время я пытаюсь написать некоторую гибкую математическую библиотеку времени компиляции и только что столкнулся с ошибкой замены, от которой мне не удается избавиться. Вот проблема: Первым делом пишу рациональный класс, поставлю только...
999 просмотров
schedule 19.05.2022

Можно ли использовать is_tribuly_copy_assignable и is_tribuly_copy_constructible для целей оптимизации?
Кажется, что значения небезопасно копировать с помощью memcpy , если только тип не является тривиально копируемым, т. е. не удовлетворяет признаку типа std::is_trivially_copyable . Интересно, какова цель признаков типа...
641 просмотров
schedule 26.03.2022

Особенности рекурсивного типа C ++
Я пытаюсь реализовать шаблонный класс (названный здесь Get<> ), который, учитывая структуру H , тип Get<H>::type является самим H , если квалифицированный-идентификатор H::der не существует, и Get<H::der>::type в противном...
492 просмотров
schedule 24.08.2022

Каковы тривиальные операции в std::is_tribuly_copy_constructible в C++
Вот выдержка из документации по std::is_copy_constructible (1) и std::is_tribuly_copy_constructible (2) на cppreference.com : 1) Проверяет, является ли тип CopyConstructible, т.е. имеет доступный явный или неявный конструктор копирования....
2658 просмотров
schedule 27.06.2023

Устранение неоднозначности указателя перегруженной функции-члена, передаваемого в качестве параметра шаблона
Я пытаюсь воссоздать шаблон наблюдателя , в котором я могу точно передать параметры заданной функции-члену наблюдателей. Если я попытаюсь передать адрес функции-члена , которая имеет несколько переопределений , она не сможет определить...
17423 просмотров
schedule 29.01.2024

Метафункция для проверки совместимости объекта с диапазоном повышения
Существует ли или как бы вы написали класс метафункций, который проверяет, совместим ли класс с boost::range ? Я хочу использовать идиому boost::enable , что-то вроде template <typename T> Constructor::Constructor(const T& t,...
215 просмотров
schedule 19.03.2023

Специализируйте шаблон для типов, содержащих typedef
У меня есть класс шаблона, который необходимо специализировать для параметров шаблона, содержащих определенный typedef. Поэтому мне нужно два определения, одно для случая, когда у него есть typedef, а другое для случая, когда его нет. Моя проблема...
522 просмотров
schedule 04.03.2023

Разочарование в decltype функций
Сейчас я пишу оболочку для некоторых библиотечных функций Windows, поэтому мне нужно извлечь их прототип и написать новую оболочку с измененным прототипом. Например: функция int recv(SOCKET, char*, int, int) будет обернут...
96 просмотров
schedule 07.05.2022

Проверка наличия вложенного шаблонного класса
Я пытаюсь создать черту, которая проверяет наличие вложенного шаблонного класса. Это моя попытка проверить, есть ли у класса O вложенный класс inner с параметром шаблона T : template <typename O, typename T> struct has_inner {...
845 просмотров
schedule 10.05.2022

черты type для типов данных OpenCV
У меня есть шаблонный метод, в котором создается объект Mat. Тип этой матрицы зависит от реализации шаблона: template <typename T> void createMatrixAndDoStuff(int rows, int cols){ // ... Mat A(rows,cols,getCVtype<T>::value); // ... }...
616 просмотров
schedule 07.09.2022

Проверка вызываемых типов параметров шаблона
EDIT: Подход, изложенный в вопросе, проблематичен по нескольким причинам. В конце концов я решил эту проблему, пойдя по-другому, см. мой ответ ниже. У меня есть несколько классов шаблонов, в которых ожидается, что параметр шаблона будет...
1698 просмотров