Вопросы по теме 'decltype'
decltype и выражение lvalue
согласно http://en.cppreference.com/w/cpp/language/decltype
struct A {
double x;
};
const A* a = new A();
decltype( a->x ) x3;
соответствует 1 случаю, то есть:
Если аргумент является либо именем объекта / функции без скобок,...
667 просмотров
schedule
12.10.2021
C ++ 11 - Что не так с этим использованием указателя на функцию decltype?
При попытке реализовать класс Delegate с использованием вариативных шаблонов я столкнулся с проблемой, которую не могу решить:
/// --------------------------------------
/// @thanks God
/// Steve Reinalter
/// @author Henri...
2406 просмотров
schedule
17.11.2021
Почему не удается сформировать ссылку на decltype (auto)
int main(){
decltype(auto)&& a = 100;
}
Приведенный выше код, ошибка в GCC и Clang.
int main(){
decltype(int)&& a = 100;
}
Этот код правильный.
In N4296,
В § 8.3.2 / 6
Если typedef (7.1.3), параметр...
426 просмотров
schedule
13.10.2021
'const decltype ((a))' не объявляет ссылку на константу?
Сегодня я видел такой код:
int a = 0;
const decltype((a)) x = 10; // Error
const int b = 0;
decltype ((b)) y = 42; // Correct
Я могу понять, почему правильный код правильный, но я не могу понять, почему неправильный код неверен.
Я...
582 просмотров
schedule
28.10.2021
правильный синтаксис для вывода возвращаемого значения статической функции-члена зависимого типа
Я не могу понять правильный синтаксис для вывода возвращаемого значения статической функции-члена зависимого типа. Я уже пробовал дюжину комбинаций, включая использование :: std :: result_of, и ни одна из них, похоже, не работает. Вот вариант,...
143 просмотров
schedule
20.09.2021
Для приведенного ниже кода я изменил decltype (s1.size ()) на int, и код работал нормально. Является ли decltype (s1.size ()) избыточным в этом контексте?
Я новичок в C ++. Я пытаюсь изучить концепцию decltype. Я видел этот код в сети. Я изменил decltype (s1.size ()) на int, и код работал нормально. Является ли decltype (s1.size ()) избыточным в этом контексте или что-то мне не хватает?
int...
93 просмотров
schedule
10.11.2021
Могу я просто заменить enable_if на decltype
После понимания decltype с двумя аргументами мне интересно, могу ли я просто использовать это вместо enable_if ? Например:
template <typename T>
decltype(T(), declval<bool>()) isConstructable() { return true; }
Успешно с...
648 просмотров
schedule
22.11.2021
Вывести возвращаемый тип функции-члена
В функции шаблона я пытался создать std::vector с его value_type , зависящим от функции-члена параметра шаблона для функции. Этот параметр шаблона ограничен тем, что является вектором, содержащим уникальные указатели определенного типа с...
1158 просмотров
schedule
06.03.2022
Как обойти проблему компилятора Intel C++ с `decltype` и наследованием?
Сегодня я был очень удивлен, обнаружив, что Intel icpc (версия 14.0.2, использующая std=c++0x ) не может скомпилировать следующий фрагмент.
#include <type_traits>
namespace traits_tests {
template<typename>
struct...
478 просмотров
schedule
17.03.2022
Почему я не могу получить логическое значение из value_type, возвращаемого decltype?
Похоже, это visual-studio проблема. Этот код отлично работает в gcc , но не компилируется в Visual Studio:
#include <iostream>
#include <type_traits>
#include <typeinfo>
using namespace std;
true_type foo();
template...
140 просмотров
schedule
31.03.2022
Возможно ли, чтобы параметр шаблона был ссылочным типом?
Я начал изучать C++, и в настоящее время я пытаюсь начать работу с шаблонами, поэтому, пожалуйста, потерпите меня, если моя формулировка не на 100% точна.
Я использую следующую литературу:
Шаблоны C++: полное руководство (2-е издание)...
613 просмотров
schedule
30.03.2022
Рекурсивный возвращаемый тип?
Возможный дубликат: конечный возвращаемый тип с использованием decltype с функцией шаблона с переменным числом аргументов
Я хочу сделать функцию, которая суммирует несколько значений. Если я не использую конечный возвращаемый тип, то...
523 просмотров
schedule
28.04.2022
decltype, рекурсивное выведение типа для перегруженного оператора
Для класса с шаблонами выражений я наткнулся на следующую ошибку при выводе типа возвращаемого значения для перегруженных операторов. Пример ниже иллюстрирует ошибку:
template < typename T >
struct A_Number {
T x;
};
// TAG1
template...
373 просмотров
schedule
13.06.2022
Ссылки Rvalue в условном выражении
typedef decltype(true ? (long&&)0 : (long&&)0) T;
Каким должно быть Т?
Согласно gcc (4.7), это long . Судя по лязгу (багажник), это long&& . Это различие приводит к тому, что clang не может скомпилировать код,...
262 просмотров
schedule
05.07.2022
Просветительское использование C++11 decltype
Я только что видел этот действительно хороший доклад Rock Hard: C++ Evolving , Борис Джабес. В разделе доклада, посвященном Универсальному программированию более высокого порядка , он говорит, что ниже приведен пример функции, которая является...
8711 просмотров
schedule
26.07.2022
Использование decltype C++ с перегруженным оператором ++ (преинкремент)
Для некоторого имени типа шаблона я хочу создать typedef, который является объявленным возвращаемым типом T::operator++() (он же оператор преинкремента T).
Я не нашел ничего определенного в Интернете, хотя, безусловно, есть некоторые упоминания о...
801 просмотров
schedule
28.07.2022
Каков тип именованной ссылки rvalue?
Рассмотрим следующий код:
int&& x = 42;
static_assert(std::is_same<decltype( x ), int&&>::value, "&&");
static_assert(std::is_same<decltype((x)), int& >::value, "&" );
Итак, что такое тип x ? Это...
614 просмотров
schedule
30.07.2022
Почему decltype(auto) возвращает здесь ссылку?
Я думаю (думал), что понимаю auto . То же самое о decltype . Однако в C++14 в качестве типа возвращаемого значения функции может быть какая-то дьявольская штука вроде decltype(auto) . Рассмотрим следующее:
decltype(auto) foo()
{
int m =...
4394 просмотров
schedule
02.08.2022
Xcode: ошибка: ожидается '(' для приведения или построения типа в стиле функций
У меня есть эта ошибка при попытке скомпилировать следующий код с помощью xcode. Он без проблем компилируется Visual Studio в Windows.
template <typename OutT, typename MayaArrayT>
void DumpMayaArray(std::vector<OutT>& out, const...
186 просмотров
schedule
31.07.2022
деструктор, вызываемый до временного, должен быть вне области видимости
У меня есть небольшой код, который не работает под VS2015, но работает под GCC. Я почти уверен, что ошибка связана с Visual Studio, но хочу быть уверенным, что я правильно понимаю decltype (auto).
#include <iostream>
using namespace std;...
299 просмотров
schedule
14.08.2022