C++ Logo

sg20

Advanced search

Re: [SG20] A draft paper to fix the range-based for loop to make it teachable

From: Giuseppe D'Angelo <giuseppe.dangelo_at_[hidden]>
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,

-- 
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