Вопросы по теме 'decltype'
Невозможно создать экземпляр шаблона функции, который использует decltype для вывода типа возвращаемого значения, если он вызывается из лямбды?
Я пытаюсь использовать С++ 0x и, в частности, лямбда-выражение и decltype, чтобы упростить часть моего кода, используя компилятор MSVC10 RC.
Я столкнулся со следующей очень странной проблемой:
template <typename F>
auto foo(F f) ->...
1694 просмотров
schedule
26.08.2022
Создание экземпляра определения функции в шаблоне, который использует decltype только в определенных обстоятельствах.
В качестве упражнения в понимании С++ 0x я пытаюсь создать класс С++, который обертывает указатель некоторого шаблонного типа:
template <typename T>
class Wrapper {
T *t;
/* ... */
};
Внутри класса Wrapper я хотел бы показать...
543 просмотров
schedule
28.04.2022
Получить тип возвращаемого значения функции-члена без объекта
У меня есть несколько классов, которые я не могу изменить. У каждого есть конструктор копирования, по крайней мере, еще один конструктор и функция foo() , которая возвращает какое-то значение. Я хочу создать шаблон класса, который может быть...
15131 просмотров
schedule
15.05.2024
Почему CLS () имеет разные значения в C ++ 11
VS2010 частично поддерживает C ++ 11. Я компилирую приведенный ниже код в VS2010 RTM. Я не понимаю, почему код CLS () анализируется по-разному. В строке «decltype (CLS ()) obj1;» CLS () обозначает сущность объекта класса. Но в строке «CLS obj2...
317 просмотров
schedule
10.05.2022
`decltype`: возвращаемый тип функции `T` преобразуется в `T&` для пользовательских типов (VS2010)
РЕДАКТИРОВАТЬ: GCC отлично компилирует, это проблема VS2010. Спасибо, что указали мне на ideone.com!
При попытке скомпилировать следующее (VS2010):
#include <iostream>
template< typename PF01, typename PF02 >
inline auto FCall01(...
321 просмотров
schedule
07.03.2023
sfinae для функции-члена, определенной вне тела класса
Что-то вроде продолжения моего предыдущего вопроса . У меня есть набор функций, которые формируют цепочку зависимостей sfinae (пусть обозначение «A -> B» означает, что существование A зависит от существования B):
S::f_base -> S::f ->...
479 просмотров
schedule
21.01.2023
Можно ли использовать decltype С++ 11 для создания typedef для указателя функции из существующей функции?
Дано
struct A {
int foo(double a, std::string& b) const;
};
Я могу создать указатель функции-члена следующим образом:
typedef int (A::*PFN_FOO)(double, std::string&) const;
Достаточно просто, за исключением того, что...
19931 просмотров
schedule
11.05.2022
Является ли declval‹T›() таким же, как (*(T*)nullptr)?
Является ли declval<T>() просто заменой старого трюка (*(T*)NULL) для получения экземпляра T в decltype, не беспокоясь о конструкторе T?
Вот пример кода:
struct A {};
struct B {
A a;
};
typedef decltype((*(B*)nullptr).a) T1;...
3011 просмотров
schedule
17.03.2023
Синтаксис возвращаемого значения, перегружающий константу, а не константную функцию
У меня проблема с обеспечением правильной перегрузки для константных и неконстантных функций получения с новым синтаксисом возвращаемого значения.
В моем классе PhysicalNode я определил функцию получения с новым синтаксисом возвращаемого...
383 просмотров
schedule
14.11.2022
SFINAE и decltype(авто)
Если шаблон функции возвращает decltype(auto) (или другой спецификатор типа, использующий auto ), но оператор return будет некорректным, получится ли результат SFINAE? Считается ли оператор return непосредственным контекстом сигнатуры функции?...
1199 просмотров
schedule
22.03.2023
Каков тип decltype(this) в C++?
Очевидно, clang считает, что decltype(this) является указателем на класс с указанием cv, в то время как gcc считает, что это константная ссылка на указатель на класс с указанием cv. GCC считает, что decltype(&*this) является указателем на...
7864 просмотров
schedule
04.11.2022
Переопределяет ли заполнитель в завершающем возвращаемом типе начальный заполнитель?
g ++, похоже, принимает любую комбинацию auto и decltype(auto) в качестве начального и конечного типов возврата:
int a;
auto f() { return (a); } // int
auto g() -> auto { return (a); } // int...
369 просмотров
schedule
23.03.2023
Можете ли вы объявить переменную-член с decltype в объектной функции?
struct Example
{
boost::tokenizer<boost::char_separator<char>> tokens;
decltype (tokens.begin()) i;
};
В Visual Studio 2013 я получаю сообщение об ошибке компилятора C2228: слева от «.begin» должен быть class/struct/union....
1157 просмотров
schedule
08.04.2022
Как определить тип возвращаемого значения функции-члена C ++ 11
Я пытаюсь определить возвращаемый тип различных функций-членов C ++. Я понимаю, что для этого можно использовать decltype и std :: declval, но у меня проблемы с синтаксисом и поиском полезных примеров. TestCBClass ниже показывает пример немого...
14728 просмотров
schedule
18.07.2022
получить decltype аргумента шаблона
Я часто хочу получить decltype аргумента шаблона класса, чтобы использовать его в дальнейшем, например, в цикле, который я разделил и упростил, чтобы показать свою проблему:
template <typename T>
class Foo {
public:
T type; //This is my...
9211 просмотров
schedule
26.05.2022
Использование типа, зависящего от лямбда-функции, в качестве возвращаемого типа
Я хочу создать функцию, которая принимает лямбда в качестве параметра и возвращает объект, тип которого зависит от типа возвращаемого значения лямбда-функции. Чего я пытаюсь добиться, так это отсутствия явного параметра шаблона при создании...
872 просмотров
schedule
24.04.2024
decltype() захваченной переменной в лямбда: ошибка GCC и/или ошибка Clang?
Я проверил список ошибок GCC и список ошибок Clang и пока не вижу ничего подходящего.
Эта ссылка на Wandbox показывает некоторый код C++11/C++14, выполняющий decltype(x) и decltype((x)) для различных виды x , захваченные...
345 просмотров
schedule
12.04.2023
При попытке сгенерировать указатель функции на перегруженную функцию с decltype, почему нет способа указать соответствующую перегрузку?
Я экспериментировал с функторами и непреднамеренно обнаружил кое-что в decltype , что показалось мне интересным: насколько я могу судить, нет никакого способа использовать его для генерации указателя на перегруженную функцию или предоставить ему...
357 просмотров
schedule
11.11.2023
Не должен ли decltype запускать компиляцию своего аргумента?
Поэтому я в недоумении, как это работает. Дано:
template <typename T>
int foo(T t) { t.foo(); }
Кажется, что этот вызов должен завершиться ошибкой:
decltype(foo(int{ 13 })) fail = 42;
cout << fail << endl;
Вместо...
538 просмотров
schedule
09.12.2022
Является ли std :: declval ‹void› () допустимым выражением?
Насколько мне известно, я не могу объявить ссылку rvalue на void . В качестве примера приведу неверный код следующего вида:
void f(void &&v) { }
В [20.2.6 / 1] (объявление шаблона функции) у нас есть объявление для declval ,...
548 просмотров
schedule
12.05.2023