Topic: Make std::invoke and std::reference_wrapper constexpr


Author: benni.buch@gmail.com
Date: Tue, 27 Sep 2016 04:02:06 -0700 (PDT)
Raw View
------=_Part_2686_480321438.1474974126442
Content-Type: multipart/alternative;
 boundary="----=_Part_2687_407746899.1474974126442"

------=_Part_2687_407746899.1474974126442
Content-Type: text/plain; charset=UTF-8

I want to add constexpr to the following functions:

*20.14.3 Function template invoke [func.invoke]*

template <class F, class... Args>
  constexpr result_of_t<F&&(Args&&...)> invoke(F&& f, Args&&... args);

*20.14.4 Class template reference_wrapper [refwrap]*

namespace std {
  template <class T> class reference_wrapper {
  public :
    // types
    using type = T;

    // construct/copy/destroy
    constexpr reference_wrapper(T&) noexcept;
    reference_wrapper(T&&) = delete; // do not bind to temporary objects
    constexpr reference_wrapper(const reference_wrapper& x) noexcept;

    // assignment
    constexpr reference_wrapper& operator=(const reference_wrapper& x)
noexcept;

    // access
    constexpr operator T& () const noexcept;
    constexpr T& get() const noexcept;

    // invocation
    template <class... ArgTypes>
    constexpr result_of_t<T&(ArgTypes&&...)>
    operator() (ArgTypes&&...) const;
  };
}

*20.14.4.5 reference_wrapper helper functions [refwrap.helpers]*

template <class T> constexpr reference_wrapper<T> ref(T& t) noexcept;

template <class T> constexpr reference_wrapper<T> ref(reference_wrapper<T>
t) noexcept;

template <class T> constexpr reference_wrapper<const T> cref(const T& t)
noexcept;

template <class T> constexpr reference_wrapper<const T>
cref(reference_wrapper<T> t) noexcept;


invoke and reference_wrapper are very basic and powerful tools that might
be used in constexpr functions. I'm working with C++17 for a while and need
to implement constexpr versions by my self to use them in constexpr
expressions.

--
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/6f3821f7-2f31-47c4-a5eb-56039332b537%40isocpp.org.

------=_Part_2687_407746899.1474974126442
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I want to add <span style=3D"font-family: courier new,mono=
space;">constexpr</span> to the following functions:<br><br><b>20.14.3 Func=
tion template invoke [func.invoke]</b><br><br><span style=3D"font-family: c=
ourier new,monospace;">template &lt;class F, class... Args&gt;<br>=C2=A0 <s=
pan style=3D"background-color: rgb(0, 255, 0);">constexpr</span> result_of_=
t&lt;F&amp;&amp;(Args&amp;&amp;...)&gt; invoke(F&amp;&amp; f, Args&amp;&amp=
;... args);</span><br><br><b>20.14.4 Class template reference_wrapper [refw=
rap]</b><br><br><span style=3D"font-family: courier new,monospace;">namespa=
ce std {<br>=C2=A0 template &lt;class T&gt; class reference_wrapper {<br>=
=C2=A0 public :<br>=C2=A0=C2=A0=C2=A0 // types<br>=C2=A0=C2=A0=C2=A0 using =
type =3D T;<br><br>=C2=A0=C2=A0=C2=A0 // construct/copy/destroy<br>=C2=A0=
=C2=A0=C2=A0 <span style=3D"background-color: rgb(0, 255, 0);">constexpr</s=
pan> reference_wrapper(T&amp;) noexcept;<br>=C2=A0=C2=A0=C2=A0 reference_wr=
apper(T&amp;&amp;) =3D delete; // do not bind to temporary objects<br>=C2=
=A0=C2=A0=C2=A0 <span style=3D"background-color: rgb(0, 255, 0);">constexpr=
</span> reference_wrapper(const reference_wrapper&amp; x) noexcept;<br><br>=
=C2=A0=C2=A0=C2=A0 // assignment<br>=C2=A0=C2=A0=C2=A0 <span style=3D"backg=
round-color: rgb(0, 255, 0);">constexpr</span> reference_wrapper&amp; opera=
tor=3D(const reference_wrapper&amp; x) noexcept;<br><br>=C2=A0=C2=A0=C2=A0 =
// access<br>=C2=A0=C2=A0=C2=A0 <span style=3D"background-color: rgb(0, 255=
, 0);">constexpr</span> operator T&amp; () const noexcept;<br>=C2=A0=C2=A0=
=C2=A0 <span style=3D"background-color: rgb(0, 255, 0);">constexpr</span> T=
&amp; get() const noexcept;<br><br>=C2=A0=C2=A0=C2=A0 // invocation<br>=C2=
=A0=C2=A0=C2=A0 template &lt;class... ArgTypes&gt;<br>=C2=A0=C2=A0=C2=A0 <s=
pan style=3D"background-color: rgb(0, 255, 0);">constexpr</span> result_of_=
t&lt;T&amp;(ArgTypes&amp;&amp;...)&gt;<br>=C2=A0=C2=A0=C2=A0 operator() (Ar=
gTypes&amp;&amp;...) const;<br>=C2=A0 };<br>}</span><br><br><b>20.14.4.5 re=
ference_wrapper helper functions [refwrap.helpers]</b><br><br><span style=
=3D"font-family: courier new,monospace;">template &lt;class T&gt; <span sty=
le=3D"background-color: rgb(0, 255, 0);">constexpr</span> reference_wrapper=
&lt;T&gt; ref(T&amp; t) noexcept;</span><br><br><span style=3D"font-family:=
 courier new,monospace;">template &lt;class T&gt; <span style=3D"background=
-color: rgb(0, 255, 0);">constexpr</span> reference_wrapper&lt;T&gt; ref(re=
ference_wrapper&lt;T&gt; t) noexcept;</span><br><br><span style=3D"font-fam=
ily: courier new,monospace;">template &lt;class T&gt; <span style=3D"backgr=
ound-color: rgb(0, 255, 0);">constexpr</span> reference_wrapper&lt;const T&=
gt; cref(const T&amp; t) noexcept;</span><br><br><span style=3D"font-family=
: courier new,monospace;">template &lt;class T&gt; <span style=3D"backgroun=
d-color: rgb(0, 255, 0);">constexpr</span> reference_wrapper&lt;const T&gt;=
 cref(reference_wrapper&lt;T&gt; t) noexcept;</span><br><br><br><span style=
=3D"font-family: courier new,monospace;">invoke</span> and <span style=3D"f=
ont-family: courier new,monospace;">reference_wrapper</span> are very basic=
 and powerful tools that might be used in <span style=3D"font-family: couri=
er new,monospace;">constexpr</span> functions. I&#39;m working with C++17 f=
or a while and need to implement <span style=3D"font-family: courier new,mo=
nospace;">constexpr</span> versions by my self to use them in <span style=
=3D"font-family: courier new,monospace;">constexpr</span> expressions.<br><=
/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/6f3821f7-2f31-47c4-a5eb-56039332b537%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/6f3821f7-2f31-47c4-a5eb-56039332b537=
%40isocpp.org</a>.<br />

------=_Part_2687_407746899.1474974126442--

------=_Part_2686_480321438.1474974126442--

.


Author: Richard Smith <richard@metafoo.co.uk>
Date: Tue, 27 Sep 2016 13:48:11 -0700
Raw View
--94eb2c0c9bb2ea5205053d835c34
Content-Type: text/plain; charset=UTF-8

Yes please :)

On Tue, Sep 27, 2016 at 4:02 AM, <benni.buch@gmail.com> wrote:

> I want to add constexpr to the following functions:
>
> *20.14.3 Function template invoke [func.invoke]*
>
> template <class F, class... Args>
>   constexpr result_of_t<F&&(Args&&...)> invoke(F&& f, Args&&... args);
>
> *20.14.4 Class template reference_wrapper [refwrap]*
>
> namespace std {
>   template <class T> class reference_wrapper {
>   public :
>     // types
>     using type = T;
>
>     // construct/copy/destroy
>     constexpr reference_wrapper(T&) noexcept;
>     reference_wrapper(T&&) = delete; // do not bind to temporary objects
>     constexpr reference_wrapper(const reference_wrapper& x) noexcept;
>
>     // assignment
>     constexpr reference_wrapper& operator=(const reference_wrapper& x)
> noexcept;
>
>     // access
>     constexpr operator T& () const noexcept;
>     constexpr T& get() const noexcept;
>
>     // invocation
>     template <class... ArgTypes>
>     constexpr result_of_t<T&(ArgTypes&&...)>
>     operator() (ArgTypes&&...) const;
>   };
> }
>
> *20.14.4.5 reference_wrapper helper functions [refwrap.helpers]*
>
> template <class T> constexpr reference_wrapper<T> ref(T& t) noexcept;
>
> template <class T> constexpr reference_wrapper<T>
> ref(reference_wrapper<T> t) noexcept;
>
> template <class T> constexpr reference_wrapper<const T> cref(const T& t)
> noexcept;
>
> template <class T> constexpr reference_wrapper<const T>
> cref(reference_wrapper<T> t) noexcept;
>
>
> invoke and reference_wrapper are very basic and powerful tools that might
> be used in constexpr functions. I'm working with C++17 for a while and
> need to implement constexpr versions by my self to use them in constexpr
> expressions.
>
> --
> 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/6f3821f7-2f31-47c4-
> a5eb-56039332b537%40isocpp.org
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/6f3821f7-2f31-47c4-a5eb-56039332b537%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/CAOfiQqmZNz6pET%2Bt_jOYEWjF3O7VcYpkT_TLvEqhN0mWkPuzmA%40mail.gmail.com.

--94eb2c0c9bb2ea5205053d835c34
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Yes please :)</div><div class=3D"gmail_extra"><br><div cla=
ss=3D"gmail_quote">On Tue, Sep 27, 2016 at 4:02 AM,  <span dir=3D"ltr">&lt;=
<a href=3D"mailto:benni.buch@gmail.com" target=3D"_blank">benni.buch@gmail.=
com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr=
">I want to add <span style=3D"font-family:courier new,monospace">constexpr=
</span> to the following functions:<br><br><b>20.14.3 Function template inv=
oke [func.invoke]</b><br><br><span style=3D"font-family:courier new,monospa=
ce">template &lt;class F, class... Args&gt;<br>=C2=A0 <span style=3D"backgr=
ound-color:rgb(0,255,0)">constexpr</span> result_of_t&lt;F&amp;&amp;(Args&a=
mp;&amp;...)&gt; invoke(F&amp;&amp; f, Args&amp;&amp;... args);</span><br><=
br><b>20.14.4 Class template reference_wrapper [refwrap]</b><br><br><span s=
tyle=3D"font-family:courier new,monospace">namespace std {<br>=C2=A0 templa=
te &lt;class T&gt; class reference_wrapper {<br>=C2=A0 public :<br>=C2=A0=
=C2=A0=C2=A0 // types<br>=C2=A0=C2=A0=C2=A0 using type =3D T;<br><br>=C2=A0=
=C2=A0=C2=A0 // construct/copy/destroy<br>=C2=A0=C2=A0=C2=A0 <span style=3D=
"background-color:rgb(0,255,0)">constexpr</span> reference_wrapper(T&amp;) =
noexcept;<br>=C2=A0=C2=A0=C2=A0 reference_wrapper(T&amp;&amp;) =3D delete; =
// do not bind to temporary objects<br>=C2=A0=C2=A0=C2=A0 <span style=3D"ba=
ckground-color:rgb(0,255,0)">constexpr</span> reference_wrapper(const refer=
ence_wrapper&amp; x) noexcept;<br><br>=C2=A0=C2=A0=C2=A0 // assignment<br>=
=C2=A0=C2=A0=C2=A0 <span style=3D"background-color:rgb(0,255,0)">constexpr<=
/span> reference_wrapper&amp; operator=3D(const reference_wrapper&amp; x) n=
oexcept;<br><br>=C2=A0=C2=A0=C2=A0 // access<br>=C2=A0=C2=A0=C2=A0 <span st=
yle=3D"background-color:rgb(0,255,0)">constexpr</span> operator T&amp; () c=
onst noexcept;<br>=C2=A0=C2=A0=C2=A0 <span style=3D"background-color:rgb(0,=
255,0)">constexpr</span> T&amp; get() const noexcept;<br><br>=C2=A0=C2=A0=
=C2=A0 // invocation<br>=C2=A0=C2=A0=C2=A0 template &lt;class... ArgTypes&g=
t;<br>=C2=A0=C2=A0=C2=A0 <span style=3D"background-color:rgb(0,255,0)">cons=
texpr</span> result_of_t&lt;T&amp;(ArgTypes&amp;&amp;...)&gt;<br>=C2=A0=C2=
=A0=C2=A0 operator() (ArgTypes&amp;&amp;...) const;<br>=C2=A0 };<br>}</span=
><br><br><b>20.14.4.5 reference_wrapper helper functions [refwrap.helpers]<=
/b><br><br><span style=3D"font-family:courier new,monospace">template &lt;c=
lass T&gt; <span style=3D"background-color:rgb(0,255,0)">constexpr</span> r=
eference_wrapper&lt;T&gt; ref(T&amp; t) noexcept;</span><br><br><span style=
=3D"font-family:courier new,monospace">template &lt;class T&gt; <span style=
=3D"background-color:rgb(0,255,0)">constexpr</span> reference_wrapper&lt;T&=
gt; ref(reference_wrapper&lt;T&gt; t) noexcept;</span><br><br><span style=
=3D"font-family:courier new,monospace">template &lt;class T&gt; <span style=
=3D"background-color:rgb(0,255,0)">constexpr</span> reference_wrapper&lt;co=
nst T&gt; cref(const T&amp; t) noexcept;</span><br><br><span style=3D"font-=
family:courier new,monospace">template &lt;class T&gt; <span style=3D"backg=
round-color:rgb(0,255,0)">constexpr</span> reference_wrapper&lt;const T&gt;=
 cref(reference_wrapper&lt;T&gt; t) noexcept;</span><br><br><br><span style=
=3D"font-family:courier new,monospace">invoke</span> and <span style=3D"fon=
t-family:courier new,monospace">reference_wrapper</span> are very basic and=
 powerful tools that might be used in <span style=3D"font-family:courier ne=
w,monospace">constexpr</span> functions. I&#39;m working with C++17 for a w=
hile and need to implement <span style=3D"font-family:courier new,monospace=
">constexpr</span> versions by my self to use them in <span style=3D"font-f=
amily:courier new,monospace">constexpr</span> expressions.<span class=3D"HO=
EnZb"><font color=3D"#888888"><br></font></span></div><span class=3D"HOEnZb=
"><font color=3D"#888888">

<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">std-proposals+unsubscribe@<wbr>isocpp.org</a>.<br>
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org" target=3D"_blank">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/6f3821f7-2f31-47c4-a5eb-56039332b537%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" target=3D"_blank">=
https://groups.google.com/a/<wbr>isocpp.org/d/msgid/std-<wbr>proposals/6f38=
21f7-2f31-47c4-<wbr>a5eb-56039332b537%40isocpp.org</a><wbr>.<br>
</font></span></blockquote></div><br></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/CAOfiQqmZNz6pET%2Bt_jOYEWjF3O7VcYpkT_=
TLvEqhN0mWkPuzmA%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter">h=
ttps://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAOfiQqmZNz6pET=
%2Bt_jOYEWjF3O7VcYpkT_TLvEqhN0mWkPuzmA%40mail.gmail.com</a>.<br />

--94eb2c0c9bb2ea5205053d835c34--

.


Author: benni.buch@gmail.com
Date: Wed, 28 Sep 2016 07:49:56 -0700 (PDT)
Raw View
------=_Part_5472_662087329.1475074196172
Content-Type: multipart/alternative;
 boundary="----=_Part_5473_437219237.1475074196172"

------=_Part_5473_437219237.1475074196172
Content-Type: text/plain; charset=UTF-8

I did write a proposal, please comment ;-)

http://htmlpreview.github.io/?https://github.com/bebuch/proposals/blob/master/Make%20std::invoke%20and%20std::reference_wrapper%20constexpr.html
https://github.com/bebuch/proposals/blob/master/Make%20std::invoke%20and%20std::reference_wrapper%20constexpr.html

Am Dienstag, 27. September 2016 22:48:14 UTC+2 schrieb Richard Smith:
>
> Yes please :)
>
> On Tue, Sep 27, 2016 at 4:02 AM, <benni...@gmail.com <javascript:>> wrote:
>
>> I want to add constexpr to the following functions:
>>
>> *20.14.3 Function template invoke [func.invoke]*
>>
>> template <class F, class... Args>
>>   constexpr result_of_t<F&&(Args&&...)> invoke(F&& f, Args&&... args);
>>
>> *20.14.4 Class template reference_wrapper [refwrap]*
>>
>> namespace std {
>>   template <class T> class reference_wrapper {
>>   public :
>>     // types
>>     using type = T;
>>
>>     // construct/copy/destroy
>>     constexpr reference_wrapper(T&) noexcept;
>>     reference_wrapper(T&&) = delete; // do not bind to temporary objects
>>     constexpr reference_wrapper(const reference_wrapper& x) noexcept;
>>
>>     // assignment
>>     constexpr reference_wrapper& operator=(const reference_wrapper& x)
>> noexcept;
>>
>>     // access
>>     constexpr operator T& () const noexcept;
>>     constexpr T& get() const noexcept;
>>
>>     // invocation
>>     template <class... ArgTypes>
>>     constexpr result_of_t<T&(ArgTypes&&...)>
>>     operator() (ArgTypes&&...) const;
>>   };
>> }
>>
>> *20.14.4.5 reference_wrapper helper functions [refwrap.helpers]*
>>
>> template <class T> constexpr reference_wrapper<T> ref(T& t) noexcept;
>>
>> template <class T> constexpr reference_wrapper<T>
>> ref(reference_wrapper<T> t) noexcept;
>>
>> template <class T> constexpr reference_wrapper<const T> cref(const T& t)
>> noexcept;
>>
>> template <class T> constexpr reference_wrapper<const T>
>> cref(reference_wrapper<T> t) noexcept;
>>
>>
>> invoke and reference_wrapper are very basic and powerful tools that
>> might be used in constexpr functions. I'm working with C++17 for a while
>> and need to implement constexpr versions by my self to use them in
>> constexpr expressions.
>>
>> --
>> 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-proposal...@isocpp.org <javascript:>.
>> To post to this group, send email to std-pr...@isocpp.org <javascript:>.
>> To view this discussion on the web visit
>> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/6f3821f7-2f31-47c4-a5eb-56039332b537%40isocpp.org
>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/6f3821f7-2f31-47c4-a5eb-56039332b537%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/9fc7b155-6d19-4665-8b40-66580a4c530f%40isocpp.org.

------=_Part_5473_437219237.1475074196172
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I did write a proposal, please comment ;-)<br><br><a href=
=3D"http://htmlpreview.github.io/?https://github.com/bebuch/proposals/blob/=
master/Make%20std::invoke%20and%20std::reference_wrapper%20constexpr.html">=
http://htmlpreview.github.io/?https://github.com/bebuch/proposals/blob/mast=
er/Make%20std::invoke%20and%20std::reference_wrapper%20constexpr.html</a><b=
r><a href=3D"https://github.com/bebuch/proposals/blob/master/Make%20std::in=
voke%20and%20std::reference_wrapper%20constexpr.html">https://github.com/be=
buch/proposals/blob/master/Make%20std::invoke%20and%20std::reference_wrappe=
r%20constexpr.html</a><br><br>Am Dienstag, 27. September 2016 22:48:14 UTC+=
2 schrieb Richard Smith:<blockquote class=3D"gmail_quote" style=3D"margin: =
0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div d=
ir=3D"ltr">Yes please :)</div><div><br><div class=3D"gmail_quote">On Tue, S=
ep 27, 2016 at 4:02 AM,  <span dir=3D"ltr">&lt;<a href=3D"javascript:" targ=
et=3D"_blank" gdf-obfuscated-mailto=3D"ekZQla8ZBQAJ" rel=3D"nofollow" onmou=
sedown=3D"this.href=3D&#39;javascript:&#39;;return true;" onclick=3D"this.h=
ref=3D&#39;javascript:&#39;;return true;">benni...@gmail.com</a>&gt;</span>=
 wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bor=
der-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">I want to add <s=
pan style=3D"font-family:courier new,monospace">constexpr</span> to the fol=
lowing functions:<br><br><b>20.14.3 Function template invoke [func.invoke]<=
/b><br><br><span style=3D"font-family:courier new,monospace">template &lt;c=
lass F, class... Args&gt;<br>=C2=A0 <span style=3D"background-color:rgb(0,2=
55,0)">constexpr</span> result_of_t&lt;F&amp;&amp;(Args&amp;&amp;...)&gt; i=
nvoke(F&amp;&amp; f, Args&amp;&amp;... args);</span><br><br><b>20.14.4 Clas=
s template reference_wrapper [refwrap]</b><br><br><span style=3D"font-famil=
y:courier new,monospace">namespace std {<br>=C2=A0 template &lt;class T&gt;=
 class reference_wrapper {<br>=C2=A0 public :<br>=C2=A0=C2=A0=C2=A0 // type=
s<br>=C2=A0=C2=A0=C2=A0 using type =3D T;<br><br>=C2=A0=C2=A0=C2=A0 // cons=
truct/copy/destroy<br>=C2=A0=C2=A0=C2=A0 <span style=3D"background-color:rg=
b(0,255,0)">constexpr</span> reference_wrapper(T&amp;) noexcept;<br>=C2=A0=
=C2=A0=C2=A0 reference_wrapper(T&amp;&amp;) =3D delete; // do not bind to t=
emporary objects<br>=C2=A0=C2=A0=C2=A0 <span style=3D"background-color:rgb(=
0,255,0)">constexpr</span> reference_wrapper(const reference_wrapper&amp; x=
) noexcept;<br><br>=C2=A0=C2=A0=C2=A0 // assignment<br>=C2=A0=C2=A0=C2=A0 <=
span style=3D"background-color:rgb(0,255,0)">constexpr</span> reference_wra=
pper&amp; operator=3D(const reference_wrapper&amp; x) noexcept;<br><br>=C2=
=A0=C2=A0=C2=A0 // access<br>=C2=A0=C2=A0=C2=A0 <span style=3D"background-c=
olor:rgb(0,255,0)">constexpr</span> operator T&amp; () const noexcept;<br>=
=C2=A0=C2=A0=C2=A0 <span style=3D"background-color:rgb(0,255,0)">constexpr<=
/span> T&amp; get() const noexcept;<br><br>=C2=A0=C2=A0=C2=A0 // invocation=
<br>=C2=A0=C2=A0=C2=A0 template &lt;class... ArgTypes&gt;<br>=C2=A0=C2=A0=
=C2=A0 <span style=3D"background-color:rgb(0,255,0)">constexpr</span> resul=
t_of_t&lt;T&amp;(ArgTypes&amp;&amp;...)&gt;<br>=C2=A0=C2=A0=C2=A0 operator(=
) (ArgTypes&amp;&amp;...) const;<br>=C2=A0 };<br>}</span><br><br><b>20.14.4=
..5 reference_wrapper helper functions [refwrap.helpers]</b><br><br><span st=
yle=3D"font-family:courier new,monospace">template &lt;class T&gt; <span st=
yle=3D"background-color:rgb(0,255,0)">constexpr</span> reference_wrapper&lt=
;T&gt; ref(T&amp; t) noexcept;</span><br><br><span style=3D"font-family:cou=
rier new,monospace">template &lt;class T&gt; <span style=3D"background-colo=
r:rgb(0,255,0)">constexpr</span> reference_wrapper&lt;T&gt; ref(reference_w=
rapper&lt;T&gt; t) noexcept;</span><br><br><span style=3D"font-family:couri=
er new,monospace">template &lt;class T&gt; <span style=3D"background-color:=
rgb(0,255,0)">constexpr</span> reference_wrapper&lt;const T&gt; cref(const =
T&amp; t) noexcept;</span><br><br><span style=3D"font-family:courier new,mo=
nospace">template &lt;class T&gt; <span style=3D"background-color:rgb(0,255=
,0)">constexpr</span> reference_wrapper&lt;const T&gt; cref(reference_wrapp=
er&lt;T&gt; t) noexcept;</span><br><br><br><span style=3D"font-family:couri=
er new,monospace">invoke</span> and <span style=3D"font-family:courier new,=
monospace">reference_wrapper</span> are very basic and powerful tools that =
might be used in <span style=3D"font-family:courier new,monospace">constexp=
r</span> functions. I&#39;m working with C++17 for a while and need to impl=
ement <span style=3D"font-family:courier new,monospace">constexpr</span> ve=
rsions by my self to use them in <span style=3D"font-family:courier new,mon=
ospace">constexpr</span> expressions.<span><font color=3D"#888888"><br></fo=
nt></span></div><span><font color=3D"#888888">

<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"javascript:" target=3D"_blank" gdf-obfuscated-mailto=3D"=
ekZQla8ZBQAJ" rel=3D"nofollow" onmousedown=3D"this.href=3D&#39;javascript:&=
#39;;return true;" onclick=3D"this.href=3D&#39;javascript:&#39;;return true=
;">std-proposal...@<wbr>isocpp.org</a>.<br>
To post to this group, send email to <a href=3D"javascript:" target=3D"_bla=
nk" gdf-obfuscated-mailto=3D"ekZQla8ZBQAJ" rel=3D"nofollow" onmousedown=3D"=
this.href=3D&#39;javascript:&#39;;return true;" onclick=3D"this.href=3D&#39=
;javascript:&#39;;return true;">std-pr...@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/6f3821f7-2f31-47c4-a5eb-56039332b537%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" target=3D"_blank" =
rel=3D"nofollow" onmousedown=3D"this.href=3D&#39;https://groups.google.com/=
a/isocpp.org/d/msgid/std-proposals/6f3821f7-2f31-47c4-a5eb-56039332b537%40i=
socpp.org?utm_medium\x3demail\x26utm_source\x3dfooter&#39;;return true;" on=
click=3D"this.href=3D&#39;https://groups.google.com/a/isocpp.org/d/msgid/st=
d-proposals/6f3821f7-2f31-47c4-a5eb-56039332b537%40isocpp.org?utm_medium\x3=
demail\x26utm_source\x3dfooter&#39;;return true;">https://groups.google.com=
/a/<wbr>isocpp.org/d/msgid/std-<wbr>proposals/6f3821f7-2f31-47c4-<wbr>a5eb-=
56039332b537%40isocpp.org</a><wbr>.<br>
</font></span></blockquote></div><br></div>
</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/9fc7b155-6d19-4665-8b40-66580a4c530f%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/9fc7b155-6d19-4665-8b40-66580a4c530f=
%40isocpp.org</a>.<br />

------=_Part_5473_437219237.1475074196172--

------=_Part_5472_662087329.1475074196172--

.


Author: benni.buch@gmail.com
Date: Wed, 28 Sep 2016 09:08:22 -0700 (PDT)
Raw View
------=_Part_1907_1651351214.1475078902574
Content-Type: multipart/alternative;
 boundary="----=_Part_1908_263232683.1475078902575"

------=_Part_1908_263232683.1475078902575
Content-Type: text/plain; charset=UTF-8

I renamed my proposal and added a constexpr wording for std::not_fn.

http://htmlpreview.github.io/?https://github.com/bebuch/proposals/blob/master/Add%20constexpr%20to%20functional%20header%20functions.html
https://github.com/bebuch/proposals/blob/master/Add%20constexpr%20to%20functional%20header%20functions.html

I will check if I can add constexpr to std::bind tomorrow.


Am Mittwoch, 28. September 2016 16:49:56 UTC+2 schrieb benni...@gmail.com:
>
> I did write a proposal, please comment ;-)
>
>
> http://htmlpreview.github.io/?https://github.com/bebuch/proposals/blob/master/Make%20std::invoke%20and%20std::reference_wrapper%20constexpr.html
>
> https://github.com/bebuch/proposals/blob/master/Make%20std::invoke%20and%20std::reference_wrapper%20constexpr.html
>
> Am Dienstag, 27. September 2016 22:48:14 UTC+2 schrieb Richard Smith:
>>
>> Yes please :)
>>
>> On Tue, Sep 27, 2016 at 4:02 AM, <benni...@gmail.com> wrote:
>>
>>> I want to add constexpr to the following functions:
>>>
>>> *20.14.3 Function template invoke [func.invoke]*
>>>
>>> template <class F, class... Args>
>>>   constexpr result_of_t<F&&(Args&&...)> invoke(F&& f, Args&&... args);
>>>
>>> *20.14.4 Class template reference_wrapper [refwrap]*
>>>
>>> namespace std {
>>>   template <class T> class reference_wrapper {
>>>   public :
>>>     // types
>>>     using type = T;
>>>
>>>     // construct/copy/destroy
>>>     constexpr reference_wrapper(T&) noexcept;
>>>     reference_wrapper(T&&) = delete; // do not bind to temporary objects
>>>     constexpr reference_wrapper(const reference_wrapper& x) noexcept;
>>>
>>>     // assignment
>>>     constexpr reference_wrapper& operator=(const reference_wrapper& x)
>>> noexcept;
>>>
>>>     // access
>>>     constexpr operator T& () const noexcept;
>>>     constexpr T& get() const noexcept;
>>>
>>>     // invocation
>>>     template <class... ArgTypes>
>>>     constexpr result_of_t<T&(ArgTypes&&...)>
>>>     operator() (ArgTypes&&...) const;
>>>   };
>>> }
>>>
>>> *20.14.4.5 reference_wrapper helper functions [refwrap.helpers]*
>>>
>>> template <class T> constexpr reference_wrapper<T> ref(T& t) noexcept;
>>>
>>> template <class T> constexpr reference_wrapper<T>
>>> ref(reference_wrapper<T> t) noexcept;
>>>
>>> template <class T> constexpr reference_wrapper<const T> cref(const T&
>>> t) noexcept;
>>>
>>> template <class T> constexpr reference_wrapper<const T>
>>> cref(reference_wrapper<T> t) noexcept;
>>>
>>>
>>> invoke and reference_wrapper are very basic and powerful tools that
>>> might be used in constexpr functions. I'm working with C++17 for a
>>> while and need to implement constexpr versions by my self to use them
>>> in constexpr expressions.
>>>
>>> --
>>> 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-proposal...@isocpp.org.
>>> To post to this group, send email to std-pr...@isocpp.org.
>>> To view this discussion on the web visit
>>> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/6f3821f7-2f31-47c4-a5eb-56039332b537%40isocpp.org
>>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/6f3821f7-2f31-47c4-a5eb-56039332b537%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/162023f4-b23d-4301-bcb3-77a1cef52ff3%40isocpp.org.

------=_Part_1908_263232683.1475078902575
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I renamed my proposal and added a constexpr wording for st=
d::not_fn.<br><br><a href=3D"http://htmlpreview.github.io/?https://github.c=
om/bebuch/proposals/blob/master/Add%20constexpr%20to%20functional%20header%=
20functions.html">http://htmlpreview.github.io/?https://github.com/bebuch/p=
roposals/blob/master/Add%20constexpr%20to%20functional%20header%20functions=
..html</a><br><a href=3D"https://github.com/bebuch/proposals/blob/master/Add=
%20constexpr%20to%20functional%20header%20functions.html">https://github.co=
m/bebuch/proposals/blob/master/Add%20constexpr%20to%20functional%20header%2=
0functions.html</a><br><br>I will check if I can add constexpr to std::bind=
 tomorrow.<br><br><br>Am Mittwoch, 28. September 2016 16:49:56 UTC+2 schrie=
b benni...@gmail.com:<blockquote class=3D"gmail_quote" style=3D"margin: 0;m=
argin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=
=3D"ltr">I did write a proposal, please comment ;-)<br><br><a href=3D"http:=
//htmlpreview.github.io/?https://github.com/bebuch/proposals/blob/master/Ma=
ke%20std::invoke%20and%20std::reference_wrapper%20constexpr.html" target=3D=
"_blank" rel=3D"nofollow" onmousedown=3D"this.href=3D&#39;http://www.google=
..com/url?q\x3dhttp%3A%2F%2Fhtmlpreview.github.io%2F%3Fhttps%3A%2F%2Fgithub.=
com%2Fbebuch%2Fproposals%2Fblob%2Fmaster%2FMake%2520std%3A%3Ainvoke%2520and=
%2520std%3A%3Areference_wrapper%2520constexpr.html\x26sa\x3dD\x26sntz\x3d1\=
x26usg\x3dAFQjCNGAD2tL_NEC-sZSE24Xek3n_dwh2w&#39;;return true;" onclick=3D"=
this.href=3D&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fhtmlpreview.gi=
thub.io%2F%3Fhttps%3A%2F%2Fgithub.com%2Fbebuch%2Fproposals%2Fblob%2Fmaster%=
2FMake%2520std%3A%3Ainvoke%2520and%2520std%3A%3Areference_wrapper%2520const=
expr.html\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGAD2tL_NEC-sZSE24Xek3n_dw=
h2w&#39;;return true;">http://htmlpreview.github.io/?<wbr>https://github.co=
m/bebuch/<wbr>proposals/blob/master/Make%<wbr>20std::invoke%20and%20std::<w=
br>reference_wrapper%20constexpr.<wbr>html</a><br><a href=3D"https://github=
..com/bebuch/proposals/blob/master/Make%20std::invoke%20and%20std::reference=
_wrapper%20constexpr.html" target=3D"_blank" rel=3D"nofollow" onmousedown=
=3D"this.href=3D&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.c=
om%2Fbebuch%2Fproposals%2Fblob%2Fmaster%2FMake%2520std%3A%3Ainvoke%2520and%=
2520std%3A%3Areference_wrapper%2520constexpr.html\x26sa\x3dD\x26sntz\x3d1\x=
26usg\x3dAFQjCNGw2314dbdObnzOwC-1aEHxvxOl7g&#39;;return true;" onclick=3D"t=
his.href=3D&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2F=
bebuch%2Fproposals%2Fblob%2Fmaster%2FMake%2520std%3A%3Ainvoke%2520and%2520s=
td%3A%3Areference_wrapper%2520constexpr.html\x26sa\x3dD\x26sntz\x3d1\x26usg=
\x3dAFQjCNGw2314dbdObnzOwC-1aEHxvxOl7g&#39;;return true;">https://github.co=
m/bebuch/<wbr>proposals/blob/master/Make%<wbr>20std::invoke%20and%20std::<w=
br>reference_wrapper%20constexpr.<wbr>html</a><br><br>Am Dienstag, 27. Sept=
ember 2016 22:48:14 UTC+2 schrieb Richard Smith:<blockquote class=3D"gmail_=
quote" style=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;paddi=
ng-left:1ex"><div dir=3D"ltr">Yes please :)</div><div><br><div class=3D"gma=
il_quote">On Tue, Sep 27, 2016 at 4:02 AM,  <span dir=3D"ltr">&lt;<a rel=3D=
"nofollow">benni...@gmail.com</a>&gt;</span> wrote:<br><blockquote class=3D=
"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding=
-left:1ex"><div dir=3D"ltr">I want to add <span style=3D"font-family:courie=
r new,monospace">constexpr</span> to the following functions:<br><br><b>20.=
14.3 Function template invoke [func.invoke]</b><br><br><span style=3D"font-=
family:courier new,monospace">template &lt;class F, class... Args&gt;<br>=
=C2=A0 <span style=3D"background-color:rgb(0,255,0)">constexpr</span> resul=
t_of_t&lt;F&amp;&amp;(Args&amp;&amp;...)&gt; invoke(F&amp;&amp; f, Args&amp=
;&amp;... args);</span><br><br><b>20.14.4 Class template reference_wrapper =
[refwrap]</b><br><br><span style=3D"font-family:courier new,monospace">name=
space std {<br>=C2=A0 template &lt;class T&gt; class reference_wrapper {<br=
>=C2=A0 public :<br>=C2=A0=C2=A0=C2=A0 // types<br>=C2=A0=C2=A0=C2=A0 using=
 type =3D T;<br><br>=C2=A0=C2=A0=C2=A0 // construct/copy/destroy<br>=C2=A0=
=C2=A0=C2=A0 <span style=3D"background-color:rgb(0,255,0)">constexpr</span>=
 reference_wrapper(T&amp;) noexcept;<br>=C2=A0=C2=A0=C2=A0 reference_wrappe=
r(T&amp;&amp;) =3D delete; // do not bind to temporary objects<br>=C2=A0=C2=
=A0=C2=A0 <span style=3D"background-color:rgb(0,255,0)">constexpr</span> re=
ference_wrapper(const reference_wrapper&amp; x) noexcept;<br><br>=C2=A0=C2=
=A0=C2=A0 // assignment<br>=C2=A0=C2=A0=C2=A0 <span style=3D"background-col=
or:rgb(0,255,0)">constexpr</span> reference_wrapper&amp; operator=3D(const =
reference_wrapper&amp; x) noexcept;<br><br>=C2=A0=C2=A0=C2=A0 // access<br>=
=C2=A0=C2=A0=C2=A0 <span style=3D"background-color:rgb(0,255,0)">constexpr<=
/span> operator T&amp; () const noexcept;<br>=C2=A0=C2=A0=C2=A0 <span style=
=3D"background-color:rgb(0,255,0)">constexpr</span> T&amp; get() const noex=
cept;<br><br>=C2=A0=C2=A0=C2=A0 // invocation<br>=C2=A0=C2=A0=C2=A0 templat=
e &lt;class... ArgTypes&gt;<br>=C2=A0=C2=A0=C2=A0 <span style=3D"background=
-color:rgb(0,255,0)">constexpr</span> result_of_t&lt;T&amp;(ArgTypes&amp;&a=
mp;...)&gt;<br>=C2=A0=C2=A0=C2=A0 operator() (ArgTypes&amp;&amp;...) const;=
<br>=C2=A0 };<br>}</span><br><br><b>20.14.4.5 reference_wrapper helper func=
tions [refwrap.helpers]</b><br><br><span style=3D"font-family:courier new,m=
onospace">template &lt;class T&gt; <span style=3D"background-color:rgb(0,25=
5,0)">constexpr</span> reference_wrapper&lt;T&gt; ref(T&amp; t) noexcept;</=
span><br><br><span style=3D"font-family:courier new,monospace">template &lt=
;class T&gt; <span style=3D"background-color:rgb(0,255,0)">constexpr</span>=
 reference_wrapper&lt;T&gt; ref(reference_wrapper&lt;T&gt; t) noexcept;</sp=
an><br><br><span style=3D"font-family:courier new,monospace">template &lt;c=
lass T&gt; <span style=3D"background-color:rgb(0,255,0)">constexpr</span> r=
eference_wrapper&lt;const T&gt; cref(const T&amp; t) noexcept;</span><br><b=
r><span style=3D"font-family:courier new,monospace">template &lt;class T&gt=
; <span style=3D"background-color:rgb(0,255,0)">constexpr</span> reference_=
wrapper&lt;const T&gt; cref(reference_wrapper&lt;T&gt; t) noexcept;</span><=
br><br><br><span style=3D"font-family:courier new,monospace">invoke</span> =
and <span style=3D"font-family:courier new,monospace">reference_wrapper</sp=
an> are very basic and powerful tools that might be used in <span style=3D"=
font-family:courier new,monospace">constexpr</span> functions. I&#39;m work=
ing with C++17 for a while and need to implement <span style=3D"font-family=
:courier new,monospace">constexpr</span> versions by my self to use them in=
 <span style=3D"font-family:courier new,monospace">constexpr</span> express=
ions.<span><font color=3D"#888888"><br></font></span></div><span><font colo=
r=3D"#888888">

<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 rel=3D"nofollow">std-proposal...@isocpp.org</a>.<br>
To post to this group, send email to <a rel=3D"nofollow">std-pr...@isocpp.o=
rg</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/6f3821f7-2f31-47c4-a5eb-56039332b537%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" rel=3D"nofollow" t=
arget=3D"_blank" onmousedown=3D"this.href=3D&#39;https://groups.google.com/=
a/isocpp.org/d/msgid/std-proposals/6f3821f7-2f31-47c4-a5eb-56039332b537%40i=
socpp.org?utm_medium\x3demail\x26utm_source\x3dfooter&#39;;return true;" on=
click=3D"this.href=3D&#39;https://groups.google.com/a/isocpp.org/d/msgid/st=
d-proposals/6f3821f7-2f31-47c4-a5eb-56039332b537%40isocpp.org?utm_medium\x3=
demail\x26utm_source\x3dfooter&#39;;return true;">https://groups.google.com=
/a/<wbr>isocpp.org/d/msgid/std-<wbr>proposals/6f3821f7-2f31-47c4-<wbr>a5eb-=
56039332b537%40isocpp.org</a><wbr>.<br>
</font></span></blockquote></div><br></div>
</blockquote></div></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/162023f4-b23d-4301-bcb3-77a1cef52ff3%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/162023f4-b23d-4301-bcb3-77a1cef52ff3=
%40isocpp.org</a>.<br />

------=_Part_1908_263232683.1475078902575--

------=_Part_1907_1651351214.1475078902574--

.


Author: Tomasz <tomaszkam@gmail.com>
Date: Wed, 28 Sep 2016 21:50:08 -0700 (PDT)
Raw View
------=_Part_78_925911012.1475124609050
Content-Type: multipart/alternative;
 boundary="----=_Part_79_318493055.1475124609050"

------=_Part_79_318493055.1475124609050
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable



W dniu wtorek, 27 wrze=C5=9Bnia 2016 13:02:06 UTC+2 u=C5=BCytkownik=20
benni...@gmail.com napisa=C5=82:
>
> I want to add constexpr to the following functions:
>

The problem you need to discuss is that per current resolution of the=20
http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#1581 adding=20
constexpr to the invoke and other functional components, would break=20
existing code. The actual examples may be found at:
https://llvm.org/bugs/show_bug.cgi?id=3D23141
https://llvm.org/bugs/show_bug.cgi?id=3D23135
I believe you paper need to discuss the scope of the issues and propose=20
some resolutions workarounds.

--=20
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 e=
mail 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/ced3e20f-d9b2-4fb7-832f-099e0e951abd%40isocpp.or=
g.

------=_Part_79_318493055.1475124609050
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><br>W dniu wtorek, 27 wrze=C5=9Bnia 2016 13:02:06 UTC+=
2 u=C5=BCytkownik benni...@gmail.com napisa=C5=82:<blockquote class=3D"gmai=
l_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;=
padding-left: 1ex;"><div dir=3D"ltr">I want to add <span style=3D"font-fami=
ly:courier new,monospace">constexpr</span> to the following functions:<br><=
/div></blockquote><div><br>The problem you need to discuss is that per curr=
ent resolution of the http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_activ=
e.html#1581 adding constexpr to the invoke and other functional components,=
 would break existing code. The actual examples may be found at:<br>https:/=
/llvm.org/bugs/show_bug.cgi?id=3D23141<br>https://llvm.org/bugs/show_bug.cg=
i?id=3D23135<br>I believe you paper need to discuss the scope of the issues=
 and propose some resolutions workarounds.<br><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">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/ced3e20f-d9b2-4fb7-832f-099e0e951abd%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/ced3e20f-d9b2-4fb7-832f-099e0e951abd=
%40isocpp.org</a>.<br />

------=_Part_79_318493055.1475124609050--

------=_Part_78_925911012.1475124609050--

.


Author: benni.buch@gmail.com
Date: Thu, 29 Sep 2016 03:00:19 -0700 (PDT)
Raw View
------=_Part_347_1001033992.1475143219372
Content-Type: multipart/alternative;
 boundary="----=_Part_348_240318204.1475143219372"

------=_Part_348_240318204.1475143219372
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Hi Tomasz,

thank you very much for the links, I will try to write a discussion about=
=20
that. Interesting to learn that constexpr can break existing code. Any help=
=20
is welcome of course. :-)

Am Donnerstag, 29. September 2016 06:50:09 UTC+2 schrieb Tomasz:
>
>
>
> W dniu wtorek, 27 wrze=C5=9Bnia 2016 13:02:06 UTC+2 u=C5=BCytkownik=20
> benni...@gmail.com napisa=C5=82:
>>
>> I want to add constexpr to the following functions:
>>
>
> The problem you need to discuss is that per current resolution of the=20
> http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#1581 adding=
=20
> constexpr to the invoke and other functional components, would break=20
> existing code. The actual examples may be found at:
> https://llvm.org/bugs/show_bug.cgi?id=3D23141
> https://llvm.org/bugs/show_bug.cgi?id=3D23135
> I believe you paper need to discuss the scope of the issues and propose=
=20
> some resolutions workarounds.
>
>

--=20
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 e=
mail 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/22906c2f-9f50-4bb0-9598-f23fed71c32d%40isocpp.or=
g.

------=_Part_348_240318204.1475143219372
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi Tomasz,<br><br>thank you very much for the links, I wil=
l try to write a discussion about that. Interesting to learn that constexpr=
 can break existing code. Any help is welcome of course. :-)<br><br>Am Donn=
erstag, 29. September 2016 06:50:09 UTC+2 schrieb Tomasz:<blockquote class=
=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #cc=
c solid;padding-left: 1ex;"><div dir=3D"ltr"><br><br>W dniu wtorek, 27 wrze=
=C5=9Bnia 2016 13:02:06 UTC+2 u=C5=BCytkownik <a>benni...@gmail.com</a> nap=
isa=C5=82:<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">I want t=
o add <span style=3D"font-family:courier new,monospace">constexpr</span> to=
 the following functions:<br></div></blockquote><div><br>The problem you ne=
ed to discuss is that per current resolution of the <a href=3D"http://www.o=
pen-std.org/jtc1/sc22/wg21/docs/cwg_active.html#1581" target=3D"_blank" rel=
=3D"nofollow" onmousedown=3D"this.href=3D&#39;http://www.google.com/url?q\x=
3dhttp%3A%2F%2Fwww.open-std.org%2Fjtc1%2Fsc22%2Fwg21%2Fdocs%2Fcwg_active.ht=
ml%231581\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFRz7dpq5jrAooKwt6pYja-a1e=
bfw&#39;;return true;" onclick=3D"this.href=3D&#39;http://www.google.com/ur=
l?q\x3dhttp%3A%2F%2Fwww.open-std.org%2Fjtc1%2Fsc22%2Fwg21%2Fdocs%2Fcwg_acti=
ve.html%231581\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFRz7dpq5jrAooKwt6pYj=
a-a1ebfw&#39;;return true;">http://www.open-std.org/jtc1/<wbr>sc22/wg21/doc=
s/cwg_active.<wbr>html#1581</a> adding constexpr to the invoke and other fu=
nctional components, would break existing code. The actual examples may be =
found at:<br><a href=3D"https://llvm.org/bugs/show_bug.cgi?id=3D23141" targ=
et=3D"_blank" rel=3D"nofollow" onmousedown=3D"this.href=3D&#39;https://www.=
google.com/url?q\x3dhttps%3A%2F%2Fllvm.org%2Fbugs%2Fshow_bug.cgi%3Fid%3D231=
41\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFONqxcgSN_KISuTw8jWnwS1mzBfw&#39=
;;return true;" onclick=3D"this.href=3D&#39;https://www.google.com/url?q\x3=
dhttps%3A%2F%2Fllvm.org%2Fbugs%2Fshow_bug.cgi%3Fid%3D23141\x26sa\x3dD\x26sn=
tz\x3d1\x26usg\x3dAFQjCNFONqxcgSN_KISuTw8jWnwS1mzBfw&#39;;return true;">htt=
ps://llvm.org/bugs/show_<wbr>bug.cgi?id=3D23141</a><br><a href=3D"https://l=
lvm.org/bugs/show_bug.cgi?id=3D23135" target=3D"_blank" rel=3D"nofollow" on=
mousedown=3D"this.href=3D&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2=
Fllvm.org%2Fbugs%2Fshow_bug.cgi%3Fid%3D23135\x26sa\x3dD\x26sntz\x3d1\x26usg=
\x3dAFQjCNFrqc97bzt8U4DUZx26zZkMvdD7Sg&#39;;return true;" onclick=3D"this.h=
ref=3D&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fllvm.org%2Fbugs%2F=
show_bug.cgi%3Fid%3D23135\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFrqc97bzt=
8U4DUZx26zZkMvdD7Sg&#39;;return true;">https://llvm.org/bugs/show_<wbr>bug.=
cgi?id=3D23135</a><br>I believe you paper need to discuss the scope of the =
issues and propose some resolutions workarounds.<br><br></div></div></block=
quote></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/22906c2f-9f50-4bb0-9598-f23fed71c32d%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/22906c2f-9f50-4bb0-9598-f23fed71c32d=
%40isocpp.org</a>.<br />

------=_Part_348_240318204.1475143219372--

------=_Part_347_1001033992.1475143219372--

.