From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com [IPv6:2a00:1450:4864:20::533]) by sourceware.org (Postfix) with ESMTPS id 3E0803853565; Thu, 1 Sep 2022 05:01:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 3E0803853565 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ed1-x533.google.com with SMTP id w2so5512513edc.0; Wed, 31 Aug 2022 22:01:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:cc:references:to:from:content-language:subject :user-agent:mime-version:date:message-id:from:to:cc; bh=voKJhJ6twjEJW9VnjEtQyHW8rdWT2mi3Wi2aBt3pA0U=; b=iMs7809DE3f2xXzbCF6AwmKbanwYwa1azVTINctrymEI99WMu7z8MxoLrVMMXGWb8Y 11uH+NAqRQ3dRRuFqmL3GBcwyvcM93w5LKbWroCNel9qlIs4m3awJ4oEndk3C90E1sVk 1y3A/QRjfuIFI3FLcI+HfbpECZewOr+219I9zfS6QFVnH6p45mgk68ejPxIMg/yuxwV8 TXy0yn3AFatEekJsZvA0AJpsBovmEXCTX8GqwMo5hj8OC91iJiAW6bcxpeVAAIu3wplf mBEghFWUVSr0ovz8DaHU1JXwljiLkBed5hgDkkKppf2tHnoR/rv/wIa9U88zPDfEHe25 v6Ig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:cc:references:to:from:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc; bh=voKJhJ6twjEJW9VnjEtQyHW8rdWT2mi3Wi2aBt3pA0U=; b=eRmf8YARXm8TOWwuAztqclSPBfTQ16YbaiCveyKlLfhT3X1Z1C4/1spLGkt3VGqOM9 IKTwftJJ7M/jnl8nTZ8CWjclkZRSfCW+YmFxwdf/ycZDeCSAiEPUJSIZzA7K66ZXSyiQ L5CJqWgCAszotTtGSegPX6JgcMPTt5gjYYlLTKuefB2Ue1+Fi8pVFpf885Pr6OOV3HkJ K5s++UNoDTFjxIMDqkUwDFzTvv3h+SRH5MwHevjW8pcVxAei29eJyZGJvQ8UucnlFhEc Mmk4CYzaWvs3LwBhuXV8EGOxb3/AfIXseu1NLNjyKgyFU/L0+keKU7U2XJH8rHytR3KY 6zKA== X-Gm-Message-State: ACgBeo1lhbM1KxNyjuT/BqgAwtbXdtMKDNdpfllpGb6Wma4F/YyXDozl CxfexI80OFcLxuHf6ee2AuOlaf7BH3DJng== X-Google-Smtp-Source: AA6agR7faVt+JFTpgDIk0fs/7OfhGRgXNP5alW8cNMlxuPeAJiFCnpYpe+qHu7SlhPxibBWy1RD7og== X-Received: by 2002:aa7:d348:0:b0:447:d2b4:78fd with SMTP id m8-20020aa7d348000000b00447d2b478fdmr24585254edr.201.1662008471501; Wed, 31 Aug 2022 22:01:11 -0700 (PDT) Received: from [10.8.0.187] ([109.190.253.14]) by smtp.googlemail.com with ESMTPSA id v12-20020a056402184c00b0044629b54b00sm672455edy.46.2022.08.31.22.01.09 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 31 Aug 2022 22:01:10 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------kplPKmszOFx8WGNtlGxGMRGO" Message-ID: Date: Thu, 1 Sep 2022 07:01:08 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: Re: Add three way lower_bound Content-Language: fr From: =?UTF-8?Q?Fran=c3=a7ois_Dumont?= To: "libstdc++@gcc.gnu.org" References: Cc: gcc-patches In-Reply-To: X-Spam-Status: No, score=-9.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,KAM_SHORT,NICE_REPLY_A,RCVD_IN_BARRACUDACENTRAL,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------kplPKmszOFx8WGNtlGxGMRGO Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Any feedback regarding this proposal: https://gcc.gnu.org/pipermail/libstdc++/2021-June/052821.html On 23/06/21 22:34, François Dumont wrote: > Hi > > Following the message to propose an alternative lower_bound and the > reply to use three way comparison I try to implement this. > > Before going further I wonder if this is something possible ? > > The purpose of the: > > if constexpr (three_way_comparable<>) > > is to make sure that we use it only if there is a proper <=> operator > defined. Afai understood what is in we can have the > __synth3way for any type as long as < exist. But I think that if <=> > is implemented in terms of < then it might be too expensive, the > actual lower_bound might already be implemented this way. > > My main concerns is of course Standard conformity, could it be ok ? > > François > --------------kplPKmszOFx8WGNtlGxGMRGO Content-Type: text/x-patch; charset=UTF-8; name="lower_bound_three_way.patch" Content-Disposition: attachment; filename="lower_bound_three_way.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9pbmNsdWRlL2JpdHMvc3RsX2FsZ29iYXNlLmgg Yi9saWJzdGRjKystdjMvaW5jbHVkZS9iaXRzL3N0bF9hbGdvYmFzZS5oCmluZGV4IDg0YTFm OWU5OGY2Li43YTBjNDJhNDkwOSAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL2luY2x1ZGUv Yml0cy9zdGxfYWxnb2Jhc2UuaAorKysgYi9saWJzdGRjKystdjMvaW5jbHVkZS9iaXRzL3N0 bF9hbGdvYmFzZS5oCkBAIC0xNDcyLDYgKzE0NzIsNDggQEAgX0dMSUJDWFhfRU5EX05BTUVT UEFDRV9DT05UQUlORVIKICAgICAgIHJldHVybiBfX2ZpcnN0OwogICAgIH0KIAorI2lmIF9f Y3BwX2xpYl90aHJlZV93YXlfY29tcGFyaXNvbgorICB0ZW1wbGF0ZTx0eXBlbmFtZSBfRm9y d2FyZEl0ZXJhdG9yLCB0eXBlbmFtZSBfVHAsIHR5cGVuYW1lIF9Db21wYXJlPgorICAgIF9H TElCQ1hYMjBfQ09OU1RFWFBSCisgICAgX0ZvcndhcmRJdGVyYXRvcgorICAgIF9fbG93ZXJf Ym91bmRfdGhyZWVfd2F5KF9Gb3J3YXJkSXRlcmF0b3IgX19maXJzdCwgX0ZvcndhcmRJdGVy YXRvciBfX2xhc3QsCisJCQkgICAgY29uc3QgX1RwJiBfX3ZhbCwgX0NvbXBhcmUgX19jb21w KQorICAgIHsKKyAgICAgIGF1dG8gX19sZW4gPSBzdGQ6OmRpc3RhbmNlKF9fZmlyc3QsIF9f bGFzdCk7CisKKyAgICAgIHdoaWxlIChfX2xlbiA+IDApCisJeworCSAgYXV0byBfX2hhbGYg PSBfX2xlbiA+PiAxOworCSAgaWYgKF9faGFsZiA9PSAwKQorCSAgICB7CisJICAgICAgaWYg KGF1dG8gX19jID0gX19jb21wKCpfX2ZpcnN0LCBfX3ZhbCk7IF9fYyA8IDApCisJCXJldHVy biBzdGQ6Om5leHQoX19maXJzdCk7CisJICAgICAgcmV0dXJuIF9fZmlyc3Q7CisJICAgIH0K KworCSAgX0ZvcndhcmRJdGVyYXRvciBfX3ByZXZfbWlkID0gX19maXJzdDsKKwkgIHN0ZDo6 YWR2YW5jZShfX3ByZXZfbWlkLCBfX2hhbGYgLSAxKTsKKwkgIF9Gb3J3YXJkSXRlcmF0b3Ig X19taWRkbGUgPSBzdGQ6Om5leHQoX19wcmV2X21pZCk7CisJICBpZiAoYXV0byBfX2MgPSBf X2NvbXAoKl9fbWlkZGxlLCBfX3ZhbCk7IF9fYyAhPSAwKQorCSAgICB7CisJICAgICAgaWYg KF9fYyA8IDApCisJCXsKKwkJICBfX2ZpcnN0ID0gX19taWRkbGU7CisJCSAgKytfX2ZpcnN0 OworCQkgIF9fbGVuID0gX19sZW4gLSBfX2hhbGYgLSAxOworCQl9CisJICAgICAgZWxzZQor CQlfX2xlbiA9IF9faGFsZjsKKwkgICAgfQorCSAgZWxzZSBpZiAoX19jID0gX19jb21wKCpf X3ByZXZfbWlkLCBfX3ZhbCk7IF9fYyAhPSAwKQorCSAgICByZXR1cm4gX19taWRkbGU7CisJ ICBlbHNlIC8vIF9fYyA9PSAwLgorCSAgICBfX2xlbiA9IF9faGFsZiAtIDE7CisJfQorICAg ICAgcmV0dXJuIF9fZmlyc3Q7CisgICAgfQorI2VuZGlmCisKICAgLyoqCiAgICAqICBAYnJp ZWYgRmluZHMgdGhlIGZpcnN0IHBvc2l0aW9uIGluIHdoaWNoIEBhIHZhbCBjb3VsZCBiZSBp bnNlcnRlZAogICAgKiAgICAgICAgIHdpdGhvdXQgY2hhbmdpbmcgdGhlIG9yZGVyaW5nLgpA QCAtMTQ5NSw2ICsxNTM3LDEzIEBAIF9HTElCQ1hYX0VORF9OQU1FU1BBQ0VfQ09OVEFJTkVS CiAJICAgIHR5cGVuYW1lIGl0ZXJhdG9yX3RyYWl0czxfRm9yd2FyZEl0ZXJhdG9yPjo6dmFs dWVfdHlwZSwgX1RwPikKICAgICAgIF9fZ2xpYmN4eF9yZXF1aXJlc19wYXJ0aXRpb25lZF9s b3dlcihfX2ZpcnN0LCBfX2xhc3QsIF9fdmFsKTsKIAorI2lmIF9fY3BwX2xpYl90aHJlZV93 YXlfY29tcGFyaXNvbgorICAgICAgaWYgY29uc3RleHByICh0aHJlZV93YXlfY29tcGFyYWJs ZV93aXRoPAorCQkgICAgdHlwZW5hbWUgaXRlcmF0b3JfdHJhaXRzPF9Gb3J3YXJkSXRlcmF0 b3I+OjpyZWZlcmVuY2UsCisJCSAgICBjb25zdCBfVHAmPikKKwlyZXR1cm4gc3RkOjpfX2xv d2VyX2JvdW5kX3RocmVlX3dheShfX2ZpcnN0LCBfX2xhc3QsIF9fdmFsLAorCQkJCQkgICAg Y29tcGFyZV90aHJlZV93YXl7fSk7CisjZW5kaWYKICAgICAgIHJldHVybiBzdGQ6Ol9fbG93 ZXJfYm91bmQoX19maXJzdCwgX19sYXN0LCBfX3ZhbCwKIAkJCQlfX2dudV9jeHg6Ol9fb3Bz OjpfX2l0ZXJfbGVzc192YWwoKSk7CiAgICAgfQo= --------------kplPKmszOFx8WGNtlGxGMRGO--