170 похожих чатов

11 ответов

5 просмотров

нет, оно будет работать как обычный auto&& за исключением одного нюанса в выводе типов - если справа T&& то в результате будет T

Чаво

вообще имо фигня, было б круто иметь дедакт гайды для алиасов и делать remove_rvalue_reference_t x = foo();

feedable
вообще имо фигня, было б круто иметь дедакт гайды ...

это решило* бы проблемы с айгеном, где auto не конвертит експрешшн темплейт в значение

feedable
вообще имо фигня, было б круто иметь дедакт гайды ...

Но не соглашусь что этот частный случай фигня потому что это давняя и фундаментальная проблема которая тянется с самого первого С++98 стандарта. Попробуй найти в этом примере UB #include <cstring> const char* max(const char* a, const char* b) { return std::strcmp(b, a) < 0 ? a : b; } template <typename T> const T& max(const T& a, const T& b, const T& c) { return max(max(a, b), c); } int main() { const char* s1 = "frederic"; const char* s2 = "anica"; const char* s3 = "lucas"; auto m2 = max(s1, s2, s3); } И эту проблему могли бы решить еще в С++11 стандарте (вместе с добавлением rvalue-ссылок) но почему-то не захотели.

Богдан
Но не соглашусь что этот частный случай фигня пото...

ну он фигня потому что он не решает много случаев

feedable
ну он фигня потому что он не решает много случаев

те же експиешшн темплейты точно так же не работают как и не работали

feedable
те же експиешшн темплейты точно так же не работают...

expression templates паттерн? а что за проблема там?

Богдан
expression templates паттерн? а что за проблема та...

auto x = a+make_bar()*b; //попытка использовать x будет всегда провальна тк резкльтат make_bar будет уже удален

feedable
auto x = a+make_bar()*b; //попытка использовать x ...

все потому что x имеет тип експрешшн темплейт, а не результат вычисления експрешшн темплейта

Богдан
Но не соглашусь что этот частный случай фигня пото...

А тут разве не будет warning про возврат ссылки на локальную переменную?

Похожие вопросы

Обсуждают сегодня

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
Слушайте, ещё такая интересная задачка. Сделан аудит действий пользователей через триггеры в базе, соответственно каждый пользователь имеет свой логин и пароль в базе. Это пре...
Сергей Бычков
12
есть тут кто-то , кто только начал изучать си? если проходите курс на степике или как-то сами изучаете, пишите, может, скооперируемся?..
Eule
25
вопрос по москвину - не понимаю вот такого вопроса похоже Сколько разных всегда завершающихся функций с типом a -> a -> b -> a -> a можно реализовать? Две функции одинаково...
Fedor
11
Скажите, тут нет проблемы? IMyInterface1 = interface function GetInterface2: IInterface2; ... function TMyInterface.GetInterface2: IInterface2; begin Result := TI...
Ruslan aka DUDE
18
Утра доброго. Просветите пожалуйста. Хочу сделать rest сервер на делфи. Посмотрел 3 фреймворка: dmvc, Mars, mormot. Ни в одном из них не упоминается ассинхронная обработка вхо...
Сергей Бычков
10
Как попросить stack install делать executable без .exe на винде?
Danila Danko
9
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
возможно для форматирования TimeStampZ нужен другой механизм, не?
Роман Лях (rgreat)
13
Карта сайта