decltype
У меня возникли проблемы с auto и decltype. void f(const vector<int>& a, vector<float>& b) { typedef decltype(a[0]*b[0]) Tmp; for (int i=0; i < b.size(); ++i) { auto p0 = new auto(a[i]*b[i]); auto p1 = new decltype(a[i]*b[i]); *p0=a[i]*b[i]; *p1=a[i]*b[i...
Посмотрите на код: #include <iostream> #include <utility> class test { private: test() { } public: test foo() { return *this; } static const char *name() { return "test"; } }; int main() { std::cout << decltype(test().foo())::name() << std::endl; // 1...
Есть auto x = initializer; Эквивалентно decltype(initializer) x = initializer; Или decltype((initializer)) x = initializer; Или нет?...
Я не уверен, что полностью понимаю [dcl.type]/4.3: Для выражения e тип, обозначаемый decltype(e), определяется следующим образом: [...] (4.3) в противном случае, если e является непарентизированным id-выражением или непарентизированным доступом к члену класса, decltype(e) является типом сущности...
Следующее наблюдение возникло, когда я следовалэтому вопросу О char[] и char* различиях. #include <iostream> typedef char ar[]; typedef char* pr; void f2(ar x, pr y) { std::cout << std::is_same<decltype(x), decltype(y)>::value << 'n'; std::cout << std::is_same<ar, p...
В c++14 the фразеологизм. как правило, его использование разрешить auto объявления для использования decltype правила по данному выражению. Поиск примеров "хорошего" использования идиомы я могу думать только о таких вещах, как следующее (by Скотт Мейерс), а именно для функция возвращает тип вычитания: t...
мы знаем ,что "переменная const" указывает, что после назначения вы не можете изменить переменную, например: int const i = 1; i = 2; программа выше не будет компилироваться; GCC запрашивает с ошибкой: assignment of read-only variable 'i' нет проблем, я могу понять это, но следующий пример находится за п...
Я нашел такой код: template <typename T, typename T1> auto compose(T a, T1 b) -> decltype(a + b) { return a+b; } Я понял со всеми деталями, которые были новыми для меня, но один. Подскажите пожалуйста, где можно почитать о том, что делает оператор стрелки (->) означает в заголовке функции? ...
как я понял в C++11 decltype(expression) используется для вывода точно такого же типа данного выражения. Но когда выражение заключено в скобки само по себе, то выводит тип ссылка lvalue тип выражения. Например: int x; decltype(x) y = x; эквивалентно int y = x; а, int x; decltype((x)) y = x; эквивалентно...
я нашел код здесь это выглядело примерно так: auto f(T& t, size_t n) -> decltype(t.reserve(n), void()) { .. } во всей документации, которую я читал, мне сказали, что decltype подписан как: decltype( entity ) или decltype( expression ) и нигде нет второго аргумента. По крайней мере, это т...