From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 107230 invoked by alias); 10 Aug 2016 07:50:35 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 107204 invoked by uid 89); 10 Aug 2016 07:50:34 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 spammy=UD:insert, UD:data, 21_strings, basic_string X-Spam-User: qpsmtpd, 2 recipients X-HELO: mail-ua0-f177.google.com Received: from mail-ua0-f177.google.com (HELO mail-ua0-f177.google.com) (209.85.217.177) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Wed, 10 Aug 2016 07:50:22 +0000 Received: by mail-ua0-f177.google.com with SMTP id 97so57745090uav.3; Wed, 10 Aug 2016 00:50:22 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=iGjguxYRCD9JdK4nOB4CFDkWza/Rf2Y3eh40eGED+QA=; b=bmxIY/sD6dbQKrnF3oeMJfjRQzsaHiHpQ1YAJlmFgsuu4miQ3y0PklE1KbwReODOip UkWr1bNI8bAWpq/bPEVw+xbH1/66Z/12omOuZ2Iup2Zw9hNMfRVuH3CdM8QDEJEGw/4K 3sDVjJzLa9LKgDONr0pansCWWj7AJsJzjL+/SMWSqOdyrzia+F8J21U4SbOdN4ga8QRx fsK4L2FQxlTUoQB9nCpMmJrHPmIHDdiNsw31F+wIQP7VQW6QNxgjtkAfacJqgt8+FFyh 3WEFPCCmtIDHqB+fl1qFuqX8j8o0P8sCTaCG1jBvtyssMJi34kFalfnOPcwoM6C+ADRe IYWA== X-Gm-Message-State: AEkoout5VGpfvMfAUWYSEJcO9i6oa5/QupyfWAcQ9mOJQel6e5DxNWvn3uIT2mkXANgm3WEVMIFFo98D5g5n1g== X-Received: by 10.159.37.232 with SMTP id 95mr1282982uaf.68.1470815420370; Wed, 10 Aug 2016 00:50:20 -0700 (PDT) MIME-Version: 1.0 Received: by 10.103.77.4 with HTTP; Wed, 10 Aug 2016 00:50:19 -0700 (PDT) From: Ville Voutilainen Date: Wed, 10 Aug 2016 07:50:00 -0000 Message-ID: Subject: [v3 PATCH] Implement LWG 2758. To: "libstdc++" , "gcc-patches@gcc.gnu.org" , Paolo Carlini Content-Type: multipart/mixed; boundary=001a11394feea96a7f0539b2e622 X-SW-Source: 2016-08/txt/msg00782.txt.bz2 --001a11394feea96a7f0539b2e622 Content-Type: text/plain; charset=UTF-8 Content-length: 667 Tested on Linux-x64. 2016-08-10 Ville Voutilainen Implement LWG 2758. * include/bits/basic_string.h (append(__sv_type, size_type, size_type)): Turn into a template, change parameter type, constrain, add a conversion to __sv_type from the dependent parameter type. (assign(__sv_type, size_type, size_type)): Likewise. (insert(size_type, __sv_type, size_type, size_type)): Likewise. (replace(size_type, size_type, __sv_type, size_type, size_type)): Likewise. (compare(size_type, size_type,__sv_type, size_type, size_type)): Likewise. * testsuite/21_strings/basic_string/lwg2758.cc: New. --001a11394feea96a7f0539b2e622 Content-Type: text/plain; charset=US-ASCII; name="lwg2758.diff" Content-Disposition: attachment; filename="lwg2758.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_irolid5l0 Content-length: 6645 ZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9pbmNsdWRlL2JpdHMvYmFzaWNf c3RyaW5nLmggYi9saWJzdGRjKystdjMvaW5jbHVkZS9iaXRzL2Jhc2ljX3N0 cmluZy5oCmluZGV4IDU5ZjFjNjQuLjg5ZTIxMDAgMTAwNjQ0Ci0tLSBhL2xp YnN0ZGMrKy12My9pbmNsdWRlL2JpdHMvYmFzaWNfc3RyaW5nLmgKKysrIGIv bGlic3RkYysrLXYzL2luY2x1ZGUvYml0cy9iYXNpY19zdHJpbmcuaApAQCAt MTIyNyw5ICsxMjI3LDEzIEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9D WFgxMQogICAgICAgICogIEBwYXJhbSBfX24gICBUaGUgbnVtYmVyIG9mIGNo YXJhY3RlcnMgdG8gYXBwZW5kIGZyb20gdGhlIHN0cmluZ192aWV3LgogICAg ICAgICogIEByZXR1cm4gIFJlZmVyZW5jZSB0byB0aGlzIHN0cmluZy4KICAg ICAgICAqLwotICAgICAgYmFzaWNfc3RyaW5nJiBhcHBlbmQoX19zdl90eXBl IF9fc3YsCisgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgX1RwLAorCQllbmFi bGVfaWZfdDxpc19jb252ZXJ0aWJsZV92PGNvbnN0IF9UcCYsIF9fc3ZfdHlw ZT4sCisJCQkgICAgYm9vbD4gPSB0cnVlPgorICAgICAgYmFzaWNfc3RyaW5n JiBhcHBlbmQoY29uc3QgX1RwJiBfX3N2dCwKIAkJCSAgIHNpemVfdHlwZSBf X3Bvcywgc2l6ZV90eXBlIF9fbiA9IG5wb3MpCiAgICAgICB7CisJX19zdl90 eXBlIF9fc3YgPSBfX3N2dDsKIAlyZXR1cm4gX01fYXBwZW5kKF9fc3YuZGF0 YSgpCiAJCQkgKyBfX3N2Ll9NX2NoZWNrKF9fcG9zLCAiYmFzaWNfc3RyaW5n OjphcHBlbmQiKSwKIAkJCSBfX3N2Ll9NX2xpbWl0KF9fcG9zLCBfX24pKTsK QEAgLTEzOTIsMTAgKzEzOTYsMTQgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQ QUNFX0NYWDExCiAgICAgICAgKiAgQHBhcmFtIF9fbiAgVGhlIG51bWJlciBv ZiBjaGFyYWN0ZXJzIHRvIGFzc2lnbi4KICAgICAgICAqICBAcmV0dXJuICBS ZWZlcmVuY2UgdG8gdGhpcyBzdHJpbmcuCiAgICAgICAgKi8KKyAgICAgIHRl bXBsYXRlIDx0eXBlbmFtZSBfVHAsCisJCWVuYWJsZV9pZl90PGlzX2NvbnZl cnRpYmxlX3Y8Y29uc3QgX1RwJiwgX19zdl90eXBlPiwKKwkJCSAgICBib29s PiA9IHRydWU+CiAgICAgICBiYXNpY19zdHJpbmcmCi0gICAgICBhc3NpZ24o X19zdl90eXBlIF9fc3YsCisgICAgICBhc3NpZ24oY29uc3QgX1RwJiBfX3N2 dCwKIAkgICAgIHNpemVfdHlwZSBfX3Bvcywgc2l6ZV90eXBlIF9fbiA9IG5w b3MpCiAgICAgICB7CisJX19zdl90eXBlIF9fc3YgPSBfX3N2dDsKIAlyZXR1 cm4gX01fcmVwbGFjZShzaXplX3R5cGUoMCksIHRoaXMtPnNpemUoKSwgX19z di5kYXRhKCkKIAkJCSAgKyBfX3N2Ll9NX2NoZWNrKF9fcG9zLCAiYmFzaWNf c3RyaW5nOjphc3NpZ24iKSwKIAkJCSAgX19zdi5fTV9saW1pdChfX3Bvcywg X19uKSk7CkBAIC0xNjUyLDkgKzE2NjAsMTMgQEAgX0dMSUJDWFhfQkVHSU5f TkFNRVNQQUNFX0NYWDExCiAgICAgICAgKiAgQHBhcmFtIF9fbiAgICBUaGUg bnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gaW5zZXJ0LgogICAgICAgICogIEBy ZXR1cm4gIFJlZmVyZW5jZSB0byB0aGlzIHN0cmluZy4KICAgICAgICovCi0g ICAgICBiYXNpY19zdHJpbmcmIGluc2VydChzaXplX3R5cGUgX19wb3MxLCBf X3N2X3R5cGUgX19zdiwKKyAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBfVHAs CisJCWVuYWJsZV9pZl90PGlzX2NvbnZlcnRpYmxlX3Y8Y29uc3QgX1RwJiwg X19zdl90eXBlPiwKKwkJCSAgICBib29sPiA9IHRydWU+CisgICAgICBiYXNp Y19zdHJpbmcmIGluc2VydChzaXplX3R5cGUgX19wb3MxLCBjb25zdCBfVHAm IF9fc3Z0LAogCQkJICAgc2l6ZV90eXBlIF9fcG9zMiwgc2l6ZV90eXBlIF9f biA9IG5wb3MpCiAgICAgICB7CisJX19zdl90eXBlIF9fc3YgPSBfX3N2dDsK IAlyZXR1cm4gdGhpcy0+cmVwbGFjZShfX3BvczEsIHNpemVfdHlwZSgwKSwg X19zdi5kYXRhKCkKIAkJCSAgICAgKyBfX3N2Ll9NX2NoZWNrKF9fcG9zMiwg ImJhc2ljX3N0cmluZzo6aW5zZXJ0IiksCiAJCQkgICAgIF9fc3YuX01fbGlt aXQoX19wb3MyLCBfX24pKTsKQEAgLTIwNzEsMTAgKzIwODMsMTQgQEAgX0dM SUJDWFhfQkVHSU5fTkFNRVNQQUNFX0NYWDExCiAgICAgICAgKiAgQHBhcmFt IF9fbjIgICAgVGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIGluc2VydC4K ICAgICAgICAqICBAcmV0dXJuICBSZWZlcmVuY2UgdG8gdGhpcyBzdHJpbmcu CiAgICAgICAqLworICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIF9UcCwKKwkJ ZW5hYmxlX2lmX3Q8aXNfY29udmVydGlibGVfdjxjb25zdCBfVHAmLCBfX3N2 X3R5cGU+LAorCQkJICAgIGJvb2w+ID0gdHJ1ZT4KICAgICAgIGJhc2ljX3N0 cmluZyYgcmVwbGFjZShzaXplX3R5cGUgX19wb3MxLCBzaXplX3R5cGUgX19u MSwKLQkJCSAgICBfX3N2X3R5cGUgX19zdiwKKwkJCSAgICBjb25zdCBfVHAm IF9fc3Z0LAogCQkJICAgIHNpemVfdHlwZSBfX3BvczIsIHNpemVfdHlwZSBf X24yID0gbnBvcykKICAgICAgIHsKKwlfX3N2X3R5cGUgX19zdiA9IF9fc3Z0 OwogCXJldHVybiB0aGlzLT5yZXBsYWNlKF9fcG9zMSwgX19uMSwgX19zdi5k YXRhKCkKIAkJCSAgICAgKyBfX3N2Ll9NX2NoZWNrKF9fcG9zMiwgImJhc2lj X3N0cmluZzo6cmVwbGFjZSIpLAogCQkJICAgICBfX3N2Ll9NX2xpbWl0KF9f cG9zMiwgX19uMikpOwpAQCAtMjcyMCwxMCArMjczNiwxNCBAQCBfR0xJQkNY WF9CRUdJTl9OQU1FU1BBQ0VfQ1hYMTEKICAgICAgICAqICBAcGFyYW0gX19u MiAgVGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIGNvbXBhcmUuCiAgICAg ICAgKiAgQHJldHVybiAgSW50ZWdlciA8IDAsIDAsIG9yID4gMC4KICAgICAg ICAqLworICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIF9UcCwKKwkJZW5hYmxl X2lmX3Q8aXNfY29udmVydGlibGVfdjxjb25zdCBfVHAmLCBfX3N2X3R5cGU+ LAorCQkJICAgIGJvb2w+ID0gdHJ1ZT4KICAgICAgIGludCBjb21wYXJlKHNp emVfdHlwZSBfX3BvczEsIHNpemVfdHlwZSBfX24xLAotCQkgIF9fc3ZfdHlw ZSBfX3N2LAorCQkgIGNvbnN0IF9UcCYgX19zdnQsCiAJCSAgc2l6ZV90eXBl IF9fcG9zMiwgc2l6ZV90eXBlIF9fbjIgPSBucG9zKSBjb25zdAogICAgICAg eworCV9fc3ZfdHlwZSBfX3N2ID0gX19zdnQ7CiAJcmV0dXJuIF9fc3ZfdHlw ZSgqdGhpcykKIAkgIC5zdWJzdHIoX19wb3MxLCBfX24xKS5jb21wYXJlKF9f c3Yuc3Vic3RyKF9fcG9zMiwgX19uMikpOwogICAgICAgfQpkaWZmIC0tZ2l0 IGEvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yMV9zdHJpbmdzL2Jhc2ljX3N0 cmluZy9sd2cyNzU4LmNjIGIvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yMV9z dHJpbmdzL2Jhc2ljX3N0cmluZy9sd2cyNzU4LmNjCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkMjkyNDgKLS0tIC9kZXYvbnVsbAor KysgYi9saWJzdGRjKystdjMvdGVzdHN1aXRlLzIxX3N0cmluZ3MvYmFzaWNf c3RyaW5nL2x3ZzI3NTguY2MKQEAgLTAsMCArMSw0NiBAQAorLy8geyBkZy1v cHRpb25zICItc3RkPWdudSsrMTciIH0KKy8vIHsgZGctZG8gY29tcGlsZSB9 CisKKy8vIENvcHlyaWdodCAoQykgMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KKy8vCisvLyBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUg R05VIElTTyBDKysgTGlicmFyeS4gIFRoaXMgbGlicmFyeSBpcyBmcmVlCisv LyBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeSBpdCB1bmRlciB0aGUKKy8vIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCisvLyBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMsIG9yIChh dCB5b3VyIG9wdGlvbikKKy8vIGFueSBsYXRlciB2ZXJzaW9uLgorCisvLyBU aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwKKy8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisvLyBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlCisvLyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmb3IgbW9yZSBkZXRhaWxzLgorCisvLyBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBhbG9uZworLy8gd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD T1BZSU5HMy4gIElmIG5vdCBzZWUKKy8vIDxodHRwOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4KKworI2luY2x1ZGUgPHN0cmluZz4KKworc3RydWN0IEN1 c3RvbVN0cmluZworeworICBzdGQ6OnN0cmluZyBkYXRhID0gImZvbyI7Cisg IHN0ZDo6c3RyaW5nX3ZpZXcgZGF0YV92aWV3ID0gZGF0YTsKKyAgb3BlcmF0 b3Igc3RkOjpzdHJpbmdfdmlldygpIGNvbnN0IHtyZXR1cm4gZGF0YV92aWV3 O30KK307CisKK2ludCBtYWluKCkKK3sKKyAgICBzdGQ6OnN0cmluZyB4Owor ICAgIEN1c3RvbVN0cmluZyBjczsKKyAgICB4LmFwcGVuZCgiZm9vIiwgMCwg Myk7CisgICAgeC5hcHBlbmQoY3MsIDAsIDMpOworICAgIHguYXNzaWduKCJm b28iLCAwLCAzKTsKKyAgICB4LmFzc2lnbihjcywgMCwgMyk7CisgICAgeC5p bnNlcnQoMCwgImZvbyIsIDAsIDMpOworICAgIHguaW5zZXJ0KDAsIGNzLCAw LCAzKTsKKyAgICB4ID0gImJhciI7CisgICAgeC5yZXBsYWNlKDAsIDMsICJm b28iLCAwLCAzKTsKKyAgICB4LnJlcGxhY2UoMCwgMywgY3MsIDAsIDMpOwor ICAgIHggPSAiYmFyIjsKKyAgICB4LmNvbXBhcmUoMCwgMywgImZvbyIsIDAs IDMpOworICAgIHguY29tcGFyZSgwLCAzLCBjcywgMCwgMyk7Cit9Cg== --001a11394feea96a7f0539b2e622--