Вопросы по теме 'typetraits'
Извлечь пакет параметров вариативного шаблона и использовать его в другом вариационном шаблоне в мета-функции свойств типа?
Я хочу определить, является ли какой-либо шаблон вариативного класса базой для другого класса. Обычно я бы использовал std :: is_base_of, но я не думаю, что мой вариант использования подходит, и я не уверен, что в std или boost уже есть что-то, чтобы...
1415 просмотров
schedule
30.08.2022
Черта типа для подвижных типов?
Я пытаюсь написать шаблон, который ведет себя одним образом, если у 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 просмотров
schedule
21.10.2023
Повысить общий тип до Nullable в С#?
Учитывая универсальный тип T в C#, мне интересно, как получить тип Q , который равен T? для ненулевого T и T для уже нулевого T .
Вопрос возник из реального кода. Я хочу унифицировать доступ к параметрам, передаваемым через строку...
380 просмотров
schedule
26.07.2022
Как вы используете признаки типа для условной компиляции?
Я пытаюсь написать код, подобный здесь , но с использованием функций С++ 11. , без буста.
Работая с этим примером , я попытался определить response_trait и базовую условную компиляцию на основе результата признака. Как я могу заставить это...
4433 просмотров
schedule
25.06.2022
Может ли объект знать свою константу?
С помощью decltype и std::is_const константность переменной может быть обнаружена извне. Но может ли объект также знать свою константу? Использование должно быть таким:
#include <type_traits>
#include <iostream>
#include...
639 просмотров
schedule
27.03.2024
Что такое decltype с двумя аргументами?
Изменить, чтобы избежать путаницы: decltype не принимает два аргумента. См. ответы.
Следующие две структуры можно использовать для проверки существования функции-члена для типа T во время компиляции:
// Non-templated helper...
9038 просмотров
schedule
23.09.2022
Сила, происходящая от класса, виртуально
У нас есть специальная структура для интерфейсов в нашем проекте, и часть требований заключается в том, что классы, представляющие интерфейс, могут использоваться только как виртуальные базовые классы, а не как невиртуальные. Есть ли способ...
299 просмотров
schedule
15.11.2022
Почему 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 просмотров
schedule
14.09.2022
Почему std::is_convertible_v возвращает true, хотя это преобразование недопустимо?
Я работаю над проектом C++, который требует использования самоанализа типов, чтобы определить, какой тип объекта является шаблоном. При этом я столкнулся с необычной проблемой. Я выделил основную проблему в несоответствии между тем, что говорит...
657 просмотров
schedule
03.09.2022