220 41575 <77ca6c91-e1d6-4410-898d-b880b5af27d7@isocpp.org> article
Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail
From: Artem Golubikhin <wpmgprostotema@gmail.com>
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: Re: operator[]= (array subscript assignment operator)
Date: Sun, 17 Mar 2019 16:08:28 -0700 (PDT)
Approved: news@gmane.org
Message-ID: <77ca6c91-e1d6-4410-898d-b880b5af27d7@isocpp.org>
References: <39460c2e-f24c-4819-8678-267387948e69@isocpp.org>
 <6a65b6a7-5fc2-415f-be8e-fbeaae76e20f@isocpp.org>
 <0ab12cb5-2b8e-47f2-b123-c3a54c832696@isocpp.org>
Reply-To: std-proposals@isocpp.org
Mime-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_1280_1662110632.1552864108608"
Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226";
	logging-data="251773"; mail-complaints-to="usenet@blaine.gmane.org"
Cc: wpmgprostotema@gmail.com
To: ISO C++ Standard - Future Proposals <std-proposals@isocpp.org>
Original-X-From: std-proposals+bncBDC4PXOG5IMRB3VGXPSAKGQED6X2ROQ@isocpp.org Mon Mar 18 00:08:33 2019
Return-path: <std-proposals+bncBDC4PXOG5IMRB3VGXPSAKGQED6X2ROQ@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-yw1-f69.google.com ([209.85.161.69])
	by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
	(Exim 4.89)
	(envelope-from <std-proposals+bncBDC4PXOG5IMRB3VGXPSAKGQED6X2ROQ@isocpp.org>)
	id 1h5etN-0013NJ-1k
	for gclcip-std-proposals@m.gmane.org; Mon, 18 Mar 2019 00:08:33 +0100
Original-Received: by mail-yw1-f69.google.com with SMTP id p73sf10108699ywp.0
        for <gclcip-std-proposals@m.gmane.org>; Sun, 17 Mar 2019 16:08:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=isocpp-org.20150623.gappssmtp.com; s=20150623;
        h=date:from:to:cc:message-id:in-reply-to:references:subject
         :mime-version:x-original-sender:reply-to:precedence:mailing-list
         :list-id:list-post:list-help:list-archive:list-subscribe
         :list-unsubscribe;
        bh=qrl7GNNyJ65uFhX3aoaBEtUgRUAVpHkPEjuJdbWtWgM=;
        b=iRXArYpxsc1+lPUKxYm/lHTEaae0qQdK/jAGMCswSrMcHAE0mJTZ5g/sECaYbuUBOX
         jz0ePApVpPXkv5WLtSAdyeX3r01GPWBJXMqtYsTn+hNAYBsOngbdBwxL2IFxDl0AgRuo
         DUgnsO6/30jP9UiAdrB3H0g1YVVBY2HPAGqK/mtFzSn5L3Cl+YraBxmTj5SPukTLzpl+
         hS/k2yB2rmCVId8/McYU3pI6hHa+D85ixs3+/dG//oZ3Di1hUn9TwbWyyiBunLNs83mO
         qDL2nKXuxDLMKnLTDwUvFo4cyBeLc+nAfqq840/g/ttHnqlhQVSVa/S7oBTXfOPUIWsP
         zTTw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=date:from:to:cc:message-id:in-reply-to:references:subject
         :mime-version:x-original-sender:reply-to:precedence:mailing-list
         :list-id:list-post:list-help:list-archive:list-subscribe
         :list-unsubscribe;
        bh=qrl7GNNyJ65uFhX3aoaBEtUgRUAVpHkPEjuJdbWtWgM=;
        b=RWHuxDpeDBpxOA1Ad1ELyBH8tWrtNA8ZlaJhpaEs/97v2qMVJ0Dkqr8hb118xdSkQw
         Ttr/xs0/IBGnMqBESY1XbMLsVXVVUa8uFjlezICkuIqQ8uPIL5VX2lOyjNkKLsO/c7MR
         Fa/ogO5jLXqh8DJUrxNcDJpB3nrvovVNiqE2P0gU2H3d8iWHp/tASRwgJJg8mc+apY+d
         jAX5xc24idopqEKESZWLNtbf3iOBCax0mfYtrV5XsekUHlthym9oBZxTKgRMorsLpMSF
         dXjfFosSKaT180CR2c42y+yJHM9rNHsbKXFBQhNmMty0nWCiTvm+dsNfhqVQOtFbnKoS
         D7qg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:date:from:to:cc:message-id:in-reply-to
         :references:subject:mime-version:x-original-sender:reply-to
         :precedence:mailing-list:list-id:x-spam-checked-in-group:list-post
         :list-help:list-archive:list-subscribe:list-unsubscribe;
        bh=qrl7GNNyJ65uFhX3aoaBEtUgRUAVpHkPEjuJdbWtWgM=;
        b=tgJTybaK6xU7YEgUq0qynZdZOg+w8utzzDWFiU64EjBPrUsTYrBVoAvvewaK7SgBYY
         AJ8ItyVvTcl1OYJh30KlDTYeRRjGk8tz/2n1adunhmEY4U/Fd4ZsuVGLMx2kJ9qi36sw
         ayw2GZT1MGqtdurP0G9oaxkZ2p3NhS1jFKy5kJlxfw7ZDb7ORcs/lB4Is+1fNImGeGfN
         frRgJfykXT/LGKqUTgtuy56UGR3OIGx2FSXrSFlk8pkyMvIn8UO+1urJuDgL0fIvau5C
         GWoCDMEGRHhnaueWEj8kIlit27Wrg0HXoba2Y6gcQ3eeoPE+NXww9d7S6h4Ewmv0HgDx
         KKIQ==
X-Gm-Message-State: APjAAAVrOhxguxkwm3y16P6w6ZFO84lrBr1ETOYPwnMHKOXLYmtnmTta
	ZmelfbF9dCvvcyy6jaqr6St7Dg==
X-Google-Smtp-Source: APXvYqyZuJNIYgslfW3OziJ2hxRzW/6vgV9yVHSIUneq5aYkP/NLG3VNiSc73krz/Qd1CJPwOWBsJw==
X-Received: by 2002:a81:1b4d:: with SMTP id b74mr7743351ywb.2.1552864111545;
        Sun, 17 Mar 2019 16:08:31 -0700 (PDT)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 2002:a81:570a:: with SMTP id l10ls3632762ywb.8.gmail; Sun, 17 Mar
 2019 16:08:29 -0700 (PDT)
X-Received: by 2002:a81:2e88:: with SMTP id u130mr11255690ywu.98.1552864109460;
        Sun, 17 Mar 2019 16:08:29 -0700 (PDT)
In-Reply-To: <0ab12cb5-2b8e-47f2-b123-c3a54c832696@isocpp.org>
X-Original-Sender: wpmgprostotema@gmail.com
Precedence: list
Mailing-list: list std-proposals@isocpp.org; contact std-proposals+owners@isocpp.org
List-ID: <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:41575
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/41575>

------=_Part_1280_1662110632.1552864108608
Content-Type: multipart/alternative; 
	boundary="----=_Part_1281_1670503988.1552864108608"

------=_Part_1281_1670503988.1552864108608
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: base64

T24gU2F0dXJkYXksIDE2LjAzLjIwMTkg0LMuLCAxNjozNzozMyBVVEMrMyBOaWNvbCBCb2xhcyB3
cm90ZToNCj4NCj4gT24gU2F0dXJkYXksIE1hcmNoIDE2LCAyMDE5IGF0IDM6NDg6NTAgQU0gVVRD
LTQsIHdwbWdwcm8uLi5AZ21haWwuY29tIA0KPiB3cm90ZToNCj4+DQo+PiBhbmQgYCppdCsrID0g
Zm9vO2ANCj4+Pg0KPj4NCj4+IEkgdG90YWxseSBtaXNzZWQgaXQuIEl0IGlzIHJlYWxseSBoYXJk
IHRvIGZpbmQgYSBnZW5lcmFsIHNvbHV0aW9uIHdpdGggDQo+PiB0aGlzIHRocmVlLW9wZXJhdG9y
IGNhc2UuLi4gDQo+Pg0KPg0KPiBJdCdzIHN0aWxsIGEgMiBvcGVyYXRvciBjYXNlLiBUaGUgKysg
aXMgZXZhbHVhdGVkIGJlZm9yZSB0aGUgYCpgIGFuZCB0aGUgDQo+IGA9YC4gSXQncyBubyBkaWZm
ZXJlbnQgZnJvbSBgKnNvbWVfZnVuYygpID0gZm9vO2AsIG9yIGBzb21lX2Z1bmMoKVsxMF0gPSAN
Cj4gZm9vO2AuIEl0J3MgYWxsIGFib3V0IHJlY29nbml6aW5nIHRoZSBzZXF1ZW5jZSBvZiBldmFs
dWF0aW5nIGEgbGVmdC1oYW5kIA0KPiBgKmAgb3IgYFtdYCBmb2xsb3dlZCBieSBhbiBgPWAgZXZh
bHVhdGlvbi4NCj4NCg0KU29ycnksIEkgbWlzdW5kZXJzdG9vZCB5b3UuIEkgdGhvdWdodCB0aGVy
ZSBpcyBhIG5lZWQgaW4gb3ZlcnJpZGluZyANCmJlaGF2aW9yIGZvciBgKml0KysgPSBmb287YCAo
dHVybmluZyB0aHJlZSBvcHMgaW50byBhIHNpbmdsZSBmdW5jdGlvbiBjYWxsKSANCmNhc2UgdG9v
Lg0KDQpBzLZizLZvzLZ1zLZ0zLYgzLZzzLZ5zLZuzLZ0zLZhzLZ4zLYszLYgzLZhzLZuzLZvzLZ0
zLZozLZlzLZyzLYgzLZpzLZkzLZlzLZhzLYgzLZjzLZvzLZtzLZlzLYgzLZ0zLZvzLYgzLZtzLZ5
zLYgDQrMtm3MtmnMtm7MtmTMtjrMtiDMtnfMtmXMtiDMtmPMtmHMtm7MtiDMtmnMtm7MtnTMtnLM
tm/MtmTMtnXMtmPMtmXMtiDMtm7MtmXMtnfMtiANCsy2Y8y2b8y2bsy2dMy2Zcy2eMy2dMy2Lcy2
c8y2Zcy2bsy2c8y2acy2dMy2acy2dsy2Zcy2IMy2a8y2Zcy2ecy2d8y2b8y2csy2ZMy2IMy2YMy2
Ycy2Y8y2Y8y2Zcy2c8y2c8y2YMy2IA0KzLYozLZvzLZyzLYgzLZtzLZhzLZ5zLZizLZlzLYgzLZg
zLZhzLZjzLZjzLZlzLZzzLZzzLZvzLZwzLZgzLYszLYgzLZgzLZhzLZjzLZjzLZlzLZzzLZzzLZv
zLZwzLZlzLZyzLZgzLYszLYgDQrMtmDMtmHMtmPMtmPMtmXMtnPMtnPMtl/Mtm/MtnDMtmXMtnLM
tmHMtnTMtm/MtnLMtmDMtinMtizMtiDMtnPMtm/MtiDMtmnMtm7MtnPMtnTMtmXMtmHMtmTMtiDM
tm/MtmbMtiANCsy2YMy2b8y2cMy2Zcy2csy2Ycy2dMy2b8y2csy2W8y2Xcy2IMy2b8y2cMy2Zcy2
csy2Ycy2dMy2b8y2csy2Pcy2YMy2IMy2acy2dMy2IMy2d8y2acy2bMy2bMy2IMy2Ysy2Zcy2IA0K
zLZgzLZvzLZwzLZlzLZyzLZhzLZ0zLZvzLZyzLY9zLYgzLZhzLZjzLZjzLZlzLZzzLZzzLZbzLZd
zLZgzLYuzLYgzLZIzLZtzLYszLYgzLZvzLZyzLYgzLZ0zLZozLZlzLYgDQrMtmvMtmXMtnnMtnfM
tm/MtnLMtmTMtiDMtmPMtmHMtm7MtiDMtmLMtmXMtiDMtmDMtmHMtnPMtnPMtmnMtmfMtm7Mtm3M
tmXMtm7MtnTMtmDMtiDMtmHMtm7MtmTMtiDMtnTMtmjMtmXMtiANCsy2bsy2Ycy2bcy2Zcy2IMy2
b8y2Zsy2IMy2b8y2cMy2Zcy2csy2Ycy2dMy2b8y2csy2IMy2d8y2acy2bMy2bMy2IMy2Ysy2Zcy2
IMy2YMy2b8y2cMy2Zcy2csy2Ycy2dMy2b8y2csy2W8y2Xcy2IA0KzLZhzLZzzLZzzLZpzLZnzLZu
zLZtzLZlzLZuzLZ0zLY9zLZgzLYuzLYgzLZPzLZyzLYgzLZtzLZhzLZ5zLZizLZlzLYgzLZlzLZ2
zLZlzLZuzLYgzLZgzLZvzLZwzLZlzLZyzLZhzLZ0zLZvzLZyzLYgDQrMtmHMtmPMtmPMtmXMtnPM
tnPMtl/Mtm/MtnDMtmXMtnLMtmHMtnTMtm/MtnLMtlvMtl3MtiANCsy2Ycy2c8y2c8y2acy2Z8y2
bsy2bcy2Zcy2bsy2dMy2X8y2b8y2cMy2Zcy2csy2Ycy2dMy2b8y2csy2Pcy2YMy2IMy2KMy2aMy2
b8y2d8y2Zcy2dsy2Zcy2csy2IMy2K8y2K8y2IMy2Ycy2bsy2ZMy2IA0KzLYtzLYtzLYgzLZkzLZv
zLZuzLYnzLZ0zLYgzLZmzLZpzLZ0zLYgzLZnzLZvzLZvzLZkzLYgzLZ3zLZpzLZ0zLZozLYgDQrM
tmDMtmHMtnPMtnPMtmnMtmfMtm7Mtm3MtmXMtm7MtnTMtl/Mtm/MtnDMtmXMtnLMtmHMtnTMtm/M
tnLMtmDMtiDMtnDMtmjMtnLMtmHMtnPMtmXMtinMti7Mtg0KDQpPbiBTdW5kYXksIDE3LjAzLjIw
MTkg0LMuLCAxNjoyNzowNCBVVEMrMyBWaW5uaWUgRmFsY28gd3JvdGU6DQo+DQo+DQo+IE9uIEZy
aWRheSwgTWFyY2ggMTUsIDIwMTkgYXQgODozMzoyMCBBTSBVVEMtNywgTmljb2wgQm9sYXMgd3Jv
dGU6DQo+Pg0KPj4gRXNwZWNpYWxseSBzaW5jZSB0aGUgb2J2aW91cyBgb3BlcmF0b3IqPWAgaXMg
YWxyZWFkeSB0YWtlbiA7KQ0KPj4NCj4NCj4gQSBzdHJhaWdodGZvcndhcmQgc29sdXRpb24gaXMg
dG8gaW50cm9kdWNlIGEgc3RkIHRhZyB0eXBlOg0KPg0KPg0KPiAgICAgVCYgb3BlcmF0b3IqPShz
dGQ6Om9wX2Fzc2lnbl9lcXVhbCwgLi4uKTsNCj4NCj4gUmVnYXJkcw0KPiBWaW5uaWUNCj4NCg0K
VGhhdCBpcyBhIG5pY2UgaWRlYS4gVGhvdWdoIEkgdGhpbmsgaXQgc2hvdWxkIGJlIHVzZWQgYW5v
dGhlciB3YXksIHNvIG5vIA0KYW55IG5ldyBzeW50YXggbGlrZSBgb3BlcmF0b3JbXT1gIGlzIGlu
dHJvZHVjZWQ6DQovLyAqYSA9IHg7DQpUJiBvcGVyYXRvciooc3RkOjpvcF9zaW1wbGVfYXNzaWdu
bWVudF90LCAuLi4pIHsgLyogLi4uICovIH0NCg0KLy8gYVtrXSA9IHY7DQpUJiBvcGVyYXRvcltd
KHN0ZDo6b3Bfc2ltcGxlX2Fzc2lnbm1lbnRfdCwgLi4uKSB7IC8qIC4uLiAqLyB9DQoNCi8vIGFb
aV0rKzsNClQgb3BlcmF0b3JbXShzdGQ6Om9wX3Bvc3RfaW5jcmVtZW50X3QsIC4uLikgeyAvKiAu
Li4gKi8gfQ0KDQovLyBhW2ldIHw9IHg7DQpUJiBvcGVyYXRvcltdKHN0ZDo6b3BfYml0d2lzZV9v
cl9hc3NpZ25tZW50X3QsIC4uLikgeyAvKiAuLi4gKi8gfQ0KDQpPbiBTdW5kYXksIDE3LjAzLjIw
MTkg0LMuLCAxMjo0MjoyNyBVVEMrMyBGYXJpZCBNZWhyYWJpIHdyb3RlOg0KPg0KPiBFdmVuIG1v
cmUgZ2VuZXJhbCBjb3VsZCBiZSB0byBvdmVybG9hZCBhIGNvbXBsZXggZXhwcmVzc2lvbiB3aGlj
aCAgaXMgDQo+IGN1cnJlbnRseSBvbmx5IHBvc3NpYmxlIHZpYSBleHByZXNzaW9uIHRlbXBsYXRl
cyBhbmQgbGF6eSBldmFsdWF0aW9uIA0KPiB0ZWNobmljcy4gT25lIG1pZ2h0IHRyeSB0byB1c2Ug
b3BlcmF0b3Igb3ZlcmxvYWRpbmcgaW4gYSBtYXRyaXggY2FjdWxhdGlvbiANCj4gbGlicmFyeToN
Cj4NCj4gbWF0cml4IGEsYixjLGQ7DQo+IC8vLi4uDQo+IGE9YitjKmQ7Ly8gY2FuIEkgb3Zlcmxv
YWQgdGhpcyB0b28/DQo+DQo+IHJlZ2FyZHMsDQo+IEZNDQo+DQoNCkkgdGhpbmsgaXQgaXMgbm90
IGZvciB0aGlzIHByb3Bvc2FsLiBUaGlzIHByb3Bvc2FsIHNob3VsZCBjb3ZlciBvbmx5IHNpbXBs
ZSANCmFjY2Vzcy1hbmQtbW9kaWZ5IG9wZXJhdGlvbnMgZm9yIGNvbnRhaW5lcnMgYW5kIGl0ZXJh
dG9ycyBhcyBmb3IgbWUuIEkgd2FudCANCnRvIGxlYXZlIHRoZSBwcm9wb3NlZCBpZGVhIGFzIHNp
bXBsZSBhcyBpdCBjYW4gYmUsIGJ1dCBvZiBjb3Vyc2Ugd2l0aG91dCANCmJyZWFraW5nIGZvcndh
cmQgY29tcGF0aWJpbGl0eSBmb3IgdGhlIHBvc3NpYmxlIG1vcmUgY29tcGxleCBjb21wb3NpdGUg
DQpvcGVyYXRvcnMgcHJvcG9zYWwgaW4gdGhlIGZ1dHVyZS4NCg0KDQoNCkFsc28gSSByZWFsaXpl
ZCB0aGF0IHRoZSBwcm9wb3NlZCBmZWF0dXJlIGRvZXNuJ3QgY292ZXIgdGhlIGZ1bGwgDQpmdW5j
dGlvbmFsaXR5IG9mIGBzdGQ6OmJpdHNldGAvYHN0ZDo6dmVjdG9yPGJvb2w+YCByZWZlcmVuY2Ug
cHJveGllcy4gVGhlcmUgDQppcyBgZmxpcGAgbWVtYmVyIGZ1bmN0aW9uIGluIGJvb2wgKGJpdCkg
cmVmZXJlbmNlIHByb3hpZXMsIGluc3RlYWQgd2UgY2FuIA0KZG8gYGJpdHNbaV0gXj0gdHJ1ZTtg
LCBidXQgYGJpdHNbaV0uZmxpcCgpO2AgbG9va3MgbW9yZSByZWFkYWJsZS4gVGhvdWdoIA0KYGJp
dHNbaV0gPSAhYml0c1tpXTtgIGxvb2tzIHJlYWRhYmxlIHRvbyBob3dldmVyIGl0IGRvZXNuJ3Qg
bG9vayBEUlkuDQoNCi0tIApZb3UgcmVjZWl2ZWQgdGhpcyBtZXNzYWdlIGJlY2F1c2UgeW91IGFy
ZSBzdWJzY3JpYmVkIHRvIHRoZSBHb29nbGUgR3JvdXBzICJJU08gQysrIFN0YW5kYXJkIC0gRnV0
dXJlIFByb3Bvc2FscyIgZ3JvdXAuClRvIHVuc3Vic2NyaWJlIGZyb20gdGhpcyBncm91cCBhbmQg
c3RvcCByZWNlaXZpbmcgZW1haWxzIGZyb20gaXQsIHNlbmQgYW4gZW1haWwgdG8gc3RkLXByb3Bv
c2Fscyt1bnN1YnNjcmliZUBpc29jcHAub3JnLgpUbyBwb3N0IHRvIHRoaXMgZ3JvdXAsIHNlbmQg
ZW1haWwgdG8gc3RkLXByb3Bvc2Fsc0Bpc29jcHAub3JnLgpUbyB2aWV3IHRoaXMgZGlzY3Vzc2lv
biBvbiB0aGUgd2ViIHZpc2l0IGh0dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20vYS9pc29jcHAub3Jn
L2QvbXNnaWQvc3RkLXByb3Bvc2Fscy83N2NhNmM5MS1lMWQ2LTQ0MTAtODk4ZC1iODgwYjVhZjI3
ZDclNDBpc29jcHAub3JnLgo=
------=_Part_1281_1670503988.1552864108608
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">On Saturday, 16.03.2019 =D0=B3., 16:37:33 UTC+3 Nicol Bola=
s wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0=
..8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr">On Sa=
turday, March 16, 2019 at 3:48:50 AM UTC-4, <a>wpmgpro...@gmail.com</a> wro=
te:<blockquote class=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;bo=
rder-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><blockquote cla=
ss=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc=
 solid;padding-left:1ex"><div dir=3D"ltr"><div><div>and `*it++ =3D foo;`</d=
iv></div></div></blockquote><div><br></div><div>I totally missed it. It is =
really hard to find a general solution with this three-operator case... <br=
></div></div></blockquote><div><br></div><div>It&#39;s
 still a 2 operator case. The ++ is evaluated before the `*` and the=20
`=3D`. It&#39;s no different from `*some_func() =3D foo;`, or `some_func()[=
10] =3D
 foo;`. It&#39;s all about recognizing the sequence of evaluating a=20
left-hand `*` or `[]` followed by an `=3D` evaluation.<br></div></div></blo=
ckquote><div><br></div><div><div>Sorry, I misunderstood you. I thought ther=
e is a need in overriding
 behavior for `*it++ =3D foo;` (turning three ops into a single function=20
call) case too.</div><div><br></div><div>A=CC=B6b=CC=B6o=CC=B6u=CC=B6t=CC=
=B6 =CC=B6s=CC=B6y=CC=B6n=CC=B6t=CC=B6a=CC=B6x=CC=B6,=CC=B6=20
=CC=B6a=CC=B6n=CC=B6o=CC=B6t=CC=B6h=CC=B6e=CC=B6r=CC=B6 =CC=B6i=CC=B6d=CC=
=B6e=CC=B6a=CC=B6 =CC=B6c=CC=B6o=CC=B6m=CC=B6e=CC=B6 =CC=B6t=CC=B6o=CC=B6 =
=CC=B6m=CC=B6y=CC=B6 =CC=B6m=CC=B6i=CC=B6n=CC=B6d=CC=B6:=CC=B6 =CC=B6w=CC=
=B6e=CC=B6=20
=CC=B6c=CC=B6a=CC=B6n=CC=B6 =CC=B6i=CC=B6n=CC=B6t=CC=B6r=CC=B6o=CC=B6d=CC=
=B6u=CC=B6c=CC=B6e=CC=B6 =CC=B6n=CC=B6e=CC=B6w=CC=B6 =CC=B6c=CC=B6o=CC=B6n=
=CC=B6t=CC=B6e=CC=B6x=CC=B6t=CC=B6-=CC=B6s=CC=B6e=CC=B6n=CC=B6s=CC=B6i=CC=
=B6t=CC=B6i=CC=B6v=CC=B6e=CC=B6=20
=CC=B6k=CC=B6e=CC=B6y=CC=B6w=CC=B6o=CC=B6r=CC=B6d=CC=B6 =CC=B6`=CC=B6a=CC=
=B6c=CC=B6c=CC=B6e=CC=B6s=CC=B6s=CC=B6`=CC=B6 =CC=B6(=CC=B6o=CC=B6r=CC=B6 =
=CC=B6m=CC=B6a=CC=B6y=CC=B6b=CC=B6e=CC=B6=20
=CC=B6`=CC=B6a=CC=B6c=CC=B6c=CC=B6e=CC=B6s=CC=B6s=CC=B6o=CC=B6p=CC=B6`=CC=
=B6,=CC=B6 =CC=B6`=CC=B6a=CC=B6c=CC=B6c=CC=B6e=CC=B6s=CC=B6s=CC=B6o=CC=B6p=
=CC=B6e=CC=B6r=CC=B6`=CC=B6,=CC=B6=20
=CC=B6`=CC=B6a=CC=B6c=CC=B6c=CC=B6e=CC=B6s=CC=B6s=CC=B6_=CC=B6o=CC=B6p=CC=
=B6e=CC=B6r=CC=B6a=CC=B6t=CC=B6o=CC=B6r=CC=B6`=CC=B6)=CC=B6,=CC=B6 =CC=B6s=
=CC=B6o=CC=B6 =CC=B6i=CC=B6n=CC=B6s=CC=B6t=CC=B6e=CC=B6a=CC=B6d=CC=B6 =CC=
=B6o=CC=B6f=CC=B6=20
=CC=B6`=CC=B6o=CC=B6p=CC=B6e=CC=B6r=CC=B6a=CC=B6t=CC=B6o=CC=B6r=CC=B6[=CC=
=B6]=CC=B6 =CC=B6o=CC=B6p=CC=B6e=CC=B6r=CC=B6a=CC=B6t=CC=B6o=CC=B6r=CC=B6=
=3D=CC=B6`=CC=B6 =CC=B6i=CC=B6t=CC=B6 =CC=B6w=CC=B6i=CC=B6l=CC=B6l=CC=B6 =
=CC=B6b=CC=B6e=CC=B6=20
=CC=B6`=CC=B6o=CC=B6p=CC=B6e=CC=B6r=CC=B6a=CC=B6t=CC=B6o=CC=B6r=CC=B6=3D=CC=
=B6 =CC=B6a=CC=B6c=CC=B6c=CC=B6e=CC=B6s=CC=B6s=CC=B6[=CC=B6]=CC=B6`=CC=B6.=
=CC=B6 =CC=B6H=CC=B6m=CC=B6,=CC=B6 =CC=B6o=CC=B6r=CC=B6 =CC=B6t=CC=B6h=CC=
=B6e=CC=B6=20
=CC=B6k=CC=B6e=CC=B6y=CC=B6w=CC=B6o=CC=B6r=CC=B6d=CC=B6 =CC=B6c=CC=B6a=CC=
=B6n=CC=B6 =CC=B6b=CC=B6e=CC=B6 =CC=B6`=CC=B6a=CC=B6s=CC=B6s=CC=B6i=CC=B6g=
=CC=B6n=CC=B6m=CC=B6e=CC=B6n=CC=B6t=CC=B6`=CC=B6 =CC=B6a=CC=B6n=CC=B6d=CC=
=B6 =CC=B6t=CC=B6h=CC=B6e=CC=B6=20
=CC=B6n=CC=B6a=CC=B6m=CC=B6e=CC=B6 =CC=B6o=CC=B6f=CC=B6 =CC=B6o=CC=B6p=CC=
=B6e=CC=B6r=CC=B6a=CC=B6t=CC=B6o=CC=B6r=CC=B6 =CC=B6w=CC=B6i=CC=B6l=CC=B6l=
=CC=B6 =CC=B6b=CC=B6e=CC=B6=20
=CC=B6`=CC=B6o=CC=B6p=CC=B6e=CC=B6r=CC=B6a=CC=B6t=CC=B6o=CC=B6r=CC=B6[=CC=
=B6]=CC=B6 =CC=B6a=CC=B6s=CC=B6s=CC=B6i=CC=B6g=CC=B6n=CC=B6m=CC=B6e=CC=B6n=
=CC=B6t=CC=B6=3D=CC=B6`=CC=B6.=CC=B6 =CC=B6O=CC=B6r=CC=B6 =CC=B6m=CC=B6a=CC=
=B6y=CC=B6b=CC=B6e=CC=B6=20
=CC=B6e=CC=B6v=CC=B6e=CC=B6n=CC=B6 =CC=B6`=CC=B6o=CC=B6p=CC=B6e=CC=B6r=CC=
=B6a=CC=B6t=CC=B6o=CC=B6r=CC=B6 =CC=B6a=CC=B6c=CC=B6c=CC=B6e=CC=B6s=CC=B6s=
=CC=B6_=CC=B6o=CC=B6p=CC=B6e=CC=B6r=CC=B6a=CC=B6t=CC=B6o=CC=B6r=CC=B6[=CC=
=B6]=CC=B6=20
=CC=B6a=CC=B6s=CC=B6s=CC=B6i=CC=B6g=CC=B6n=CC=B6m=CC=B6e=CC=B6n=CC=B6t=CC=
=B6_=CC=B6o=CC=B6p=CC=B6e=CC=B6r=CC=B6a=CC=B6t=CC=B6o=CC=B6r=CC=B6=3D=CC=B6=
`=CC=B6 =CC=B6(=CC=B6h=CC=B6o=CC=B6w=CC=B6e=CC=B6v=CC=B6e=CC=B6r=CC=B6 =CC=
=B6+=CC=B6+=CC=B6=20
=CC=B6a=CC=B6n=CC=B6d=CC=B6 =CC=B6-=CC=B6-=CC=B6 =CC=B6d=CC=B6o=CC=B6n=CC=
=B6&#39;=CC=B6t=CC=B6 =CC=B6f=CC=B6i=CC=B6t=CC=B6 =CC=B6g=CC=B6o=CC=B6o=CC=
=B6d=CC=B6 =CC=B6w=CC=B6i=CC=B6t=CC=B6h=CC=B6=20
=CC=B6`=CC=B6a=CC=B6s=CC=B6s=CC=B6i=CC=B6g=CC=B6n=CC=B6m=CC=B6e=CC=B6n=CC=
=B6t=CC=B6_=CC=B6o=CC=B6p=CC=B6e=CC=B6r=CC=B6a=CC=B6t=CC=B6o=CC=B6r=CC=B6`=
=CC=B6 =CC=B6p=CC=B6h=CC=B6r=CC=B6a=CC=B6s=CC=B6e=CC=B6)=CC=B6.=CC=B6</div>=
<div><br></div></div>On Sunday, 17.03.2019 =D0=B3., 16:27:04 UTC+3 Vinnie F=
alco wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left=
: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr"><b=
r>On Friday, March 15, 2019 at 8:33:20 AM UTC-7, Nicol Bolas wrote:<blockqu=
ote class=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-left:1=
px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div><div>Especially since=
 the obvious `operator*=3D` is already taken ;)</div></div></div></blockquo=
te><div><br></div><div>A straightforward solution is to introduce a std tag=
 type:</div><div><br></div><div><br></div><div>=C2=A0 =C2=A0 T&amp; operato=
r*=3D(std::op_assign_<wbr>equal, ...);<br><br>Regards<br>Vinnie<br></div></=
div></blockquote><div><br></div><div>That is a nice idea. Though I think it=
 should be used another way, so no any new syntax like `operator[]=3D` is i=
ntroduced:</div><div style=3D"background-color: rgb(250, 250, 250); border-=
color: rgb(187, 187, 187); border-style: solid; border-width: 1px; overflow=
-wrap: break-word;" class=3D"prettyprint"><code class=3D"prettyprint"><div =
class=3D"subprettyprint"><span style=3D"color: #800;" class=3D"styled-by-pr=
ettify">// *a =3D x;</span><span style=3D"color: #000;" class=3D"styled-by-=
prettify"><br>T</span><span style=3D"color: #660;" class=3D"styled-by-prett=
ify">&amp;</span><span style=3D"color: #000;" class=3D"styled-by-prettify">=
 </span><span style=3D"color: #008;" class=3D"styled-by-prettify">operator<=
/span><span style=3D"color: #660;" class=3D"styled-by-prettify">*(</span><s=
pan style=3D"color: #000;" class=3D"styled-by-prettify">std</span><span sty=
le=3D"color: #660;" class=3D"styled-by-prettify">::</span><span style=3D"co=
lor: #000;" class=3D"styled-by-prettify">op_simple_assignment_t</span><span=
 style=3D"color: #660;" class=3D"styled-by-prettify">,</span><span style=3D=
"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #=
660;" class=3D"styled-by-prettify">...)</span><span style=3D"color: #000;" =
class=3D"styled-by-prettify"> </span><span style=3D"color: #660;" class=3D"=
styled-by-prettify">{</span><span style=3D"color: #000;" class=3D"styled-by=
-prettify"> </span><span style=3D"color: #800;" class=3D"styled-by-prettify=
">/* ... */</span><span style=3D"color: #000;" class=3D"styled-by-prettify"=
> </span><span style=3D"color: #660;" class=3D"styled-by-prettify">}</span>=
<span style=3D"color: #000;" class=3D"styled-by-prettify"><br><br></span><s=
pan style=3D"color: #800;" class=3D"styled-by-prettify">// a[k] =3D v;</spa=
n><span style=3D"color: #000;" class=3D"styled-by-prettify"><br>T</span><sp=
an style=3D"color: #660;" class=3D"styled-by-prettify">&amp;</span><span st=
yle=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"co=
lor: #008;" class=3D"styled-by-prettify">operator</span><span style=3D"colo=
r: #660;" class=3D"styled-by-prettify">[](</span><span style=3D"color: #000=
;" class=3D"styled-by-prettify">std</span><span style=3D"color: #660;" clas=
s=3D"styled-by-prettify">::</span><span style=3D"color: #000;" class=3D"sty=
led-by-prettify">op_simple_assignment_t</span><span style=3D"color: #660;" =
class=3D"styled-by-prettify">,</span><span style=3D"color: #000;" class=3D"=
styled-by-prettify"> </span><span style=3D"color: #660;" class=3D"styled-by=
-prettify">...)</span><span style=3D"color: #000;" class=3D"styled-by-prett=
ify"> </span><span style=3D"color: #660;" class=3D"styled-by-prettify">{</s=
pan><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span=
 style=3D"color: #800;" class=3D"styled-by-prettify">/* ... */</span><span =
style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"=
color: #660;" class=3D"styled-by-prettify">}</span><span style=3D"color: #0=
00;" class=3D"styled-by-prettify"><br><br></span><span style=3D"color: #800=
;" class=3D"styled-by-prettify">// a[i]++;</span><span style=3D"color: #000=
;" class=3D"styled-by-prettify"><br>T </span><span style=3D"color: #008;" c=
lass=3D"styled-by-prettify">operator</span><span style=3D"color: #660;" cla=
ss=3D"styled-by-prettify">[](</span><span style=3D"color: #000;" class=3D"s=
tyled-by-prettify">std</span><span style=3D"color: #660;" class=3D"styled-b=
y-prettify">::</span><span style=3D"color: #000;" class=3D"styled-by-pretti=
fy">op_post_increment_t</span><span style=3D"color: #660;" class=3D"styled-=
by-prettify">,</span><span style=3D"color: #000;" class=3D"styled-by-pretti=
fy"> </span><span style=3D"color: #660;" class=3D"styled-by-prettify">...)<=
/span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><sp=
an style=3D"color: #660;" class=3D"styled-by-prettify">{</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color=
: #800;" class=3D"styled-by-prettify">/* ... */</span><span style=3D"color:=
 #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #660;" c=
lass=3D"styled-by-prettify">}</span><span style=3D"color: #000;" class=3D"s=
tyled-by-prettify"><br><br></span><span style=3D"color: #800;" class=3D"sty=
led-by-prettify">// a[i] |=3D x;</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"><br>T</span><span style=3D"color: #660;" class=3D"s=
tyled-by-prettify">&amp;</span><span style=3D"color: #000;" class=3D"styled=
-by-prettify"> </span><span style=3D"color: #008;" class=3D"styled-by-prett=
ify">operator</span><span style=3D"color: #660;" class=3D"styled-by-prettif=
y">[](</span><span style=3D"color: #000;" class=3D"styled-by-prettify">std<=
/span><span style=3D"color: #660;" class=3D"styled-by-prettify">::</span><s=
pan style=3D"color: #000;" class=3D"styled-by-prettify">op_bitwise_or_assig=
nment_t</span><span style=3D"color: #660;" class=3D"styled-by-prettify">,</=
span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><spa=
n style=3D"color: #660;" class=3D"styled-by-prettify">...)</span><span styl=
e=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"colo=
r: #660;" class=3D"styled-by-prettify">{</span><span style=3D"color: #000;"=
 class=3D"styled-by-prettify"> </span><span style=3D"color: #800;" class=3D=
"styled-by-prettify">/* ... */</span><span style=3D"color: #000;" class=3D"=
styled-by-prettify"> </span><span style=3D"color: #660;" class=3D"styled-by=
-prettify">}</span></div></code></div><div><div><br></div>On Sunday, 17.03.=
2019 =D0=B3., 12:42:27 UTC+3 Farid Mehrabi wrote:<blockquote class=3D"gmail=
_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;p=
adding-left: 1ex;">Even
 more general could be to overload a complex expression which =C2=A0is=20
currently only possible via expression templates and lazy evaluation=20
technics. One might try to use operator overloading in a matrix=20
caculation library:<p>matrix a,b,c,d;<br>//...<br>a=3Db+c*d;// can I overlo=
ad this too?</p><p>regards,<br>FM<br></p></blockquote><div><br></div><div>I
 think it is not for this proposal. This proposal should cover only=20
simple access-and-modify operations for containers and iterators as for=20
me. I want to leave the proposed idea as simple as it can be, but of=20
course without breaking forward compatibility for the possible more complex=
 composite operators proposal in the future.<br></div><div><div><br></div><=
div><br></div><div><br></div>Also I realized that the proposed feature does=
n&#39;t cover the full functionality of `std::bitset`/`std::vector&lt;bool&=
gt;`
 reference proxies. There is `flip` member function in bool (bit)=20
reference proxies, instead we can do `bits[i] ^=3D true;`, but=20
`bits[i].flip();` looks more readable. Though `bits[i] =3D !bits[i];`=20
looks readable too however it doesn&#39;t look DRY.</div></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/77ca6c91-e1d6-4410-898d-b880b5af27d7%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/77ca6c91-e1d6-4410-898d-b880b5af27d7=
%40isocpp.org</a>.<br />

------=_Part_1281_1670503988.1552864108608--

------=_Part_1280_1662110632.1552864108608--

.
