Topic: ADL for fundamental C/C++ types


Author: taskov@gmail.com
Date: Tue, 2 Dec 2014 10:56:01 -0800 (PST)
Raw View
------=_Part_655_1052100392.1417546561678
Content-Type: multipart/alternative;
 boundary="----=_Part_656_270938946.1417546561678"

------=_Part_656_270938946.1417546561678
Content-Type: text/plain; charset=UTF-8

I've just got a situation here regarding ADL and the fundamental(built-in)
C/C++ types.
I've created a wrapper over some intrinsics and I've defined common
operators and functions for them.

All of this is in a namespace. Functions like SSEType sqrtf(SSEType type);
are breaking the compilation, since code like sqrtf(2.f) stops compiling
(the compiler complains that it can't convert float to SSEType). It looks
like ADL is not working for the built-in (fundamental) C/C++ types, the
compiler finds the SSEType variant of the sqrtf and stops searching for
more variants in the upper namespaces (adding explicit ::sqrtf(2.f) fixes
the issues, but it is far from pretty)
We don't have common place to add using directive ..

Here is a sample
http://pastebin.com/9XTubSCx

So, you see this (to assume that the builtin types are declared in the
global namespace) as an addition to the standard ?

Best,
Blago.

--

---
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.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/.

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

<div dir=3D"ltr"><div style=3D"color: rgb(0, 0, 0); font-family: Helvetica;=
 font-size: 12px;">I've just got a situation here regarding ADL and the fun=
damental(built-in) C/C++ types.</div><div style=3D"color: rgb(0, 0, 0); fon=
t-family: Helvetica; font-size: 12px;">I've created a wrapper over some int=
rinsics and I've defined common operators and functions for them.</div><div=
 style=3D"color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;"><b=
r></div><div style=3D"color: rgb(0, 0, 0); font-family: Helvetica; font-siz=
e: 12px;">All of this is in a namespace. Functions like SSEType sqrtf(SSETy=
pe type); are breaking the compilation, since code like sqrtf(2.f) stops co=
mpiling (the compiler complains that it can't convert float to SSEType). It=
 looks like ADL is not working for the built-in (fundamental) C/C++ types, =
the compiler finds the SSEType variant of the sqrtf and stops searching for=
 more variants in the upper namespaces (adding explicit ::sqrtf(2.f) fixes =
the issues, but it is far from pretty)</div><div style=3D"color: rgb(0, 0, =
0); font-family: Helvetica; font-size: 12px;">We don't have common place to=
 add using directive ..&nbsp;</div><div style=3D"color: rgb(0, 0, 0); font-=
family: Helvetica; font-size: 12px;"><br></div><div style=3D"color: rgb(0, =
0, 0); font-family: Helvetica; font-size: 12px;">Here is a sample&nbsp;</di=
v><div style=3D"color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12p=
x;"><a href=3D"http://pastebin.com/9XTubSCx">http://pastebin.com/9XTubSCx</=
a><br></div><div style=3D"color: rgb(0, 0, 0); font-family: Helvetica; font=
-size: 12px;"><br></div><div style=3D"color: rgb(0, 0, 0); font-family: Hel=
vetica; font-size: 12px;">So, you see this (to assume that the builtin type=
s are declared in the global namespace) as an addition to the standard ?</d=
iv><div style=3D"color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12=
px;"><br></div><div style=3D"color: rgb(0, 0, 0); font-family: Helvetica; f=
ont-size: 12px;">Best,</div><div style=3D"color: rgb(0, 0, 0); font-family:=
 Helvetica; font-size: 12px;">Blago.</div></div>

<p></p>

-- <br />
<br />
--- <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 />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/">http://groups.google.com/a/isocpp.org/group/std-proposals/<=
/a>.<br />

------=_Part_656_270938946.1417546561678--
------=_Part_655_1052100392.1417546561678--

.


Author: =?UTF-8?Q?David_Rodr=C3=ADguez_Ibeas?= <dibeas@ieee.org>
Date: Tue, 02 Dec 2014 19:12:01 +0000
Raw View
--001a113fbe2e7bcfce0509408059
Content-Type: text/plain; charset=UTF-8

The common solution to that is to have a using declaration:

using std::sqrt;
sqrt(2f);

Currently fundamental types are not declared anywhere, and they don't have
any associated namespaces, the suggestion you provide would be to add the
global namespace as an associated namespace for fundamental types, and the
problem I see is that it has the potential to break a lot of code.

    David
On Tue Dec 02 2014 at 1:56:02 PM <taskov@gmail.com> wrote:

> I've just got a situation here regarding ADL and the fundamental(built-in)
> C/C++ types.
> I've created a wrapper over some intrinsics and I've defined common
> operators and functions for them.
>
> All of this is in a namespace. Functions like SSEType sqrtf(SSEType type);
> are breaking the compilation, since code like sqrtf(2.f) stops compiling
> (the compiler complains that it can't convert float to SSEType). It looks
> like ADL is not working for the built-in (fundamental) C/C++ types, the
> compiler finds the SSEType variant of the sqrtf and stops searching for
> more variants in the upper namespaces (adding explicit ::sqrtf(2.f) fixes
> the issues, but it is far from pretty)
> We don't have common place to add using directive ..
>
> Here is a sample
> http://pastebin.com/9XTubSCx
>
> So, you see this (to assume that the builtin types are declared in the
> global namespace) as an addition to the standard ?
>
> Best,
> Blago.
>
> --
>
> ---
> 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.
> Visit this group at
> http://groups.google.com/a/isocpp.org/group/std-proposals/.
>

--

---
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.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/.

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

The common solution to that is to have a using declaration:<br><br>using st=
d::sqrt;<br>sqrt(2f);<br><br>Currently fundamental types are not declared a=
nywhere, and they don&#39;t have any associated namespaces, the suggestion =
you provide would be to add the global namespace as an associated namespace=
 for fundamental types, and the problem I see is that it has the potential =
to break a lot of code.<br><br>=C2=A0 =C2=A0 David<br><div class=3D"gmail_q=
uote">On Tue Dec 02 2014 at 1:56:02 PM &lt;<a href=3D"mailto:taskov@gmail.c=
om">taskov@gmail.com</a>&gt; wrote:<br><blockquote class=3D"gmail_quote" st=
yle=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div =
dir=3D"ltr"><div style=3D"color:rgb(0,0,0);font-family:Helvetica;font-size:=
12px">I&#39;ve just got a situation here regarding ADL and the fundamental(=
built-in) C/C++ types.</div><div style=3D"color:rgb(0,0,0);font-family:Helv=
etica;font-size:12px">I&#39;ve created a wrapper over some intrinsics and I=
&#39;ve defined common operators and functions for them.</div><div style=3D=
"color:rgb(0,0,0);font-family:Helvetica;font-size:12px"><br></div><div styl=
e=3D"color:rgb(0,0,0);font-family:Helvetica;font-size:12px">All of this is =
in a namespace. Functions like SSEType sqrtf(SSEType type); are breaking th=
e compilation, since code like sqrtf(2.f) stops compiling (the compiler com=
plains that it can&#39;t convert float to SSEType). It looks like ADL is no=
t working for the built-in (fundamental) C/C++ types, the compiler finds th=
e SSEType variant of the sqrtf and stops searching for more variants in the=
 upper namespaces (adding explicit ::sqrtf(2.f) fixes the issues, but it is=
 far from pretty)</div><div style=3D"color:rgb(0,0,0);font-family:Helvetica=
;font-size:12px">We don&#39;t have common place to add using directive ..=
=C2=A0</div><div style=3D"color:rgb(0,0,0);font-family:Helvetica;font-size:=
12px"><br></div><div style=3D"color:rgb(0,0,0);font-family:Helvetica;font-s=
ize:12px">Here is a sample=C2=A0</div><div style=3D"color:rgb(0,0,0);font-f=
amily:Helvetica;font-size:12px"><a href=3D"http://pastebin.com/9XTubSCx" ta=
rget=3D"_blank">http://pastebin.com/9XTubSCx</a><br></div><div style=3D"col=
or:rgb(0,0,0);font-family:Helvetica;font-size:12px"><br></div><div style=3D=
"color:rgb(0,0,0);font-family:Helvetica;font-size:12px">So, you see this (t=
o assume that the builtin types are declared in the global namespace) as an=
 addition to the standard ?</div><div style=3D"color:rgb(0,0,0);font-family=
:Helvetica;font-size:12px"><br></div><div style=3D"color:rgb(0,0,0);font-fa=
mily:Helvetica;font-size:12px">Best,</div><div style=3D"color:rgb(0,0,0);fo=
nt-family:Helvetica;font-size:12px">Blago.</div></div>

<p></p>

-- <br>
<br>
--- <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@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>
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/" target=3D"_blank">http://groups.google.com/a/isocpp.org/gro=
up/std-proposals/</a>.<br>
</blockquote></div>

<p></p>

-- <br />
<br />
--- <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 />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/">http://groups.google.com/a/isocpp.org/group/std-proposals/<=
/a>.<br />

--001a113fbe2e7bcfce0509408059--

.


Author: taskov@gmail.com
Date: Tue, 2 Dec 2014 11:13:51 -0800 (PST)
Raw View
------=_Part_11547_2105846202.1417547631309
Content-Type: multipart/alternative;
 boundary="----=_Part_11548_279130807.1417547631309"

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

Con you give any meaningful example for code that will brake, if the=20
fundamental types are implicitly in the global namespace ?

On Tuesday, 2 December 2014 21:12:02 UTC+2, David Rodr=C3=ADguez Ibeas wrot=
e:
>
> The common solution to that is to have a using declaration:
>
> using std::sqrt;
> sqrt(2f);
>
> Currently fundamental types are not declared anywhere, and they don't hav=
e=20
> any associated namespaces, the suggestion you provide would be to add the=
=20
> global namespace as an associated namespace for fundamental types, and th=
e=20
> problem I see is that it has the potential to break a lot of code.
>
>     David
> On Tue Dec 02 2014 at 1:56:02 PM <tas...@gmail.com <javascript:>> wrote:
>
>> I've just got a situation here regarding ADL and the=20
>> fundamental(built-in) C/C++ types.
>> I've created a wrapper over some intrinsics and I've defined common=20
>> operators and functions for them.
>>
>> All of this is in a namespace. Functions like SSEType sqrtf(SSEType=20
>> type); are breaking the compilation, since code like sqrtf(2.f) stops=20
>> compiling (the compiler complains that it can't convert float to SSEType=
).=20
>> It looks like ADL is not working for the built-in (fundamental) C/C++=20
>> types, the compiler finds the SSEType variant of the sqrtf and stops=20
>> searching for more variants in the upper namespaces (adding explicit=20
>> ::sqrtf(2.f) fixes the issues, but it is far from pretty)
>> We don't have common place to add using directive ..=20
>>
>> Here is a sample=20
>> http://pastebin.com/9XTubSCx
>>
>> So, you see this (to assume that the builtin types are declared in the=
=20
>> global namespace) as an addition to the standard ?
>>
>> Best,
>> Blago.
>>
>> --=20
>>
>> ---=20
>> You received this message because you are subscribed to the Google Group=
s=20
>> "ISO C++ Standard - Future Proposals" group.
>> To unsubscribe from this group and stop receiving emails from it, send a=
n=20
>> email to std-proposal...@isocpp.org <javascript:>.
>> To post to this group, send email to std-pr...@isocpp.org <javascript:>.
>> Visit this group at=20
>> http://groups.google.com/a/isocpp.org/group/std-proposals/.
>>
>

--=20

---=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.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposa=
ls/.

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

<div dir=3D"ltr">Con you give any meaningful example for code that will bra=
ke, if the fundamental types are implicitly in the global namespace ?<br><b=
r>On Tuesday, 2 December 2014 21:12:02 UTC+2, David Rodr=C3=ADguez Ibeas  w=
rote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8e=
x;border-left: 1px #ccc solid;padding-left: 1ex;">The common solution to th=
at is to have a using declaration:<br><br>using std::sqrt;<br>sqrt(2f);<br>=
<br>Currently fundamental types are not declared anywhere, and they don't h=
ave any associated namespaces, the suggestion you provide would be to add t=
he global namespace as an associated namespace for fundamental types, and t=
he problem I see is that it has the potential to break a lot of code.<br><b=
r>&nbsp; &nbsp; David<br><div class=3D"gmail_quote">On Tue Dec 02 2014 at 1=
:56:02 PM &lt;<a href=3D"javascript:" target=3D"_blank" gdf-obfuscated-mail=
to=3D"GuukY3hpZrEJ" onmousedown=3D"this.href=3D'javascript:';return true;" =
onclick=3D"this.href=3D'javascript:';return true;">tas...@gmail.com</a>&gt;=
 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"><div style=3D"co=
lor:rgb(0,0,0);font-family:Helvetica;font-size:12px">I've just got a situat=
ion here regarding ADL and the fundamental(built-in) C/C++ types.</div><div=
 style=3D"color:rgb(0,0,0);font-family:Helvetica;font-size:12px">I've creat=
ed a wrapper over some intrinsics and I've defined common operators and fun=
ctions for them.</div><div style=3D"color:rgb(0,0,0);font-family:Helvetica;=
font-size:12px"><br></div><div style=3D"color:rgb(0,0,0);font-family:Helvet=
ica;font-size:12px">All of this is in a namespace. Functions like SSEType s=
qrtf(SSEType type); are breaking the compilation, since code like sqrtf(2.f=
) stops compiling (the compiler complains that it can't convert float to SS=
EType). It looks like ADL is not working for the built-in (fundamental) C/C=
++ types, the compiler finds the SSEType variant of the sqrtf and stops sea=
rching for more variants in the upper namespaces (adding explicit ::sqrtf(2=
..f) fixes the issues, but it is far from pretty)</div><div style=3D"color:r=
gb(0,0,0);font-family:Helvetica;font-size:12px">We don't have common place =
to add using directive ..&nbsp;</div><div style=3D"color:rgb(0,0,0);font-fa=
mily:Helvetica;font-size:12px"><br></div><div style=3D"color:rgb(0,0,0);fon=
t-family:Helvetica;font-size:12px">Here is a sample&nbsp;</div><div style=
=3D"color:rgb(0,0,0);font-family:Helvetica;font-size:12px"><a href=3D"http:=
//pastebin.com/9XTubSCx" target=3D"_blank" onmousedown=3D"this.href=3D'http=
://www.google.com/url?q\75http%3A%2F%2Fpastebin.com%2F9XTubSCx\46sa\75D\46s=
ntz\0751\46usg\75AFQjCNF9gHNM7dyR8lf9YL69cWYTeWfHKw';return true;" onclick=
=3D"this.href=3D'http://www.google.com/url?q\75http%3A%2F%2Fpastebin.com%2F=
9XTubSCx\46sa\75D\46sntz\0751\46usg\75AFQjCNF9gHNM7dyR8lf9YL69cWYTeWfHKw';r=
eturn true;">http://pastebin.com/9XTubSCx</a><br></div><div style=3D"color:=
rgb(0,0,0);font-family:Helvetica;font-size:12px"><br></div><div style=3D"co=
lor:rgb(0,0,0);font-family:Helvetica;font-size:12px">So, you see this (to a=
ssume that the builtin types are declared in the global namespace) as an ad=
dition to the standard ?</div><div style=3D"color:rgb(0,0,0);font-family:He=
lvetica;font-size:12px"><br></div><div style=3D"color:rgb(0,0,0);font-famil=
y:Helvetica;font-size:12px">Best,</div><div style=3D"color:rgb(0,0,0);font-=
family:Helvetica;font-size:12px">Blago.</div></div>

<p></p>

-- <br>
<br>
--- <br>
You received this message because you are subscribed to the Google Groups "=
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"=
GuukY3hpZrEJ" onmousedown=3D"this.href=3D'javascript:';return true;" onclic=
k=3D"this.href=3D'javascript:';return true;">std-proposal...@<wbr>isocpp.or=
g</a>.<br>
To post to this group, send email to <a href=3D"javascript:" target=3D"_bla=
nk" gdf-obfuscated-mailto=3D"GuukY3hpZrEJ" onmousedown=3D"this.href=3D'java=
script:';return true;" onclick=3D"this.href=3D'javascript:';return true;">s=
td-pr...@isocpp.org</a>.<br>
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/" target=3D"_blank" onmousedown=3D"this.href=3D'http://groups=
..google.com/a/isocpp.org/group/std-proposals/';return true;" onclick=3D"thi=
s.href=3D'http://groups.google.com/a/isocpp.org/group/std-proposals/';retur=
n true;">http://groups.google.com/a/<wbr>isocpp.org/group/std-<wbr>proposal=
s/</a>.<br>
</blockquote></div>
</blockquote></div>

<p></p>

-- <br />
<br />
--- <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 />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/">http://groups.google.com/a/isocpp.org/group/std-proposals/<=
/a>.<br />

------=_Part_11548_279130807.1417547631309--
------=_Part_11547_2105846202.1417547631309--

.


Author: David Krauss <potswa@gmail.com>
Date: Wed, 3 Dec 2014 12:09:43 +0800
Raw View
--Apple-Mail=_C3DC605F-E1B3-4ED2-A9E2-18F760C62654
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8


On 2014=E2=80=9312=E2=80=9303, at 3:13 AM, taskov@gmail.com wrote:

> Con you give any meaningful example for code that will brake, if the fund=
amental types are implicitly in the global namespace ?

ADL of template parameter dependent calls is performed with declarations vi=
sible at the point of instantiation of a template. A template which uses (u=
nqualified) sqrt before it is declared in the global namespace, would find =
later declarations.

struct converts_from_double {
    converts_from_double( double );
};

converts_from_double sqrt( converts_from_double ); // standard C++ calls th=
is

template< typename t >
void do_sqrt( t x ) {
    sqrt( x );
}

#include <math.h> // later declaration

int main() {
    do_sqrt( 5. ); // template finds std::sqrt with your extension
}

--=20

---=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.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposa=
ls/.

--Apple-Mail=_C3DC605F-E1B3-4ED2-A9E2-18F760C62654
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset=UTF-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html charset=
=3Dwindows-1252"></head><body style=3D"word-wrap: break-word; -webkit-nbsp-=
mode: space; -webkit-line-break: after-white-space;"><br><div><div>On 2014=
=E2=80=9312=E2=80=9303, at 3:13 AM, <a href=3D"mailto:taskov@gmail.com">tas=
kov@gmail.com</a> wrote:</div><br class=3D"Apple-interchange-newline"><bloc=
kquote type=3D"cite"><div dir=3D"ltr">Con you give any meaningful example f=
or code that will brake, if the fundamental types are implicitly in the glo=
bal namespace ?<br></div></blockquote><div><br></div><div>ADL of template p=
arameter dependent calls is performed with declarations visible at the poin=
t of instantiation of a template. A template which uses (unqualified)&nbsp;=
<font face=3D"Courier">sqrt</font> before it is declared in the global name=
space, would find later declarations.</div><div><br></div><div><font face=
=3D"Courier">struct converts_from_double {</font></div><div><font face=3D"C=
ourier">&nbsp; &nbsp; converts_from_double( double );</font></div><div><fon=
t face=3D"Courier">};</font></div><div><font face=3D"Courier"><br></font></=
div><div><font face=3D"Courier">converts_from_double sqrt( converts_from_do=
uble ); // standard C++ calls this</font></div><div><font face=3D"Courier">=
<br></font></div><div><font face=3D"Courier">template&lt; typename t &gt;</=
font></div><div><font face=3D"Courier">void do_sqrt( t x ) {</font></div><d=
iv><font face=3D"Courier">&nbsp; &nbsp; sqrt( x );</font></div><div><font f=
ace=3D"Courier">}</font></div><div><font face=3D"Courier"><br></font></div>=
<div><font face=3D"Courier">#include &lt;math.h&gt; // later declaration</f=
ont></div><div><font face=3D"Courier"><br></font></div><div><font face=3D"C=
ourier">int main() {</font></div><div><font face=3D"Courier">&nbsp; &nbsp; =
do_sqrt( 5. ); // template finds std::sqrt&nbsp;with your extension</font><=
/div><font face=3D"Courier">}</font></div><div><br></div></body></html>

<p></p>

-- <br />
<br />
--- <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 />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/">http://groups.google.com/a/isocpp.org/group/std-proposals/<=
/a>.<br />

--Apple-Mail=_C3DC605F-E1B3-4ED2-A9E2-18F760C62654--

.