220 36651 <959f20d3-0455-951d-70fe-60bf0110cad7@gmail.com> article
Path: news.gmane.org!.POSTED!not-for-mail
From: Oleksandr Pikozh <o.pikozh@gmail.com>
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: Why std::optional has checked and unchecked access,
 but std::variant only checked?
Date: Tue, 16 Jan 2018 08:33:44 +0200
Lines: 35
Approved: news@gmane.org
Message-ID: <959f20d3-0455-951d-70fe-60bf0110cad7@gmail.com>
Reply-To: std-proposals@isocpp.org
NNTP-Posting-Host: blaine.gmane.org
Mime-Version: 1.0
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: quoted-printable
X-Trace: blaine.gmane.org 1516084329 9926 195.159.176.226 (16 Jan 2018 06:32:09 GMT)
X-Complaints-To: usenet@blaine.gmane.org
NNTP-Posting-Date: Tue, 16 Jan 2018 06:32:09 +0000 (UTC)
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101
 Thunderbird/52.5.0
To: std-proposals@isocpp.org
Original-X-From: std-proposals+bncBC3YV4FK7YFRBT5Z63JAKGQEPB5KBGA@isocpp.org Tue Jan 16 07:32:05 2018
Return-path: <std-proposals+bncBC3YV4FK7YFRBT5Z63JAKGQEPB5KBGA@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-lf0-f71.google.com ([209.85.215.71])
	by blaine.gmane.org with esmtp (Exim 4.84_2)
	(envelope-from <std-proposals+bncBC3YV4FK7YFRBT5Z63JAKGQEPB5KBGA@isocpp.org>)
	id 1ebKmj-0001DC-0f
	for gclcip-std-proposals@m.gmane.org; Tue, 16 Jan 2018 07:31:49 +0100
Original-Received: by mail-lf0-f71.google.com with SMTP id r27sf1730140lfi.11
        for <gclcip-std-proposals@m.gmane.org>; Mon, 15 Jan 2018 22:33:53 -0800 (PST)
ARC-Seal: i=2; a=rsa-sha256; t=1516084432; cv=pass;
        d=google.com; s=arc-20160816;
        b=G32IjGshVOTz2sRLE1fMA6y2bl0cwB0G1+hzgq8N6U6q39hqdon4ek2E9Izp2mSvy+
         UlFUdhK9WIBkA7ZEj3hEmwpP4cJm3rkd8YLfhWaaK7LL9MMfkaxV6Ti2WngmpZkgV7Gk
         nuav3xtxZLCHICi86dd1cH5BETWw5fRNYSYhiTs/52cNQSacadcv8AmMlDL3qTQf5UcF
         77KUCQLpRVqUDWLsVy2DMf92OxjRvaNpq2jOAEwmvUCj8uHobvabiPVCivsdXC5XOmX9
         C1Nc6HYbrQzq43CZEbsITeFk9Nn+L6XVk1HtbNmfEKcxXrqiJBLC/tPi/xu+8gZVWKx0
         27QQ==
ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;
        h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post
         :list-id:mailing-list:precedence:reply-to:content-language
         :content-transfer-encoding:mime-version:user-agent:date:message-id
         :subject:from:to:arc-authentication-results:arc-message-signature
         :dkim-signature:arc-authentication-results;
        bh=R7t6yiIHRKFJIaAYwS09z6JH92P2Bms/KxNCtXN7sZA=;
        b=zqyyr+S1zXXRTgXHV7jssCxLiilzrA0Umz200qrlIcHTZ7KMBq0sG0vyfsncw0lS5l
         gI9HUi93PUNWugfwc+Cbb8J9712ZBbgg1i5klzXnxqSGobK9GuBSncY9/dIwBsUUd64m
         kTopkNbkoBgJNdEUXgvAf4sgaySn3el/j1+9F50NcG/Wwv5p4KFavXjzJcxxgZYXsoHt
         2OaOS2QiiwKfmI/3MupT3eu6Yy+scHSyrq75KUXkHRjgzaueNgZxBtz3Z9rp7bYDnpHl
         XZBYJ7E9o/kBGxDOwC0wGlUIvM2QovsVZZW5slaLiZPB6lLzLGu+aNYYilpURpajeTqE
         DY2A==
ARC-Authentication-Results: i=2; mx.google.com;
       dkim=pass header.i=@gmail.com header.s=20161025 header.b=pMRoMBpC;
       spf=pass (google.com: domain of o.pikozh@gmail.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=o.pikozh@gmail.com;
       dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmail.com
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=isocpp-org.20150623.gappssmtp.com; s=20150623;
        h=to:from:subject:message-id:date:user-agent:mime-version
         :content-transfer-encoding:content-language:x-original-sender
         :x-original-authentication-results:reply-to:precedence:mailing-list
         :list-id:list-post:list-help:list-archive:list-subscribe
         :list-unsubscribe;
        bh=R7t6yiIHRKFJIaAYwS09z6JH92P2Bms/KxNCtXN7sZA=;
        b=VcM7XuCrDNdNH3CBxzOjVuGI3ydhTu5MZiJT7q2cNaUMDaZuxp5hYLymzB9Y92WrFM
         g6r+43iVoaz1Q62bG7Z/a/q7XAl5Hlj1DDYQjvDJu8hcb7qrUJpkPx7lveD3B/Ulz148
         Lm9eyGV6wEg4Td7FjA/BVpfoALGV/xUtzlbn2WkSRhaiW03/loRC/B2JSUO96vKLGpjY
         haK6MRUKvu7fa2GsYayoHRm5WtLbHCenb0MLRqiZYvjPhpeMeyyvT8HEngcK7/xAz0gp
         DhfTBfhp+90LDMlIwynE9dQWWXZLlvu97kefNwqQgH0YvWk0XmAEe/vATjZClAj2I1Bj
         0ENw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:to:from:subject:message-id:date:user-agent
         :mime-version:content-transfer-encoding:content-language
         :x-original-sender:x-original-authentication-results:reply-to
         :precedence:mailing-list:list-id:x-spam-checked-in-group:list-post
         :list-help:list-archive:list-subscribe:list-unsubscribe;
        bh=R7t6yiIHRKFJIaAYwS09z6JH92P2Bms/KxNCtXN7sZA=;
        b=a00XuWx0d36v+M27S54JnyM2B0iZ7AmsVwd/J7t3la8K4dLrspjubI8VM7rXNvJANT
         ue9syWfSq66kqHIWCPe/cMyYXhHkgF0nCUx66QO5uaGcTSLc+Zj/dEWgtB2V5G+WIYte
         skfjlwDIy3dAJaxlB1KTP2YIaw8yUi/Mgp4pqu0LEIBwZ3cn1/dp8a1LmCRwpE/5C+6D
         VtEp7meP5AzwiwE/rm6fvb5CFlkn3H/qY7/N/hZ/zc8o+K/1y/pCPs8KkS/hjaAvb3Zb
         bjROGXUUuvq/u8b59fQxYXPGaYdHUDHnlv215RNLeLzuSnujjHdTKbQCVwh5lyvs4fLL
        
X-Gm-Message-State: AKwxytcRngbgOXQgR2M9az6wXCPJEh7i7nU95M4CVrVUoxZWEar0NBDZ
	fJlGlxHW9df879oCIPuvmv+7JA==
X-Google-Smtp-Source: ACJfBovTInxtEt5+C/Iwhw/lC/3H8qqxdnCR5C928aK6JTPnyoUudXmytZdSC2hg+94trOB53Gc4rA==
X-Received: by 10.25.202.77 with SMTP id h13mr432668lfj.21.1516084432820;
        Mon, 15 Jan 2018 22:33:52 -0800 (PST)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 10.46.34.1 with SMTP id i1ls342685lji.14.gmail; Mon, 15 Jan 2018
 22:33:50 -0800 (PST)
X-Received: by 10.46.108.5 with SMTP id h5mr6825279ljc.48.1516084430577;
        Mon, 15 Jan 2018 22:33:50 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; t=1516084430; cv=none;
        d=google.com; s=arc-20160816;
        b=D5rqEFu3+lQB0txMffQs05+r2hrOzknDODfirKd/y5RS3F5rojubi8tWKwzW8H0rqL
         z+BDeL0tXOqB9mpqph1lyffISR/57z9Hc/V/50867PCr3i4AufLN16UpNyRoD0e5BN4q
         Pd8lynY3fEIf8NAYUt8Y+2/o31GlcnrHr1JjS0kuOe4KxwTzMrMxnoMQkNeMkrHhMtly
         4udEUqEgzjIT9EnlwuKFy3qzaxAQRrrOD3ctR/o1IbKLA+Ib+KKIENTGxBmG8a6NfUSg
         vgiMbn46/74YiNdfb93BqZcia3ipZDSfTSjT1f3Yj+yJv7hsp+fZMmivBd1HuQ8JX3Q7
         mTyg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;
        h=content-language:content-transfer-encoding:mime-version:user-agent
         :date:message-id:subject:from:to:dkim-signature
         :arc-authentication-results;
        bh=EhTyraFegxKyFfNlZ8Zs6x4ohs2AULwdQmInzwaeE8E=;
        b=m//o+kIqFoXsKowr5fIu8o7dK5LYV+5j5t8VK71DxWhOpEInEIS0BKbqbUm/5xU4T7
         UOBynXJICMKCypQxkqAPtZGGxVUpQJMF6cr7MpQMSdqlKgkh3YalNx+qcSxHnKVqS1i7
         v8RNbj7pBAbyUlJZWeF8h/c0tL5ERkFfKe3XrwI1ijzFs5iG5DxlC6xJ5ht0pAqwu9R1
         7GfNfEWbXr+YxAM0O1o34Wq36JYIgMY8Pj/oPjkMNF0mv/2pUouKsrpAIzLabIR8jtlH
         T+WveH8Vw0q+ZS/KLj7lDBX/4UDYf8RZkjD9xevrpeA1BukTZF77IfHkpGpBPeXJYkZq
         XE0Q==
ARC-Authentication-Results: i=1; mx.google.com;
       dkim=pass header.i=@gmail.com header.s=20161025 header.b=pMRoMBpC;
       spf=pass (google.com: domain of o.pikozh@gmail.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=o.pikozh@gmail.com;
       dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmail.com
Original-Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41])
        by mx.google.com with SMTPS id d4sor222369ljc.66.2018.01.15.22.33.50
        for <std-proposals@isocpp.org>
        (Google Transport Security);
        Mon, 15 Jan 2018 22:33:50 -0800 (PST)
Received-SPF: pass (google.com: domain of o.pikozh@gmail.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41;
X-Received: by 10.46.99.199 with SMTP id s68mr527589lje.50.1516084430043;
        Mon, 15 Jan 2018 22:33:50 -0800 (PST)
Original-Received: from [192.168.111.156] (neat.armer.volia.net. [93.73.45.89])
        by smtp.gmail.com with ESMTPSA id i15sm228558lfj.4.2018.01.15.22.33.47
        for <std-proposals@isocpp.org>
        (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Mon, 15 Jan 2018 22:33:49 -0800 (PST)
Content-Language: en-US
X-Original-Sender: o.pikozh@gmail.com
X-Original-Authentication-Results: mx.google.com;       dkim=pass
 header.i=@gmail.com header.s=20161025 header.b=pMRoMBpC;       spf=pass
 (google.com: domain of o.pikozh@gmail.com designates 209.85.220.41 as
 permitted sender) smtp.mailfrom=o.pikozh@gmail.com;       dmarc=pass (p=NONE
 sp=NONE dis=NONE) header.from=gmail.com
Precedence: list
Mailing-list: list std-proposals@isocpp.org; contact std-proposals+owners@isocpp.org
List-ID: <std-proposals.isocpp.org>
X-Spam-Checked-In-Group: std-proposals@isocpp.org
X-Google-Group-Id: 399137483710
List-Post: <https://groups.google.com/a/isocpp.org/group/std-proposals/post>, <mailto:std-proposals@isocpp.org>
List-Help: <https://support.google.com/a/isocpp.org/bin/topic.py?topic=25838>, <mailto:std-proposals+help@isocpp.org>
List-Archive: <https://groups.google.com/a/isocpp.org/group/std-proposals/>
List-Subscribe: <https://groups.google.com/a/isocpp.org/group/std-proposals/subscribe>,
 <mailto:std-proposals+subscribe@isocpp.org>
List-Unsubscribe: <mailto:googlegroups-manage+399137483710+unsubscribe@googlegroups.com>,
 <https://groups.google.com/a/isocpp.org/group/std-proposals/subscribe>
Xref: news.gmane.org gmane.comp.lang.c++.isocpp.proposals:36651
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/36651>

In std::optional we have:
- operator* =E2=80=94 doesn't check whether an optional contains a value;
- method value =E2=80=94 throws std::bad_optional_access when an optional=
=20
doesn't contain a value.

In std::vector we have:
- operator[] =E2=80=94 doesn't check whether a vector contains specified in=
dex;
- method at =E2=80=94 throws std::out_of_range when a vector doesn't contai=
n=20
specified index.

In std::variant we have:
- ??? =E2=80=94 doesn't check whether a variant contains specified index/ty=
pe;
- method get =E2=80=94 throws std::bad_variant_access when a variant doesn'=
t=20
contain specified index/type.

Why we don't have any fast (unchecked) ways to access std::variant?=20
Assuming context when user has already checked for presence of required=20
item somehow and now needs the fastest access (i.e. he agrees to get UB=20
when absent).

--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/959f20d3-0455-951d-70fe-60bf0110cad7%40gmail.com=
..

.
