Date: Fri, 13 Nov 2020 22:19:59 +0100
Hi,
Il 13/11/20 09:06, Peter C++ ha scritto:
> FWIW, this is the approach other library functionality should consider to reduce the risk of dangling. either delete the temporary case, or think hard about a non-dangling return type, e.g., by value, if at all. may be we can find a solution to enable such a situation where it is obvious the programmer guarantees the lifetime of the temporary, but I am waiting for an insight, how to approach it.
Isn't it a bit annoying however that the library is in itself
inconsistent -- as_const/operator| on ranges/etc. are blocked for rvalue
overloads, but min/max/get/etc. aren't?
This proposal fixes a major use case, and yet we'll miss forever the
ability of e.g. using
for (auto && elem : getVector() | view::something)
even if now it would actually be 100% safe. (And, unlike as_const,
ranges don't look like can be fixed.)
Thanks,
Il 13/11/20 09:06, Peter C++ ha scritto:
> FWIW, this is the approach other library functionality should consider to reduce the risk of dangling. either delete the temporary case, or think hard about a non-dangling return type, e.g., by value, if at all. may be we can find a solution to enable such a situation where it is obvious the programmer guarantees the lifetime of the temporary, but I am waiting for an insight, how to approach it.
Isn't it a bit annoying however that the library is in itself
inconsistent -- as_const/operator| on ranges/etc. are blocked for rvalue
overloads, but min/max/get/etc. aren't?
This proposal fixes a major use case, and yet we'll miss forever the
ability of e.g. using
for (auto && elem : getVector() | view::something)
even if now it would actually be 100% safe. (And, unlike as_const,
ranges don't look like can be fixed.)
Thanks,
-- Giuseppe D'Angelo | giuseppe.dangelo_at_[hidden] | Senior Software Engineer KDAB (France) S.A.S., a KDAB Group company Tel. France +33 (0)4 90 84 08 53, http://www.kdab.com KDAB - The Qt, C++ and OpenGL Experts
Received on 2020-11-13 15:20:11