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 <class F, class... Args><br>=C2=A0 <s=
pan style=3D"background-color: rgb(0, 255, 0);">constexpr</span> result_of_=
t<F&&(Args&&...)> invoke(F&& f, Args&&=
;... 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 <class T> 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&) noexcept;<br>=C2=A0=C2=A0=C2=A0 reference_wr=
apper(T&&) =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& 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& opera=
tor=3D(const reference_wrapper& 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& () const noexcept;<br>=C2=A0=C2=A0=
=C2=A0 <span style=3D"background-color: rgb(0, 255, 0);">constexpr</span> T=
& get() const noexcept;<br><br>=C2=A0=C2=A0=C2=A0 // invocation<br>=C2=
=A0=C2=A0=C2=A0 template <class... ArgTypes><br>=C2=A0=C2=A0=C2=A0 <s=
pan style=3D"background-color: rgb(0, 255, 0);">constexpr</span> result_of_=
t<T&(ArgTypes&&...)><br>=C2=A0=C2=A0=C2=A0 operator() (Ar=
gTypes&&...) 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 <class T> <span sty=
le=3D"background-color: rgb(0, 255, 0);">constexpr</span> reference_wrapper=
<T> ref(T& t) noexcept;</span><br><br><span style=3D"font-family:=
courier new,monospace;">template <class T> <span style=3D"background=
-color: rgb(0, 255, 0);">constexpr</span> reference_wrapper<T> ref(re=
ference_wrapper<T> t) noexcept;</span><br><br><span style=3D"font-fam=
ily: courier new,monospace;">template <class T> <span style=3D"backgr=
ound-color: rgb(0, 255, 0);">constexpr</span> reference_wrapper<const T&=
gt; cref(const T& t) noexcept;</span><br><br><span style=3D"font-family=
: courier new,monospace;">template <class T> <span style=3D"backgroun=
d-color: rgb(0, 255, 0);">constexpr</span> reference_wrapper<const T>=
cref(reference_wrapper<T> 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'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" 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"><=
<a href=3D"mailto:benni.buch@gmail.com" target=3D"_blank">benni.buch@gmail.=
com</a>></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 <class F, class... Args><br>=C2=A0 <span style=3D"backgr=
ound-color:rgb(0,255,0)">constexpr</span> result_of_t<F&&(Args&a=
mp;&...)> invoke(F&& f, Args&&... 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 <class T> 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&) =
noexcept;<br>=C2=A0=C2=A0=C2=A0 reference_wrapper(T&&) =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& 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& operator=3D(const reference_wrapper& 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& () c=
onst noexcept;<br>=C2=A0=C2=A0=C2=A0 <span style=3D"background-color:rgb(0,=
255,0)">constexpr</span> T& get() const noexcept;<br><br>=C2=A0=C2=A0=
=C2=A0 // invocation<br>=C2=A0=C2=A0=C2=A0 template <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<T&(ArgTypes&&...)><br>=C2=A0=C2=
=A0=C2=A0 operator() (ArgTypes&&...) 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 <c=
lass T> <span style=3D"background-color:rgb(0,255,0)">constexpr</span> r=
eference_wrapper<T> ref(T& t) noexcept;</span><br><br><span style=
=3D"font-family:courier new,monospace">template <class T> <span style=
=3D"background-color:rgb(0,255,0)">constexpr</span> reference_wrapper<T&=
gt; ref(reference_wrapper<T> t) noexcept;</span><br><br><span style=
=3D"font-family:courier new,monospace">template <class T> <span style=
=3D"background-color:rgb(0,255,0)">constexpr</span> reference_wrapper<co=
nst T> cref(const T& t) noexcept;</span><br><br><span style=3D"font-=
family:courier new,monospace">template <class T> <span style=3D"backg=
round-color:rgb(0,255,0)">constexpr</span> reference_wrapper<const T>=
cref(reference_wrapper<T> 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'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" 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&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" 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"><<a href=3D"javascript:" targ=
et=3D"_blank" gdf-obfuscated-mailto=3D"ekZQla8ZBQAJ" rel=3D"nofollow" onmou=
sedown=3D"this.href=3D'javascript:';return true;" onclick=3D"this.h=
ref=3D'javascript:';return true;">benni...@gmail.com</a>></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 <c=
lass F, class... Args><br>=C2=A0 <span style=3D"background-color:rgb(0,2=
55,0)">constexpr</span> result_of_t<F&&(Args&&...)> i=
nvoke(F&& f, Args&&... 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 <class T>=
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&) noexcept;<br>=C2=A0=
=C2=A0=C2=A0 reference_wrapper(T&&) =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& 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& operator=3D(const reference_wrapper& 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& () const noexcept;<br>=
=C2=A0=C2=A0=C2=A0 <span style=3D"background-color:rgb(0,255,0)">constexpr<=
/span> T& get() const noexcept;<br><br>=C2=A0=C2=A0=C2=A0 // invocation=
<br>=C2=A0=C2=A0=C2=A0 template <class... ArgTypes><br>=C2=A0=C2=A0=
=C2=A0 <span style=3D"background-color:rgb(0,255,0)">constexpr</span> resul=
t_of_t<T&(ArgTypes&&...)><br>=C2=A0=C2=A0=C2=A0 operator(=
) (ArgTypes&&...) 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 <class T> <span st=
yle=3D"background-color:rgb(0,255,0)">constexpr</span> reference_wrapper<=
;T> ref(T& t) noexcept;</span><br><br><span style=3D"font-family:cou=
rier new,monospace">template <class T> <span style=3D"background-colo=
r:rgb(0,255,0)">constexpr</span> reference_wrapper<T> ref(reference_w=
rapper<T> t) noexcept;</span><br><br><span style=3D"font-family:couri=
er new,monospace">template <class T> <span style=3D"background-color:=
rgb(0,255,0)">constexpr</span> reference_wrapper<const T> cref(const =
T& t) noexcept;</span><br><br><span style=3D"font-family:courier new,mo=
nospace">template <class T> <span style=3D"background-color:rgb(0,255=
,0)">constexpr</span> reference_wrapper<const T> cref(reference_wrapp=
er<T> 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'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" 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'javascript:&=
#39;;return true;" onclick=3D"this.href=3D'javascript:';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'javascript:';return true;" onclick=3D"this.href=3D'=
;javascript:';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&utm_source=3Dfooter" target=3D"_blank" =
rel=3D"nofollow" onmousedown=3D"this.href=3D'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';return true;" on=
click=3D"this.href=3D'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';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" 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'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';return true;" onclick=3D"=
this.href=3D'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';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'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';return true;" onclick=3D"t=
his.href=3D'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';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"><<a rel=3D=
"nofollow">benni...@gmail.com</a>></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 <class F, class... Args><br>=
=C2=A0 <span style=3D"background-color:rgb(0,255,0)">constexpr</span> resul=
t_of_t<F&&(Args&&...)> invoke(F&& f, Args&=
;&... 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 <class T> 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&) noexcept;<br>=C2=A0=C2=A0=C2=A0 reference_wrappe=
r(T&&) =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& 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& operator=3D(const =
reference_wrapper& 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& () const noexcept;<br>=C2=A0=C2=A0=C2=A0 <span style=
=3D"background-color:rgb(0,255,0)">constexpr</span> T& get() const noex=
cept;<br><br>=C2=A0=C2=A0=C2=A0 // invocation<br>=C2=A0=C2=A0=C2=A0 templat=
e <class... ArgTypes><br>=C2=A0=C2=A0=C2=A0 <span style=3D"background=
-color:rgb(0,255,0)">constexpr</span> result_of_t<T&(ArgTypes&&a=
mp;...)><br>=C2=A0=C2=A0=C2=A0 operator() (ArgTypes&&...) 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 <class T> <span style=3D"background-color:rgb(0,25=
5,0)">constexpr</span> reference_wrapper<T> ref(T& t) noexcept;</=
span><br><br><span style=3D"font-family:courier new,monospace">template <=
;class T> <span style=3D"background-color:rgb(0,255,0)">constexpr</span>=
reference_wrapper<T> ref(reference_wrapper<T> t) noexcept;</sp=
an><br><br><span style=3D"font-family:courier new,monospace">template <c=
lass T> <span style=3D"background-color:rgb(0,255,0)">constexpr</span> r=
eference_wrapper<const T> cref(const T& t) noexcept;</span><br><b=
r><span style=3D"font-family:courier new,monospace">template <class T>=
; <span style=3D"background-color:rgb(0,255,0)">constexpr</span> reference_=
wrapper<const T> cref(reference_wrapper<T> 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'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" 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&utm_source=3Dfooter" rel=3D"nofollow" t=
arget=3D"_blank" onmousedown=3D"this.href=3D'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';return true;" on=
click=3D"this.href=3D'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';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" 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" 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'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';return true;" onclick=3D"this.href=3D'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';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'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'=
;;return true;" onclick=3D"this.href=3D'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';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'https://www.google.com/url?q\x3dhttps%3A%2F%2=
Fllvm.org%2Fbugs%2Fshow_bug.cgi%3Fid%3D23135\x26sa\x3dD\x26sntz\x3d1\x26usg=
\x3dAFQjCNFrqc97bzt8U4DUZx26zZkMvdD7Sg';return true;" onclick=3D"this.h=
ref=3D'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';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" 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--
.