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

Использование auto и decltype в C ++ 11
Я пытаюсь изучить принятые в настоящее время функции С ++ 11, и у меня проблемы с auto и decltype. В качестве обучающего упражнения я расширяю список классов std некоторыми общими функциями. template<class _Ty, class _Ax =...
6685 просмотров
schedule 12.03.2022

Поведение decltype
Скажем, у меня есть объект некоторых классов контейнеров stl obj . Я могу определить другой объект того же типа следующим образом: decltype(obj) obj2; Но я не могу объявить итератор для контейнера таким образом: decltype(obj)::iterator...
2797 просмотров

Получить возвращаемое значение для параметра лямбда шаблона, как упростить код?
Это мой трюк: template<typename F, typename TArg> auto get_return_value(F * f = NULL, TArg * arg = NULL) -> decltype((*f)(*arg)); Пример использования: template<typename F, typename T>...
1119 просмотров
schedule 10.06.2024

Возможны ли общие оболочки функций в C++?
Это появилось, когда я искал ошибку в оболочке функции boost::fusion::fused при использовании decltype. Похоже, проблема заключается в том, что недопустимый decltype является ошибкой компиляции, даже если экземпляр шаблона, для которого он...
756 просмотров

C++11 — Возврат выражения для определения типа
C++11 включает в себя огромное количество замечательных функций, когда речь идет о выводе типов и управлении в целом. Например, ключевые слова auto и decltype зарекомендовали себя как достойное дополнение к языку. Когда я освоил эти...
254 просмотров
schedule 08.02.2023

Что делает 'void()' в 'auto f(params) -> decltype(, void())'?
Я нашел код здесь , который выглядел примерно так: auto f(T& t, size_t n) -> decltype(t.reserve(n), void()) { .. } Во всей документации, которую я читал, мне сказали, что decltype подписано как: decltype( entity ) or...
3330 просмотров

Предоставляет ли `decltype` статический тип объекта или его тип времени выполнения?
[C++11: 7.1.6.2/4]: Тип, обозначенный decltype(e) , определяется следующим образом: если e - это id-выражение без скобок или доступ к члену класса без скобок (5.2.5), decltype(e) - это тип сущности, названной e . Если такой...
4764 просмотров
schedule 06.03.2022

Приведите значение, используя decltype, возможно ли это?
Можно ли использовать decltype для приведения значения? Например, допустим, что у нас есть следующий шаблон: template<typename Container> auto findInposition(Container& c,int position)->decltype(*(c.begin())) {...
4182 просмотров
schedule 05.11.2022

Почему разрешение области не удается при наличии decltype?
Насколько я понимаю, decltype используется для запроса типа объектов/переменных и т.д. Из примеров, представленных в Википедии, например, следующие: int i; decltype(i) x3; // type is int Я предполагал, что смогу сделать что-то вроде этого:...
809 просмотров
schedule 16.08.2022

Почему decltype удаляет const из возвращаемых типов для встроенных типов?
Как правило, decltype сохраняет константу: const int ci = 0; decltype(ci) x; // x is const int x = 5; // error--x is const class Gadget{}: const Gadget makeCG(); // factory decltype(makeCG()) y1, y2; //...
1517 просмотров
schedule 04.11.2022

Почему char[] и char* как определения типов различаются, а иногда нет?
Следующее наблюдение возникло, когда я следил за этим вопросом о char[] и char* различий. #include <iostream> typedef char ar[]; typedef char* pr; void f2(ar x, pr y) { std::cout << std::is_same<decltype(x),...
594 просмотров
schedule 23.04.2023

С ++ 11 функция конечного возвращаемого члена с использованием decltype и constness
Я пытаюсь понять синтаксис объявления новой функции на основе конечного возврата в C ++ 11, используя decltype. В следующем коде я пытаюсь определить функцию-член, возвращающую константу &, чтобы разрешить доступ только для чтения к i...
1167 просмотров
schedule 18.03.2022

Decltype для функции-члена класса
Этот код не компилируется в VS2010: template < typename A > class X { A& m_a; public: X ( A& a ) : m_a ( a ) {} auto func ( int i ) -> decltype ( m_a ( i ) ) { return ( m_a ( i ) ); } // failing on this line };...
566 просмотров
schedule 17.07.2023

Почему decltype не может работать с перегруженными функциями?
decltype терпит неудачу, если вызываемая вами функция перегружена, как в этом коде: #include <iostream> int test(double x, double y); double test(int x, int y); char test(char x, int y); int main() { std::cout << decltype(test)...
6629 просмотров
schedule 14.07.2022

Вывести тип возвращаемого значения функции-члена с помощью объекта функции-члена класса
Правка : теперь я чувствую себя глупо. Опубликованный код на самом деле работает с ???= decltype(acc(base(i))) ... Ошибка была в другом, хотя и очень запутанной. Я отправлю новый вопрос об этом. Спасибо за помощь. У меня есть такой код:...
494 просмотров
schedule 09.03.2022

C++ — использование decltype с перечислением, содержащимся в шаблонном классе
У меня есть класс шаблона, который выглядит так: template <typename T> class Foo { public: enum Mode { Mode1, Mode2, Mode3 }; // ... }; Я создаю это: Foo<float> foo; // ... auto m = Foo<float>::Mode1; Но мне...
1401 просмотров
schedule 18.08.2022

Недопустимое использование неполного типа с шаблонами и decltype
Мне нужно сделать следующую работу. Это сокращенная версия моего фактического кода, но в основном сложность такая же, т. е. вывести тип возвращаемого значения фабричного метода. В частности, мне нужен либо второй, либо третий вариант...
1314 просмотров
schedule 02.05.2022

decltype и const ссылочные возвращаемые типы для строк
Дан элемент данных _value в классе, определенный следующим образом: unique_ptr<std::string> _value = nullptr; Следующее не компилируется. auto getValue() const -> const decltype(*_value) & Компилятор возвращает эту...
303 просмотров
schedule 07.04.2022

Проблемы, связанные с const decltype(x)&
Рассмотрим следующий код: int a = 1; const int& b = a; std::cout << std::is_same<const decltype(b)&, const int&>(); Он компилируется на clang 3.5, а GCC 4.9 выдает следующую ошибку: error: 'const' qualifiers cannot...
115 просмотров

Путаница в отношении того, что на самом деле происходит с этим оператором decltype
Поэтому я просматривал http://en.cppreference.com/w/cpp/types/result_of и видел синтаксис для выполнения result_of функции-члена, и я просто не понимаю, что происходит с этим decltype. Почему аргументы идут после decltype? Разве они не важны...
212 просмотров
schedule 07.06.2023