Вопросы по теме '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 просмотров
schedule
17.04.2023
Получить возвращаемое значение для параметра лямбда шаблона, как упростить код?
Это мой трюк:
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 просмотров
schedule
27.04.2023
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 просмотров
schedule
12.10.2022
Предоставляет ли `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 просмотров
schedule
16.12.2022
Путаница в отношении того, что на самом деле происходит с этим оператором decltype
Поэтому я просматривал http://en.cppreference.com/w/cpp/types/result_of и видел синтаксис для выполнения result_of функции-члена, и я просто не понимаю, что происходит с этим decltype.
Почему аргументы идут после decltype? Разве они не важны...
212 просмотров
schedule
07.06.2023