Вопросы по теме '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 просмотров

Почему не удается сформировать ссылку на 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 просмотров

Возможно ли, чтобы параметр шаблона был ссылочным типом?
Я начал изучать C++, и в настоящее время я пытаюсь начать работу с шаблонами, поэтому, пожалуйста, потерпите меня, если моя формулировка не на 100% точна. Я использую следующую литературу: Шаблоны C++: полное руководство (2-е издание)...
613 просмотров

Рекурсивный возвращаемый тип?
Возможный дубликат: конечный возвращаемый тип с использованием decltype с функцией шаблона с переменным числом аргументов Я хочу сделать функцию, которая суммирует несколько значений. Если я не использую конечный возвращаемый тип, то...
523 просмотров
schedule 28.04.2022

decltype, рекурсивное выведение типа для перегруженного оператора
Для класса с шаблонами выражений я наткнулся на следующую ошибку при выводе типа возвращаемого значения для перегруженных операторов. Пример ниже иллюстрирует ошибку: template < typename T > struct A_Number { T x; }; // TAG1 template...
373 просмотров

Ссылки 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