Вопросы по теме 'typetraits'
Какие черты характера используются / определены в стандарте C ++ 0x
Типаж в C ++ инкапсулирует семейство операций, которые позволяют алгоритму или структуре данных работать с тем типом, с которым он создается. char_traits - это пример группировки string - и функций, требующих файла.
Но не все черты характера...
1000 просмотров
schedule
20.08.2022
Есть ли функция/макрос времени компиляции, чтобы определить, является ли структура С++ 0x POD?
Я хотел бы иметь C++0x static_assert , который проверяет является ли данный тип структуры POD (чтобы предотвратить непреднамеренное нарушение другими программистами новых участников). т.е.,
struct A // is a POD type
{
int x,y,z;
}
struct...
3743 просмотров
schedule
07.10.2022
С++: есть ли что-то вроде условного типа boost/std typetraits, которое генерирует значение (а не тип) во время компиляции?
В настоящее время я делаю следующее, чтобы сгенерировать значение во время компиляции, которое работает:
//if B is true, m_value = TRUEVAL, else FALSEVAL, T is the value type
template<bool B, class T, T TRUEVAL, T FALSEVAL>...
949 просмотров
schedule
30.07.2022
boost::aligned_storage копирует объекты НЕ-POD, такие как тип POD, при возврате
У меня есть класс, который использует хранилище boost::aligned для статического выделения памяти внутри объекта, а затем инициализирует объекты позже. Однако сбой в одной тестовой программе показывает, что деструкторы элементов вызываются для...
1141 просмотров
schedule
15.05.2024
Определение признаков для шаблонных классов
Я понимаю, как создавать черты типа, а затем специализироваться на конкретном классе, но в моем случае я хотел бы специализироваться на шаблоне класса. Приведенный ниже код не компилируется, но идея состоит в том, что специализация Traits для...
233 просмотров
schedule
27.05.2023
Проверка наличия члена, возможно, в базовом классе, версия C ++ 11
В https://stackoverflow.com/a/1967183/134841 предоставляется решение для статической проверки существования участника. , возможно, в подклассе типа:
template <typename Type>
class has_resize_method
{
class yes { char m;};
class...
9735 просмотров
schedule
12.03.2023
указатель на статическую функцию-член недействителен в качестве аргумента шаблона для g++
Это часть моего фактического кода, который имеет дело с представлением классов C++ для Lua, например:
#include <lua5.1/lua.hpp>
#include <tuple>
//in actual code, lots of specializations of these C++<=>Lua's stack helper...
667 просмотров
schedule
14.04.2024
Характеристики типа C ++ для извлечения класса параметров шаблона
В шаблоне я хочу развернуть параметр шаблона до реального не шаблонного типа. Так:
template <typename T>
struct MyTemplate
{
// sadly there's no extract_Base
typedef typename extract_base<T>::MyType WorkType;
};
struct X {};...
6840 просмотров
schedule
05.06.2022
CRTP + класс признаков: тип не назван
Я пытаюсь реализовать CRTP с шаблонным классом, и у меня возникает ошибка со следующим примером кода:
#include <iostream>
template<class T> class Traits
{
public:
typedef typename T::type type; // <- Error...
2315 просмотров
schedule
18.10.2022
Как проверить, является ли класс B производным от семейства шаблонов классов
Как проверить во время компиляции, является ли класс B производным от std::vector?
template<class A>
struct is_derived_from_vector {
static const bool value = ????;
};
Как проверить во время компиляции, является ли класс B производным...
1524 просмотров
schedule
30.07.2023
Макрос для получения типа выражения
Вопрос
Я пытаюсь написать макрос C++, который будет принимать либо type , либо type name в качестве входных данных и давать type в качестве выходных данных.
Например: REMOVE_NAME(int) должно быть int REMOVE_NAME(int aNumber)...
533 просмотров
schedule
05.05.2024
Определить, является ли тип std::tuple?
В настоящее время у меня есть две функции:
template<typename Type> bool f(Type* x);
template<typename... List> bool f(std::tuple<List...>* x);
Есть ли способ объединить эти две функции с дополнительным параметром шаблона,...
6388 просмотров
schedule
21.10.2023
Убедитесь, что аргумент является выходным потоком для консоли
Я пытаюсь сделать манипулятор потока для цвета для использования с выводом на консоль. Работает, меняя цвет текста и фона:
std::cout << ConColor::Color::FgBlue << 123 << "abc"; //text is blue, sticky
Проблема с подписью:...
277 просмотров
schedule
12.01.2023
Специализация шаблона C ++ для предоставления / добавления различных функций-членов
Я немного экспериментирую с типами шрифтов и специализацией шаблонов. Например:
enum TestEnum
{
VALUE0 = 0,
VALUE1 = 1,
VALUE2 = 2
//... And so on...
};
template<int Value>
class cTestClass;
//specializations...
2235 просмотров
schedule
20.04.2023
Есть ли способ использовать признаки типа С++, чтобы проверить, является ли тип шаблоном и какими-либо его свойствами?
Я хотел бы иметь возможность определить, является ли данный тип типом шаблона. Я просмотрел классы свойств типа boost, но не могу найти признаки is_*, связанные с шаблонами: http://www.boost.org/doc/libs/1_52_0/libs/type_traits/doc/html/index.html...
1560 просмотров
schedule
22.05.2023
Тестирование на наличие оператора сдвига влево
Я пытаюсь найти черту рабочего типа, чтобы определить, имеет ли данный тип перегрузку оператора сдвига влево для std::ostream (например, совместим с std::cout или boost::lexical_cast ). У меня был успех с boost::has_left_shift , за исключением...
1148 просмотров
schedule
17.11.2022
Вызов условной функции С++ с признаками типа
Предположим, у меня есть шаблон класса template <typename T> class X
Можно ли как-то использовать черты типа или аналогичную технику для вызова (статического) метода T, но только если тип T объявляет такой метод, например. что-то вроде...
2211 просмотров
schedule
31.12.2022
Как определить строковый литерал с type_traits?
Как надежно выполнить static_assert для всего, что не является строковым литералом?
Например, в следующем коде я попытался обернуть стандартный макрос утверждения, но статически отклонил все для сообщения, которое не является строковым литералом...
2890 просмотров
schedule
27.03.2022
Почему is_class‹T› не работает в этом сегменте кода?
Пытаюсь использовать is_class в следующем сегменте (урезанном из более крупного), но, похоже, это не работает. Что случилось?
#include <type_traits>
template<typename U, typename = void>
struct xxxU_Impl
{
static void xxxU_push...
722 просмотров
schedule
27.06.2023
Как объявить значение итератора через decltype
В C++98 я обычно использую следующее для объявления переменной в типе значения итератора:
typename std::iterator_traits<Iterator>::value_type value;
В С++ 11 у нас есть decltype, и я подумал, что самый простой способ вывести тип...
3629 просмотров
schedule
05.07.2023