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

Извлечь пакет параметров вариативного шаблона и использовать его в другом вариационном шаблоне в мета-функции свойств типа?
Я хочу определить, является ли какой-либо шаблон вариативного класса базой для другого класса. Обычно я бы использовал std :: is_base_of, но я не думаю, что мой вариант использования подходит, и я не уверен, что в std или boost уже есть что-то, чтобы...
1415 просмотров

Черта типа для подвижных типов?
Я пытаюсь написать шаблон, который ведет себя одним образом, если у T есть конструктор перемещения, и другим, если у T его нет. Я пытался найти черту типа, которая могла бы идентифицировать это, но мне не повезло, и мои попытки написать собственную...
5881 просмотров
schedule 02.10.2022

стандартный способ С++ 11 удалить все указатели типа
Есть ли способ сделать это с помощью какой-нибудь С++ 11 или, самое большее, библиотеки повышения? #include <iostream> #include <typeinfo> using namespace std; template <typename T> class remove_all_pointers{ public: typedef...
1953 просмотров
schedule 12.11.2022

Добавление квалификатора const в функцию-член
В настоящее время я пишу класс интерфейса, который должен предоставлять доступ к внутренним элементам сложной структуры в виде константных или неконстантных ссылок. Идея состоит в том, что некоторым модулям предоставляется постоянный доступ, а...
1183 просмотров

Повысить общий тип до Nullable в С#?
Учитывая универсальный тип T в C#, мне интересно, как получить тип Q , который равен T? для ненулевого T и T для уже нулевого T . Вопрос возник из реального кода. Я хочу унифицировать доступ к параметрам, передаваемым через строку...
380 просмотров

Как вы используете признаки типа для условной компиляции?
Я пытаюсь написать код, подобный здесь , но с использованием функций С++ 11. , без буста. Работая с этим примером , я попытался определить response_trait и базовую условную компиляцию на основе результата признака. Как я могу заставить это...
4433 просмотров
schedule 25.06.2022

Может ли объект знать свою константу?
С помощью decltype и std::is_const константность переменной может быть обнаружена извне. Но может ли объект также знать свою константу? Использование должно быть таким: #include <type_traits> #include <iostream> #include...
639 просмотров

Что такое decltype с двумя аргументами?
Изменить, чтобы избежать путаницы: decltype не принимает два аргумента. См. ответы. Следующие две структуры можно использовать для проверки существования функции-члена для типа T во время компиляции: // Non-templated helper...
9038 просмотров
schedule 23.09.2022

Сила, происходящая от класса, виртуально
У нас есть специальная структура для интерфейсов в нашем проекте, и часть требований заключается в том, что классы, представляющие интерфейс, могут использоваться только как виртуальные базовые классы, а не как невиртуальные. Есть ли способ...
299 просмотров

Почему std::is_const‹const int&›::value оценивается как false?
Это побочный ответ на вопрос Как проверить, является ли объект константным или нет? . Я был удивлен, увидев следующую программу #include <iostream> #include <type_traits> int main() { std::cout << std::boolalpha;...
544 просмотров
schedule 02.06.2024

Как проверить наличие оператора индекса?
Я хочу написать черту типа, которая использует SFINAE для проверки типа на наличие выражения нижнего индекса. Моя первоначальная попытка ниже, кажется, работает, когда выражение нижнего индекса возможно, но не работает, когда оператор скобки не...
1142 просмотров
schedule 09.10.2022

Время компиляции ограниченных шаблонов без использования повышения
это связано с этими двумя вопросами: стандартный способ c++11 для удаления всех указателей тип Ограничение шаблона времени компиляции C++ второй мой проблема в том, что когда я перешел на TDM-GCC 64, следующий код (ранее...
143 просмотров
schedule 06.07.2022

Как стандартно комбинировать условия из type_traits
Например, я хочу использовать тип T только в том случае, если std::is_pointer<T> и std::is_const<T> оцениваются как true_type . Конечно, есть простой способ: template <typename T> void f(T t, std::true_type,...
2585 просмотров
schedule 29.05.2024

Когда лямбда тривиальна?
Когда лямбда гарантированно будет тривиальной, если вообще когда-либо? Я предположил, что если он фиксирует только тривиальные типы или ничего, он будет тривиальным. У меня нет никакого стандарта, чтобы поддержать это, хотя. Моя мотивация...
2635 просмотров
schedule 14.07.2022

тривиально перемещаемый, но не тривиально копируемый
Можно ли сделать тип класса, который: тривиально конструируемое перемещением, но не тривиально конструируемое копированием, но все же конструируемое копированием тривиально конструируемое копирование, но не тривиально конструируемое...
908 просмотров
schedule 05.03.2024

Реализация std::is_function с cv-квалификаторами и ref-квалификаторами
Согласно справочнику по C++ , это допустимая реализация std::is_function (за исключением частичная специализация для функций с переменным числом переменных и спецификаторы noexcept для краткости): template<class> struct is_function :...
218 просмотров
schedule 12.10.2023

признак типа c++, чтобы сказать тривиально подвижный - примеры
Я бы определил "тривиально подвижный" как Вызов конструктора перемещения (или оператора присваивания перемещения) эквивалентен memcpy байтов в новое место назначения без вызова деструктора для перемещенного объекта. Например, если вы...
1144 просмотров
schedule 17.04.2024

Создайте черту типа с таблицами поиска
Я недавно новичок в использовании шаблонов в качестве функции C++ и некоторых последних дополнений из C++ 11-17. Я пытаюсь определить черту типа для класса перечисления, в котором есть несколько статических и постоянных таблиц поиска, которые...
49 просмотров
schedule 27.01.2024

Извлечение и изменение параметров шаблона
Я написал следующий класс, чтобы извлечь параметры шаблона класса Base и добавить к нему параметры шаблона класса Derived во время компиляции: template <typename...> struct derived_type_traits; // specialization for the case when Base...
97 просмотров

Почему std::is_convertible_v возвращает true, хотя это преобразование недопустимо?
Я работаю над проектом C++, который требует использования самоанализа типов, чтобы определить, какой тип объекта является шаблоном. При этом я столкнулся с необычной проблемой. Я выделил основную проблему в несоответствии между тем, что говорит...
657 просмотров