3
ответа

decltype и круглые скобки

Я не понимаю последнюю строку примера на странице 148 FCD (§7.6.1.2/4): константа int&& нечто (); интервал i; структура {удваивает x;}; константа* = новый (); decltype (нечто ()) x1 = я;//...
вопрос задан: 8 June 2014 19:40
2
ответа

Не мог инстанцировать шаблонов функций, который использует decltype для выведения типа возврата, если названо из лямбды?

Я пытаюсь использовать C++ 0x, и в особенности лямбда-выражение и decltype для упрощения части моего кода, с помощью компилятора MSVC10 RC. Я столкнулся со следующей очень нечетной проблемой: шаблон <...
вопрос задан: 5 March 2010 14:19
1
ответ

Различие между станд.:: result_of и decltype

Я испытываю некоторые затруднения при понимании потребности в станд.:: result_of в C++ 0x. Если я понял правильно, result_of используется для получения получающегося типа вызова функционального объекта с определенными типами...
вопрос задан: 22 October 2010 07:41
0
ответов

Получение правильного value_type

В моем классе есть член: std :: vector memory_; Теперь я хотел бы, чтобы fnc возвращал то, что находится в первом элементе памяти, но я не хочу указывать std :: string в качестве возврата ...
вопрос задан: 21 October 2018 22:57
0
ответов

Какие выражения дают ссылочный тип, когда к ним применяется decltype?

Я читал C ++ Primer и не мог понять, когда выражение дает тип объекта и когда оно дает ссылочный тип для объекта. Я цитирую из книги: Когда мы подаем заявку ...
вопрос задан: 31 August 2017 11:35
0
ответов

Что такое тип именованной ссылки на rvalue?

Рассмотрим следующий код: int && x = 42; static_assert (std :: is_same :: value, "&&"); static_assert (std :: is_same :: ...
вопрос задан: 23 May 2017 12:16
0
ответов

Как тип выводится из типа автоматического возврата?

В этом ответе есть фрагмент кода, подобный этому :template auto f (std ::vector v, F fun)-> decltype (bool (fun (v[0])), пустота()) { //... } Он действительно компилируется и...
вопрос задан: 23 May 2017 12:03
0
ответов

Ошибка при использовании decltype() в C++11 (создание непрозрачного сообщения об ошибке в gcc 4.7.0)

со следующим кодом (сокращенная версия моего исходный код) #include #include template class A; // редактируем 1 после Mark &...
вопрос задан: 23 May 2017 12:03
0
ответов

What is decltype(0 + 0)?

(Prompted by an answer.) Given N3290, §7.1.6.2p4, where the list items are unnumbered, but numbered here for our convenience: The type denoted by decltype(e) is defined as follows: if e is ...
вопрос задан: 23 May 2017 10:29
0
ответов

Почему std :: remove_const не удаляет спецификатор const?

Обратите внимание, что я использую std :: thread только для того, чтобы получить читаемые типы ошибок: int main () {const int * first; использование deref = decltype (* сначала); std :: thread s = std :: remove_const :: type {} ...
вопрос задан: 5 May 2017 01:05
0
ответов

Получить тип возвращаемого значения функции-члена без объекта

У меня есть несколько классов, которые я не могу изменить . У каждого есть конструктор копирования, по крайней мере, еще один конструктор и функция foo (), которая возвращает некоторое значение. Я хочу создать шаблон класса, который может ...
вопрос задан: 19 December 2016 17:43
0
ответов

Что такое decltype и как он используется?

Я не смог найти хорошее объяснение decltype. Пожалуйста, скажите мне, как начинающему программисту, что он делает и почему это полезно. Например, я читаю книгу, в которой задано следующее ...
вопрос задан: 2 February 2016 05:12
0
ответов

Получить decltype функции

Я хочу получить тип функции и создать ее std :: vector. Например, у меня есть int foo (int a [], int n) {return 1; } int bar (int a [], int n) {return 2; } и вектор функций вроде ...
вопрос задан: 1 October 2015 14:03
0
ответов

Связь между auto и decltype

Является ли auto x = initializer; эквивалент decltype (инициализатор) x = инициализатор; или decltype ((инициализатор)) x = инициализатор; или ни то, ни другое?
вопрос задан: 15 August 2015 06:08
0
ответов

Поведение decltype

Допустим, у меня есть объект некоторых классов контейнеров stl obj. Я могу определить другой объект того же типа следующим образом: decltype (obj) obj2; Но я не могу объявить итератор для контейнера таким образом: decltype (obj) ...
вопрос задан: 11 February 2015 12:10
0
ответов

Можно ли использовать C ++ 11 decltype для создания typedef для указателя на функцию из существующей функции?

Данная структура A {int foo (double a, std :: string & amp; b) const; }; Я могу создать указатель на функцию-член следующим образом: typedef int (A :: * PFN_FOO) (double, std :: string & amp;) const; Достаточно просто, ...
вопрос задан: 26 October 2012 15:00
0
ответов

Decltype за возврат функции

Я делаю шаблонный класс, который является оболочкой для любого итератора. Я делаю оператор * таким образом: template class MyIterator { public: // ... decltype (* T ()) operator * () ...
вопрос задан: 29 September 2012 03:14
0
ответов

сравнение типов

Есть ли способ сравнить результат decltype в С++ 11? Другими словами, почему этот код недействителен :template void func (T& t, U& u ){ if (decltype (t )==...
вопрос задан: 8 August 2012 16:32
0
ответов

Использование указателя this внутри decltype

Пример (отлично компилируется) struct A { недействительным f () {}; auto g() -> decltype(f()) {} }; Вопрос Если я добавлю указатель this внутрь decltype (т.е. decltype(this->f())), я получу следующее...
вопрос задан: 19 June 2012 11:04
0
ответов

Тип возврата функции шаблона

Информация: В настоящее время я пытаюсь изучить метапрограммирование шаблонов (следуя этой книге). Один полезный пример, который они приводят, касается размерного анализа. Я реализовал это как в книге, и все было...
вопрос задан: 19 June 2012 09:07
0
ответов

разница между auto и decltype в c++0x

У меня проблемы с auto и decltype. void f(const vector& a, vector& b) { typedef decltype(a[0]*b[0]) Tmp; for (int i=0; i < b.size(); ++i) { ...
вопрос задан: 7 June 2012 15:36
0
ответов

Почему нельзя использовать decltype для закрытых переменных-членов?

Предположим, у меня есть такой класс: class Foo { std::vector бар; public: std::vector& get_bar() { return bar; } }; а позже мне нужна еще одна переменная где-то еще...
вопрос задан: 7 June 2012 00:37
0
ответов

Почему следующий код компилируется с помощью MSVC++?

структура X{}; шаблон<класс T> decltype(X() == int()) f(T const&){ return true; } int main(void) { X x; е(х); } Почему, только почему? Нигде не определен оператор ==! Я очень хочу...
вопрос задан: 22 May 2012 03:01
0
ответов

Можно ли в C++11 получить тип указателя члена в шаблоне?

Я знаю, что это было невозможно в C++03, но я надеюсь, что есть какое-то новое вуду, позволяющее мне это сделать. См. ниже: шаблон <класс T> структура связующего { template
вопрос задан: 17 May 2012 21:22
0
ответов

decltype для функций-членов

Как получить возвращаемый тип функции-члена в следующем примере? шаблон <геттер имени типа> class MyClass { typedef decltype (mygetter.get()) got_t; ... }; Проблема, связанная с...
вопрос задан: 13 April 2012 17:42
0
ответов

Почему класс не может наследовать от результата decltype?

Почему класс не может иметь тип decl в списке наследования? Например, я ожидал бы, что следующий код будет наследовать A от RType, но в G ++ 4.6.1 (с использованием -std = c ++ 0x) это не так ...
вопрос задан: 21 February 2012 08:56
0
ответов

decltype (function) как член класса

У меня есть: int foo (int x) {вернуть x + 1; } struct Bar {decltype (foo) оператор (); }; int main () {Бар бар; printf ("% d \ n", бар (6)); } что приводит к слегка пугающему сообщению об ошибке компилятора ...
вопрос задан: 17 February 2012 10:43
0
ответов

decltype и оператор области в C ++

Мне нужно получить тип, который был предоставлен при создании экземпляра шаблона. Рассмотрим следующий пример: template struct Foo {typedef T TUnderlying; }; static Foo ...
вопрос задан: 15 February 2012 10:25
0
ответов

C ++ 11 лямбда в decltype

Для следующего кода: auto F (int count) - > decltype ([] (int m) {return 0;}) {return [] (int m) {return 0; }; ...
вопрос задан: 15 February 2012 08:43
0
ответов

Perfect forwarding

Если у нас есть следующее: template struct B {T data; } struct A {int data_array [100]; } int main () {A x; const A x_const; авто y1 = f (A ()); авто y2 = f (x); auto y3 = ...
вопрос задан: 9 February 2012 23:42