220 39054 <CALmDwq2fJ2_tUJa13BWkOACnHqDqJM2q8Bfct2TqCyvsKnDLRg@mail.gmail.com> article
Path: news.gmane.org!.POSTED!not-for-mail
From: Nicolas Lesser <blitzrakete@gmail.com>
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: Re: constexpr! or constexpr(true)
Date: Tue, 10 Jul 2018 13:59:40 +0200
Lines: 265
Approved: news@gmane.org
Message-ID: <CALmDwq2fJ2_tUJa13BWkOACnHqDqJM2q8Bfct2TqCyvsKnDLRg@mail.gmail.com>
References: <f377a21c-926e-4cd8-9c25-5c36b7a7a62c@isocpp.org>
 <CALvx3hZ8bNfWMYvzty1Dzh6OXs029k5t-nr1m1nP9uCgisA21Q@mail.gmail.com> <67f9b892-ea8d-43ab-aa42-9e225bcbbbac@isocpp.org>
Reply-To: std-proposals@isocpp.org
NNTP-Posting-Host: blaine.gmane.org
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="0000000000000fd6fc0570a3deec"
X-Trace: blaine.gmane.org 1531223869 12831 195.159.176.226 (10 Jul 2018 11:57:49 GMT)
X-Complaints-To: usenet@blaine.gmane.org
NNTP-Posting-Date: Tue, 10 Jul 2018 11:57:49 +0000 (UTC)
To: std-proposals@isocpp.org
Original-X-From: std-proposals+bncBDXKNLEUTADRBN57SLNAKGQEPVWS2RQ@isocpp.org Tue Jul 10 13:57:45 2018
Return-path: <std-proposals+bncBDXKNLEUTADRBN57SLNAKGQEPVWS2RQ@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-oi0-f70.google.com ([209.85.218.70])
	by blaine.gmane.org with esmtp (Exim 4.84_2)
	(envelope-from <std-proposals+bncBDXKNLEUTADRBN57SLNAKGQEPVWS2RQ@isocpp.org>)
	id 1fcrH3-0003AJ-Mc
	for gclcip-std-proposals@m.gmane.org; Tue, 10 Jul 2018 13:57:41 +0200
Original-Received: by mail-oi0-f70.google.com with SMTP id s200-v6sf29919430oie.6
        for <gclcip-std-proposals@m.gmane.org>; Tue, 10 Jul 2018 04:59:53 -0700 (PDT)
ARC-Seal: i=2; a=rsa-sha256; t=1531223992; cv=pass;
        d=google.com; s=arc-20160816;
        b=iZt3cKKgnL+I1aCWjcs45UkkHPPPxb0aRGL1H4dIRwvkHpdM8vXgWwqTmDXibe35ca
         FnixUK3fGEmU/WQv8aVRXS/y2BuF7jvZqo2UjgkhAiuiUEfZ6hJNePCJPn9IYIL0YVhR
         SoYXk1Zn80IS8JzLgt051kCq/IdC7A6geZrM26LuwKrIV9RBDiSgn+jv50OVnEiwj0wS
         aybjQE0Nr+eyD8o23yd4v/1MreaLyy0t3LM6DMs1U3TZmiBGqfbCO19phRbUw85cQ4QS
         OgQw28ODBxBW2yk2P2L0BJu/AYqQPxftiB9K3E5daP0QSj3qfDnEq2gVSj3hgrGeikSe
         JAQg==
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:to:subject:message-id:date
         :from:in-reply-to:references:mime-version:arc-authentication-results
         :arc-message-signature:dkim-signature:arc-authentication-results;
        bh=/44vKjuYJ/JkfbsUvWxPbfDqhJro/tL34PLP7dkvFLQ=;
        b=SWL8jrqRKb7xDR2wdBo798dwvA/Nx1nKaaQGH0GVkl6PvavBOnrVQLoN11GBVDes2O
         nwHJgGtH+PbtkuEkFXUC1qrpRhb/zCxC26wlPfsGIalMXNOzgEPffLDHzqWytWOs2w7E
         9aLEmbtB5b/jUYAq4cCYv4Qx4KJv+Q2QPKhBkDh2D+SIjIRBdxG1FAXdjABJR8NBn9S7
         amIU3o/QGIKaqvmH8O21oq235QOuCsnlwyo4GNOzZhRVFHWL79FNyAaVyB0QWgRc0M4q
         MfQilQjvfy+mbUKoZ2TJ3lj35czQcmzqi2VBSkSSXZ2ZqepxYTOL2ESrrpRe6/gfqInX
         kx5g==
ARC-Authentication-Results: i=2; mx.google.com;
       dkim=pass header.i=@gmail.com header.s=20161025 header.b="NZF/zLrC";
       spf=pass (google.com: domain of blitzrakete@gmail.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=blitzrakete@gmail.com;
       dmarc=pass (p=NONE sp=QUARANTINE 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=mime-version:references:in-reply-to:from:date:message-id:subject:to
         :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=/44vKjuYJ/JkfbsUvWxPbfDqhJro/tL34PLP7dkvFLQ=;
        b=MK0uqdlxOFqhddELfbjXzxbF+6oYCo4zFqFE+Y6QO9Y/Co3693x3qjOqQiY98HjMCE
         lcx8KanoO/UdphdJVGqujb1k8DLFPQRQzOmp8DcqL8lCNK7EO+LeACADuJQMkf9k7gmp
         eokeWWR/FvG8dTfqakkgmanjL5laWdFiE1M/PC5euJjCal0XtM9xiO/rDRCSAqfuuChR
         UsmNc5Gr+/ahEM57u4z00n8vCCAXJay9yQ4iTfrC30Obv/pAJO/ZIo8dt14Gareo/i8L
         8RKS+LV1r8cGaSqYsT8oKLXjYU0PTxYHKqCSNK26Odbe0K7JyqkNPmAQte2xI+2CTT7P
         pZYA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to: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=/44vKjuYJ/JkfbsUvWxPbfDqhJro/tL34PLP7dkvFLQ=;
        b=am2rzyFEzxbxeEUqvA9B7MBXLAxtvyrjDHqOV3MIXDFTcpXNjLlVBciZIr4WDZnQtP
         GxUbT6jmyAHvxMMVfIHnvxRmuj2ZfhzJ2/TCFf0sn+686sdazwY4VwKcaEb5axruFAi+
         BxGKNecSOwha9LTobhTg662sL1gYRAguY9DnbXp9ZGw5Jg1UAt8GRmL4G5s8lJwk4q/U
         xDwwz8mXf3cw1nPc8rYQIStdi2Ficguw9CyYG852ChBVUoufn9vDg0PR30c7EerwdYzi
         9xi2kNYjk25ibbO71y5Ys12fHPHG29k9YYWq75FF3t8GXpSmOk4ADv8gvslu7Xu/fXve
         gO1g==
X-Gm-Message-State: APt69E0JrXrCB3aESwIEmwRxU2/twpJO0OE64EuAnFH9Hh6NUa7sGdSP
	nFyz3FjP3+0Ulg4Ewx9ldv+l4A==
X-Google-Smtp-Source: AAOMgpeqegOdVZIJ7GiD3qtoFTKctG6uJGlNe7/XGy8CcochxQp5GA3n5G3y+FFT5ArHj+RBxPXX5Q==
X-Received: by 2002:aca:6146:: with SMTP id v67-v6mr3268198oib.108.1531223992649;
        Tue, 10 Jul 2018 04:59:52 -0700 (PDT)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 2002:aca:37d4:: with SMTP id e203-v6ls9752000oia.5.gmail; Tue, 10
 Jul 2018 04:59:51 -0700 (PDT)
X-Received: by 2002:aca:f2c3:: with SMTP id q186-v6mr1149300oih.193.1531223991651;
        Tue, 10 Jul 2018 04:59:51 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1531223991; cv=none;
        d=google.com; s=arc-20160816;
        b=ogOAYZ/KfLffWQ7bCIT1WtR0Gp1Yo1IKXyOnL/4TqPjBrQL/79qjUis30lfH1ynsgA
         dOyzom5Glo4/JmiqdKK7WYGm2yNghq/FHlCMAToAZpWAyMwVjg+aaKf/aRUxP/Glf75R
         Qf864sBLdYCXo20DyRVWtxxRziLqhuBFkvD9vueOtSdw3ge0I1LKif7wVvcS8XFfzouS
         i56dZ0JHgYr38/brN8531wPjr/ojFc5KY+HDg7ogrZOTCrOTL7iqED3brydKQVkkEGpv
         a+t9XqLNr2kuN9PTTFVO+2CpDg/jinlmnHWqQMEXBeBg4auMpkcscSGpjwL0yj9EVF95
         YrOw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;
        h=to:subject:message-id:date:from:in-reply-to:references:mime-version
         :dkim-signature:arc-authentication-results;
        bh=571pJlM8T52/FJjF/OoKbyefzS/0Ty+EDynmnmwztGk=;
        b=vMKgqiRR5E8vzuSInuDtrgqkG8Q6emIArm+bT8Xn7DuBUzo/RJPRrEEoYjbweOrtjW
         RgFqkuM4lop04jeTy8MRBYjbIof789zowDD/sD9SOOwzaf6ey3C/B/4QqfiLUURpNL7m
         dv1AMZ1zwDY06BEJiw6T1BX4UT1vhFNA7lhIebNVusGLz2FcJ2paF5A5c5egvW+qmbNC
         XinHc49vQMfZlZZgNKfWiBrgSUPRkB1fzjvHuDLKB4kucN5ehBRkdPuCVAY2ZSQvMGhK
         6mvu4z8NGASOtqbXvyaqddiSMsjrXoA4Pobks/LvyT0142I7DfNPjf89Ya4Yo6QbFtR8
         ngHg==
ARC-Authentication-Results: i=1; mx.google.com;
       dkim=pass header.i=@gmail.com header.s=20161025 header.b="NZF/zLrC";
       spf=pass (google.com: domain of blitzrakete@gmail.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=blitzrakete@gmail.com;
       dmarc=pass (p=NONE sp=QUARANTINE 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 p67-v6sor11598317oib.308.2018.07.10.04.59.51
        for <std-proposals@isocpp.org>
        (Google Transport Security);
        Tue, 10 Jul 2018 04:59:51 -0700 (PDT)
Received-SPF: pass (google.com: domain of blitzrakete@gmail.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41;
X-Received: by 2002:aca:2cce:: with SMTP id s197-v6mr26129493ois.125.1531223991111;
 Tue, 10 Jul 2018 04:59:51 -0700 (PDT)
In-Reply-To: <67f9b892-ea8d-43ab-aa42-9e225bcbbbac@isocpp.org>
X-Original-Sender: blitzrakete@gmail.com
X-Original-Authentication-Results: mx.google.com;       dkim=pass
 header.i=@gmail.com header.s=20161025 header.b="NZF/zLrC";       spf=pass
 (google.com: domain of blitzrakete@gmail.com designates 209.85.220.41 as
 permitted sender) smtp.mailfrom=blitzrakete@gmail.com;       dmarc=pass
 (p=NONE sp=QUARANTINE 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:39054
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/39054>

--0000000000000fd6fc0570a3deec
Content-Type: text/plain; charset="UTF-8"

I don't like this syntax because it is too similar to the noexcept operator
and explicit bool, while being too dissimilar to the effects of those two.

If I read constexpr(true) I would assume that the function is simply
constexpr, not some more strict version of constexpr. Similarly, I'd expect
to write constexpr(f()) so that depending on f, mit function is constexpr
or not. But this is not what is happening, and what I expect to happen is
already possible.

I also don't see the motivation of inline(true) for the same reasons.
Additionally, forced inline is rarely needed and I don't think we should
standardize it, because it would require novel syntax for no real benefit.
Yes, it is useful, but only rarely.

But that's just my opinion.

On Tue, Jul 10, 2018, 1:54 PM <gmisocpp@gmail.com> wrote:

>
>
> On Tuesday, July 10, 2018 at 7:06:43 PM UTC+12, Richard Hodges wrote:
>>
>>
>>
>> On Tue, 10 Jul 2018 at 02:04, <gmis...@gmail.com> wrote:
>>
>>> Hello everyone
>>>
>>> Have the authors of p10731r.html considered if this suggestion:
>>>
>>> constexpr(true) int sqr(int n) {
>>>   return n*n;
>>> }
>>>
>>> is preferable and more consistent or flexible than this which they
>>> currently propose:
>>>
>>> constexpr! int sqr(int n) {
>>>   return n*n;
>>> }
>>>
>>> And would it offer the following possibility and would it be useful?:
>>>
>>> constexpr(some_condition()) int sqr(int n) { // constexpr this
>>> function on certain conditions.
>>>   return n*n;
>>> }
>>>
>>> Also many compilers support forceinline functionality etc. Perhaps this
>>> should be standardized too now?
>>> Therefore I think the authors might want to propose this too:
>>>
>>> inline(false) int sqr(int n) { // force inline. Or inline! if the
>>> committee thinks best.
>>>   return n*n;
>>> }
>>>
>>> Which might similarly allow this?:
>>> inline(some_other_condiition()) int sqr(int n) { // force inline. Or
>>> inline! if the committee thinks best.
>>>   return n*n;
>>> }
>>>
>>> where some_other_condition might test for a certain platform or compile
>>> where forcing inline or not might be desirable despite what the compiler
>>> thinks.
>>>
>>> It seems to me using ! is a little unusual syntax and be less consistent
>>> and flexible than what I'm proposing but I admit ! is shorter.
>>>
>>> I see such macros regarding forceinline in various code bases such as
>>> libcxx's __config file. So perhaps forceinline's time has come too.
>>>
>>> What do the authors of p1073r1 and others think?
>>>
>>
>> What one of the others thinks:
>>
>> a) The exclamation mark on the end is revolting, adding nothing to the
>> syntax.
>>
>> b) Do you have a compelling, motivating use case in mind? By this I mean
>> a real one, not just "we ought to have it because it seems consistent".
>>
>> I ask for b) because I am strongly of the view that code should express
>> intent, which the compiler then turns into action. What is the "intent" of
>> writing:
>>
>> constexpr(some_test()) int sqr(int n);
>>
>> ?
>>
>> What could some_test() possibly be testing? Why would it matter? The
>> implementation of sqr is either a constexpr expression or it's not. If it
>> is, its constexpr-ness can be undone by the context of its use (because it
>> takes an argument). What's wrong with that?
>>
>>
>>
> The main motivation for my post was I wasn't hot for the ! syntax in
> constexpr!. constexpr(true) seems more c++-ish to me.
> I can't myself see any reason to want to conditionally constexpr some
> function but the non ! syntax doesn't shut any doors if people later did
> find a use case.
> I wouldn't be desperately unhappy with constexpr! though.
>
> But I'd like to see inline get the same treatment. So we get __forceinline
> standardized and it seems it should be consistent with the constexpr syntax,
> There I can imagine inline(some_test()) int sqr(int n); might be more
> useful, but I'm not sure.
> some_test() might return a different value based on some compilers ability
> to inline in a desirable way or not.
> But even there in reality I imagine people will #if different functions
> anyway if that was the case.
>
> __forceline being standardized as inline(true) or inline! is the main
> thing.
> And if there was a use for inline(some_condition()) then it seems
> constexpr(true) would be the better syntax to match it even if no real
> expression is supported.
>
> --
> 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
> email 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/67f9b892-ea8d-43ab-aa42-9e225bcbbbac%40isocpp.org
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/67f9b892-ea8d-43ab-aa42-9e225bcbbbac%40isocpp.org?utm_medium=email&utm_source=footer>
> .
>

-- 
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 email 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/CALmDwq2fJ2_tUJa13BWkOACnHqDqJM2q8Bfct2TqCyvsKnDLRg%40mail.gmail.com.

--0000000000000fd6fc0570a3deec
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto">I don&#39;t like this syntax because it is too similar to=
 the noexcept operator and explicit bool, while being too dissimilar to the=
 effects of those two.<div dir=3D"auto"><br></div><div dir=3D"auto">If I re=
ad constexpr(true) I would assume that the function is simply constexpr, no=
t some more strict version of constexpr. Similarly, I&#39;d expect to write=
 constexpr(f()) so that depending on f, mit function is constexpr or not. B=
ut this is not what is happening, and what I expect to happen is already po=
ssible.</div><div dir=3D"auto"><br></div><div dir=3D"auto">I also don&#39;t=
 see the motivation of inline(true) for the same reasons. Additionally, for=
ced inline is rarely needed and I don&#39;t think we should standardize it,=
 because it would require novel syntax for no real benefit. Yes, it is usef=
ul, but only rarely.</div><div dir=3D"auto"><br></div><div dir=3D"auto">But=
 that&#39;s just my opinion.</div></div><br><div class=3D"gmail_quote"><div=
 dir=3D"ltr">On Tue, Jul 10, 2018, 1:54 PM  &lt;<a href=3D"mailto:gmisocpp@=
gmail.com">gmisocpp@gmail.com</a>&gt; wrote:<br></div><blockquote class=3D"=
gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-=
left:1ex"><div dir=3D"ltr"><br><br>On Tuesday, July 10, 2018 at 7:06:43 PM =
UTC+12, Richard Hodges wrote:<blockquote class=3D"gmail_quote" style=3D"mar=
gin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);b=
order-left-width:1px;border-left-style:solid"><div dir=3D"ltr"><br><br><div=
 class=3D"gmail_quote"><div dir=3D"ltr">On Tue, 10 Jul 2018 at 02:04, &lt;<=
a rel=3D"nofollow noreferrer">gmis...@gmail.com</a>&gt; wrote:<br></div><bl=
ockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;padding-le=
ft:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left=
-style:solid"><div dir=3D"ltr"><div style=3D"max-height:10000px"><div dir=
=3D"ltr"><div>Hello everyone</div><div><br>Have the authors of=C2=A0p10731r=
..html considered if this suggestion:</div><div><br></div><p>constexpr(true)=
 int sqr(int n) {<br>=C2=A0 return n*n;<br>}</p><div><br></div><div>is pref=
erable and more consistent or flexible than this which=C2=A0they currently =
propose:</div><div><br></div><div>constexpr! int sqr(int n) {<br>=C2=A0 ret=
urn n*n;<br>}</div><div><br></div><div>And would=C2=A0it offer=C2=A0the fol=
lowing=C2=A0possibility and would it be useful?:</div><div><br></div><div>c=
onstexpr(some_condition()) int sqr(int n) { //=C2=A0constexpr this function=
=C2=A0on certain=C2=A0conditions.<br>=C2=A0 return n*n;<br>}</div><div><br>=
Also=C2=A0many compilers support=C2=A0forceinline functionality etc. Perhap=
s this should be standardized too now?</div><div>Therefore I think the auth=
ors might want to=C2=A0propose this too:</div><div><br></div><div>inline(fa=
lse) int sqr(int n) { // force inline. Or inline! if the committee thinks b=
est.<br>=C2=A0 return n*n;<br>}</div><div><br></div><div>Which might simila=
rly allow this?:</div><div>inline(some_other_condiition()) int sqr(int n) {=
 // force inline. Or inline! if the committee thinks best.<br>=C2=A0 return=
 n*n;<br>}</div><div><br></div><div>where some_other_condition might=C2=A0t=
est for a certain platform or compile where forcing inline or not might be =
desirable despite what the compiler thinks.</div><div><br></div><div>It see=
ms to me using ! is a little unusual syntax=C2=A0and be less consistent and=
 flexible than what I&#39;m proposing but=C2=A0I admit ! is shorter.</div><=
div><div><br></div><div>I see such macros regarding forceinline in various =
code bases such as libcxx&#39;s __config file. So perhaps forceinline&#39;s=
 time has come too.</div></div><div><br></div><div>What do the authors of=
=C2=A0p1073r1 and others think?</div></div></div></div></blockquote><div><b=
r></div><div>What one of the others thinks:</div><div><br></div><div>a) The=
 exclamation mark on the end is revolting, adding nothing to the syntax.</d=
iv><div><br></div><div>b) Do you have a compelling, motivating use case in =
mind? By this I mean a real one, not just &quot;we ought to have it because=
 it seems consistent&quot;.</div><div><br></div><div>I ask for b) because I=
 am strongly of the view that code should express intent, which the compile=
r then turns into action. What is the &quot;intent&quot; of writing:</div><=
div><br></div><div><font face=3D"monospace, monospace">constexpr(some_test(=
)) int sqr(int n);</font>=C2=A0</div><div><br></div><div>?</div><div><br></=
div><div>What could some_test() possibly be testing? Why would it matter? T=
he implementation of sqr is either a constexpr expression or it&#39;s not. =
If it is, its constexpr-ness can be undone by the context of its use (becau=
se it takes an argument). What&#39;s wrong with that?</div><div><br></div><=
div><br></div></div></div></blockquote><div><br></div><div><div>The main mo=
tivation=C2=A0for my post was=C2=A0I=C2=A0wasn&#39;t hot for=C2=A0the !=C2=
=A0syntax=C2=A0in constexpr!.=C2=A0constexpr(true) seems more c++-ish to me=
..</div><div>I can&#39;t myself see any reason to want to conditionally cons=
texpr some function but the non ! syntax doesn&#39;t shut any doors=C2=A0if=
=C2=A0people later did find a use case.</div><div>I wouldn&#39;t be despera=
tely unhappy with constexpr! though.</div></div><div><br></div><div>But I&#=
39;d like to see inline get the same treatment. So we get=C2=A0__forceinlin=
e standardized and it seems it should be consistent with the constexpr synt=
ax,</div><div>There I can imagine <font face=3D"monospace, monospace">inlin=
e(some_test()) int sqr(int n);</font>=C2=A0might be more useful, but I&#39;=
m not sure.</div><div>some_test() might return a different value based=C2=
=A0on some compilers=C2=A0ability to inline in a desirable way or not.</div=
><div>But even there in reality I imagine people will #if different functio=
ns anyway if that was the case.</div><div><br></div><div>__forceline being =
standardized as inline(true) or inline! is the main thing.</div><div>And=C2=
=A0if there was a use for inline(some_condition()) then it seems constexpr(=
true) would be the better syntax to match it even if no real expression is =
supported.</div><div><br></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" target=3D"_=
blank" rel=3D"noreferrer">std-proposals+unsubscribe@isocpp.org</a>.<br>
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org" target=3D"_blank" rel=3D"noreferrer">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/67f9b892-ea8d-43ab-aa42-9e225bcbbbac%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" target=3D"_blank" =
rel=3D"noreferrer">https://groups.google.com/a/isocpp.org/d/msgid/std-propo=
sals/67f9b892-ea8d-43ab-aa42-9e225bcbbbac%40isocpp.org</a>.<br>
</blockquote></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/CALmDwq2fJ2_tUJa13BWkOACnHqDqJM2q8Bfc=
t2TqCyvsKnDLRg%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter">htt=
ps://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CALmDwq2fJ2_tUJa1=
3BWkOACnHqDqJM2q8Bfct2TqCyvsKnDLRg%40mail.gmail.com</a>.<br />

--0000000000000fd6fc0570a3deec--

.
