Вопросы по теме 'typetraits'
Как я могу узнать, создан ли тип внутри пространства имен?
Я создал систему тегов, которая позволяет использовать теги в движке ma. Он работает на основе типов C ++, поэтому каждый тег является типом (у меня есть причины).
Теперь, когда я хочу создать новый тег, мне нужно вызвать struct tagname{}; ....
138 просмотров
schedule
25.09.2021
Как использовать std :: is_integral ‹› для выбора реализации?
Я пытаюсь вернуть int64_t , если std::is_integral<>::value верно.
В противном случае я хотел бы вызвать to_int64t() для объекта.
Моя попытка ниже не удалась, потому что частичная специализация шаблонов функций не разрешена.
КОД...
9308 просмотров
schedule
23.11.2021
шаблонная функция, которая принимает только строковые или арифметические операции
Я пытаюсь заставить это работать:
template<class Type>
typename boost::enable_if< boost::mpl::or_<
boost::is_arithmetic<Type>,
is_string<Type> > >::type
get(const std::string &argPath, const Type &argDefault)...
177 просмотров
schedule
28.09.2021
Получить тип неявного преобразования
Как я могу получить возвращаемый тип неявного преобразования объекта?
struct Bar {
operator int() const {
return 0;
}
};
// std::result_of<Bar>::type value; ???
// std::result_of<Bar::operator ??? >::type value;
Я мог бы...
116 просмотров
schedule
09.09.2021
Найдите первый базовый примитив в структуре / классе
Помещение:
У меня есть вариативная функция шаблона, которая принимает POD (простая старая структура данных) с однородными типами членов.
Приемлемый POD может полностью состоять из 4-байтовых целых чисел XOR с 4-байтовыми числами с плавающей...
58 просмотров
schedule
03.12.2021
подписанный int vs int - есть ли способ отличить их в C ++?
Есть ли шаблон или подход, который можно было бы использовать, чтобы различать объявления signed int и int , как в следующем примере
signed int foo;
int bar;
static_assert(magic_signed<decltype(foo)>::value,"signed"); //PASS...
246 просмотров
schedule
28.11.2021
Проверьте, доступна ли статическая функция в классе во время компиляции
В настоящее время я подключаю приложение, которое имеет несколько реализаций для одной цели. Во время выполнения проверяется, можно ли использовать соответствующую реализацию или использовать запасной вариант.
Для этого я хочу, чтобы все...
220 просмотров
schedule
17.09.2021
целочисленные признаки (is_integer, is_integral)
Мне нужны две черты, касающиеся целых чисел.
Первый будет похож на std::is_integral (или boost::is_integral ), но его можно использовать с определенными пользователем типами (например, класс, обертывающий int , скажем, int_wrapper ): true,...
1564 просмотров
schedule
22.02.2022
шаблон псевдонима не является шаблоном класса?
Я пытаюсь написать черту типа, чтобы определить, есть ли у типа T::type определенного типа. Я использую код из этого ответа . Для справки это часть кода, который я использую:
// See...
59 просмотров
schedule
24.02.2022
Разница между char и signed char в с ++?
Рассмотрим следующий код:
#include <iostream>
#include <type_traits>
int main(int argc, char* argv[])
{
std::cout<<"std::is_same<int, int>::value = "<<std::is_same<int, int>::value<<std::endl;...
18895 просмотров
schedule
11.03.2022
decltype(*this) эквивалентное внешнее тело функции
Можно ли написать трейт, результатом которого будет тип класса, в котором он используется? Как реализовать get_class в примере ниже?
class Foo {
typedef get_class::type type; // type = Foo now
};
Примечание. Мне нужно написать макрос,...
678 просмотров
schedule
17.03.2022
Как сделать комбинатор Y на основе SFINAE в С++?
Я думал о неявных шаблонах C++14 и пытаюсь объявить функцию, соответствующую определенному типу аргумента (SFINAE и трейты до сих пор вызывают у меня головную боль). Я не знаю, как объяснить, чего я хочу, но я пытаюсь сделать Y комбинатор...
455 просмотров
schedule
20.03.2022
проверить наличие члена в C ++
Возможный дубликат: SFINAE для проверки унаследованных функции-члены
Я хочу выполнить проверку во время компиляции, существует ли конкретный член в классе. Я нашел несколько таких решений: Можно ли написать шаблон для проверки...
452 просмотров
schedule
07.04.2022
Вывод типа шаблона не работает?
Рассмотрим следующий пример.
#include <type_traits>
#include <iostream>
using namespace std;
template <typename T_>
using Integral = typename std::enable_if<std::is_integral<T_>::value,T_>::type;
template...
286 просмотров
schedule
15.04.2022
Наследование (или членство) признаков идиома
Классы всеобъемлющих признаков, такие как std::iterator_traits , полезны тем, что отделяют свойства типа от его определения, поэтому, например, свойства могут быть доступны до того, как определение будет завершено.
Определение трейтов в дополнение...
241 просмотров
schedule
21.05.2022
Как использовать std::enable_if с типом возвращаемого значения?
C++14 будет иметь функции, тип возвращаемого значения которых можно вывести на основе возвращаемое значение.
auto function(){
return "hello world";
}
Могу ли я применить это поведение к функциям, которые используют enable_if для...
9120 просмотров
schedule
27.05.2022
Итерация по коллекции различных типов в C++
Ситуация
У меня есть класс шаблона TIppImage<T> для изображения типа T . У меня есть одноэлементный класс CIppMemoryManager , который может хранить несколько изображений разного размера и типа.
class CIppMemoryManager
{
public:...
1873 просмотров
schedule
08.06.2022
C++: используйте #if std::is_fundamental‹T›::value для условной компиляции в MSVC 2010
В моем шаблоне мне нужно иметь разные части кода в зависимости от того, является ли имя типа фундаментальным типом или нет.
Компиляция этого кода дает C4067 в MSVC (неожиданные токены после директивы препроцессора - ожидается новая строка):...
1105 просмотров
schedule
05.06.2022
Как написать метод типовой черты
Я определил шаблонный класс ( DataArray<T> ) и хочу определить функцию min() для вычисления минимального значения массива целочисленного типа ( double , float , int ,...) или массива сложного типа ( std::complex<double> ,...
125 просмотров
schedule
05.06.2022
std::is_same не работает через decltype автоматической переменной constexpr
Я пытался static_assert убедиться, что какой-то алгоритм метапреобразователя работает, и он невероятно не похож на тот же самый, хотя typeid().name() возвращает ту же самую строку.
Повторение выражения типа в typedef могло бы исправить is_same...
794 просмотров
schedule
06.06.2022