Вопросы по теме 'typetraits'
Как написать шаблон is_complete?
Ответив на этот вопрос, я пытался найти шаблон is_complete в библиотеке Boost и понял, что в Boost.TypeTraits такого шаблона нет. Почему в библиотеке Boost нет такого шаблона? Как это должно выглядеть?
//! Check whether type complete...
4093 просмотров
schedule
12.01.2023
Ограничение std::sort итераторами произвольного доступа
Мне просто интересно, поскольку вы все равно можете передавать итераторы произвольного доступа только std::sort , почему бы не применить это ограничение, определив его в первую очередь только для итераторов произвольного доступа?
#include...
1362 просмотров
schedule
21.08.2022
Как определить итератор вложенного контейнера?
Как правильно объявить итератор i в следующем коде?
#include <iostream>
#include <vector>
using namespace std;
template<class Mat>
void f(const Mat& mat)
{
typedef typename Mat::value_type::iterator itr;
//itr i =...
2341 просмотров
schedule
03.09.2022
C++ и typetraits: простейший способ определения списка возможных определений
Я хочу определить функцию template<typename T> T constCast(const ScriptVar_t& s); . В зависимости от T я хочу иметь разные определения. ( ScriptVar_t — это класс, но в данном контексте детали здесь не важны.)
Условия для T не так...
235 просмотров
schedule
23.01.2023
Почему эта структура не является стандартной?
Кусок кода стоит тысячи слов.
#include <iostream>
#include <type_traits>
using namespace std;
struct A
{
int a;
};
struct B : A
{
int b;
};
int main()
{
cout << is_standard_layout<B>::value << endl; //...
142 просмотров
schedule
29.08.2022
Черта типа для идентификации основного базового класса
Если у меня есть класс Base, по крайней мере, с одной виртуальной функцией и класс Derived, который наследуется отдельно от него, то (uintptr_t)derived - (uintptr_t)static_cast<Base*>(derived) гарантированно (с помощью Itanium ABI) будет равен...
2352 просмотров
schedule
21.05.2023
Как переключать/выбирать типы во время компиляции?
Есть ли стандартный способ выбрать тип во время компиляции для беззнакового индекса в С++ 11?
Например, что-то вроде:
using type_0 = static_switch<0,T,U>; // yields type T
using type_1 = static_switch<1,T,U>; // yields type U...
5805 просмотров
schedule
26.04.2023
Ограничение доступа к функции
У меня есть общий класс с функцией, которую я хочу ограничить только экземплярами типов с плавающей запятой во время компиляции. Как показано в примере ниже:
template <typename T>
class ClassName
{
// instance variables, etc..
void...
300 просмотров
schedule
31.08.2022
Признаки типов C++ в методе класса: частичная специализация, если параметром является перечисление
Моя платформа — Windows с Visual Studio Express 2012.
У меня есть шаблонный метод следующим образом
struct A
{
template<class T> void blub(T value);
};
Я хочу иметь несколько специализаций, например:
template<> void...
626 просмотров
schedule
09.12.2022
Как узнать, есть ли у типа функция-член с любым возвращаемым типом?
Мне нужно выяснить, есть ли у заданного типа функция X как вызываемая функция с заданным списком параметров. Однако проверка не должна заботиться о возвращаемом значении.
Я нашел это решение из еще один вопрос о переполнении стека , который,...
618 просмотров
schedule
08.01.2023
is_constructible из списка фигурных скобок
Есть ли какое-либо намерение реализовать в STL вариант std::is_constructible , который подходит для определения того, конструируется ли конкретный тип из фигурных скобок, заполняется ли он указанным пакетом параметров или нет? Я имею в виду что-то...
107 просмотров
schedule
26.09.2023
различное поведение для перечислений и всех других типов
Используя gcc-4.8 с -std=c++11, я хочу создать функцию шаблона с одним поведением для перечислений и другим поведением для всех остальных типов. я пробую это
#include <type_traits>
#include <iostream>
template<class T, class =...
50 просмотров
schedule
21.05.2022
Введите признаки для сопоставления указателя на коллекции
Я пишу класс сопоставления SFINAE, который может сопоставлять указатель на тип коллекции.
В настоящее время у нас есть std::is_pointer, и я написал:
// SFINAE test for const_iterator for member type
template <typename T>
class...
144 просмотров
schedule
08.01.2023
Как проверить, является ли конструктор копирования исключением без использования type_traits?
После некоторых экспериментов мне удалось написать фрагмент кода, который будет проверять, является ли конструктор перемещения класса noexcept (без использования type_traits; это просто упражнение):
std::cout << std::boolalpha <<...
802 просмотров
schedule
05.04.2023
Невозможно вывести аргумент шаблона, который является функцией
Почему нельзя вывести F для proxy() ?
Это должно быть возможно, потому что я ограничиваю его - только для функций, которые возвращают int .
#include <utility>
#include <iostream>
#include <type_traits>
using namespace...
1341 просмотров
schedule
29.03.2023
Шаблон С++ type_traits для добавления ссылки, если он не является константой
У меня есть шаблон класса, который принимает тип T . У него есть метод. Я хочу, чтобы этот метод возвращал тип T , если он const , и T& , если он не- const .
template<typename T>
class C
{
static typename...
431 просмотров
schedule
12.12.2022
Условно включить конструктор всякий раз, когда переменная-член может быть создана с помощью аргументов с переменным числом аргументов.
У меня есть класс foo с параметром шаблона Tuple , и я хочу предоставить конструктор аргументов с переменным числом аргументов для инициализации переменной-члена m_elements типа Tuple всякий раз, когда определяется выражение m_elements{...
172 просмотров
schedule
07.08.2022
Как определить, применим ли оператор [] к типу?
Я хотел бы написать шаблон функции, например
template< typename T >
void foo( T& obj ){
obj[0] = xxxxxx;
}
где T должен иметь применимый оператор []. T может быть массивом любого типа, std :: vector, std :: array или любого...
129 просмотров
schedule
22.06.2023
Получение всех импортированных модулей с трейтами
Есть ли способ с трейтами получить все импортированные модули или какой-то другой способ? Насколько я вижу, «allMembers» не будет включать импортированных участников.
Чего я хочу добиться, так это импортировать все элементы из импортированных...
137 просмотров
schedule
28.03.2023
Использование признака типа C++ для Objective-C++
Насколько мне известно, разработчики могут использовать признак типа С++, чтобы узнать «тип» класса и отношения между классами. Часть из них реализуется компилятором.
Например, std::is_base_of<b, d>::value возвращает значение true, если b...
119 просмотров
schedule
01.08.2023