Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:118160 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 57282 invoked from network); 2 Jul 2022 07:26:55 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 2 Jul 2022 07:26:55 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 8AF811804F8 for ; Sat, 2 Jul 2022 02:18:53 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS15169 209.85.128.0/17 X-Spam-Virus: No X-Envelope-From: Received: from mail-ed1-f42.google.com (mail-ed1-f42.google.com [209.85.208.42]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Sat, 2 Jul 2022 02:18:53 -0700 (PDT) Received: by mail-ed1-f42.google.com with SMTP id eq6so5583200edb.6 for ; Sat, 02 Jul 2022 02:18:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=DGHf/zNXOKG8XfuWxBBPSlj0AP1BBA0I6L1IW3LS4kg=; b=FVy2DHoneZB51C/3UHdudoDmKX04feLL7DdfBMCTNw7giAa40b36TORZl1pja2zVq0 2OTu0JLzxpoq8D6mfQaaN3m4gz2C0KRGBGeT5POg3zv3EjEWJjrjUnVk0VrEmr1GohOC CBja+2O06xD9VhE9EQl7MIpJ5/15T6NJ5OuBdJQ/vpUMcyCrRHMXVEpNJqW5fTi/f+Q/ jZepeucdcLfdNcnx8j5RlWxrOwfSZ1tDsEkHzjHUPFoP0mipdam8fYINEuU6sYcbORin 6k6vEbEhxzjF+uPYbtV/o7ezhReL68w7sGUv1ZRNEliCATuWiyibSPwSc7epUNU/YA78 u8oA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=DGHf/zNXOKG8XfuWxBBPSlj0AP1BBA0I6L1IW3LS4kg=; b=7MhN8J8/QO7otGFZRLlldTvX7+yccHgxoX/3PylSPcwtDjqbXoGwxtya38goue4FxL XCr+BzwrmBRtwg9H1hO9I+B89FuUcx8Qto1scd+97AzzhcFgyxkYi9kCDNJCcrZTWVxX gZ3FHXnznqg5ZCShYvHhYE3uUHc/zQKD4PcY+wj0e7JAHmMw8YKVRZL80lxmH+E4Tuq4 +6sDAwT5vI2/bp0PE4hmBW1s91VAl9HeQTqsC37SkjIibeskoNrOYJuH0y0m8ogPgrjl Y5fPWAGSRegWJPkIr3W4TBlMVTO3NFIamfX+YtjFjYjlCoeNQBPTOXDqel2cbi7O7K2y hYow== X-Gm-Message-State: AJIora/uf+snF0Kzkin1Z2F/WFDK5ujAdfVbAIh5QY/VwcrEocxOO8Gw kMs6Ir0Y5VfwrBwYutdLgT2VcWIrXwdtVhfVUlmIo5toK1M= X-Google-Smtp-Source: AGRyM1sD9CGpJlBPDxQUt3plCKZDIwibntBv+KugmCbKLWMKHPYji7Z0IKRvy3xYw9TUngglSTnEVjnkVZfsIAFR5Yw= X-Received: by 2002:aa7:dad6:0:b0:435:7a44:7480 with SMTP id x22-20020aa7dad6000000b004357a447480mr24435963eds.138.1656753531868; Sat, 02 Jul 2022 02:18:51 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: Date: Sat, 2 Jul 2022 11:18:15 +0200 Message-ID: To: Anton Smirnov Cc: Larry Garfield , php internals Content-Type: multipart/alternative; boundary="000000000000bf5b8405e2cefdeb" Subject: Re: [PHP-DEV] [RFC][Vote] Auto-capture closures From: divinity76@gmail.com (Hans Henrik Bergan) --000000000000bf5b8405e2cefdeb Content-Type: text/plain; charset="UTF-8" >But do any of them auto-capture by value? in c++ it's optional if you want to capture-by-value or capture-by-reference, [&]()->void{...}(); captures everything by reference and [=]()mutable->void{...}(); captures everything by value > I think that's still explicit fair assessment On Sat, 2 Jul 2022 at 05:02, Anton Smirnov wrote: > On Fri, 2022-07-01 at 16:11 +0200, Hans Henrik Bergan wrote: > > > As far as we are aware, only two languages in widespread use > > > require variables to be explicitly closed over: PHP and C++. All > > > other major languages capture implicitly, as is proposed here. > > But do any of them auto-capture by value? > > > to be fair to c++, it supports [&] to capture everything, like > > int a=1,b=2,c=3;[&]()->void{std::cout << a << b << c;}(); > > I think that's still explicit > > -- > Anton > --000000000000bf5b8405e2cefdeb--