$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Sean Perry (perry_at_[hidden])
Date: 2007-11-16 10:31:50
This compiles fine with the version 9 compiler. I think the code is legal
(haven't spent great deal of time confirming) because the too swap()'s are
should be available for overload resolution with std::swap winning.
A very simple simple fix is to change the call to swap to be qualified.
For example:
void swap(foo& x)
{
std::swap(t,x.t);
}
--
Sean Perry
Compiler Development
IBM Canada Lab
(905)-413-6031 (tie 313-6031), fax (905)-413-4839
Joaquín Mª López
Muñoz
<joaquin_at_[hidden]> To
Sent by: boost_at_[hidden]
boost-bounces_at_lis cc
ts.boost.org
Subject
Re: [boost] [config][vacpp8.0]
11/16/07 07:10 AM BOOST_FUNCTION_SCOPE_USING_DECLARAT
ION_BREAKS_ADL should be defined?
Please respond to
boost_at_lists.boost
.org
John Maddock ha escrito:
> Hmmm, the interesting thing is, I'm having a hard time convincing myself
> that this code is legal, I'm cc'ing our friendly IBM compiler expert in
case
> he can shed light on this.
>
> Consider the code again:
>
> #include <algorithm>
>
> template<typename T>
> struct foo
> {
> T t;
> foo():t(0){}
> void swap(foo& x)
> {
> using std::swap;
> swap(t,x.t);
> }
> };
>
> template<typename T>
> void swap(foo<T>& x,foo<T>& y)
> {
> x.swap(y);
> }
>
> int main()
> {
> foo<int> x,y;
> x.swap(y);
> }
>
> In foo::swap the local declaration of the member function "swap" hides
any
> occurances of swap in the outer scope, and the using declaration behaves
"as
> if" std::swap were imported into the *enclosing namespace*, which would
> still be hidden... and yet I can't believe that this simple idiom isn't
> actually legal ! :-) And indeed all the other compilers I tested do
compile
> this OK.
Ouch, didn't think about name hiding... this is why I love C++ :-/
Now I don't know either whether the code is legal or not. Anyway, if I
changed
foo::swap to foo::swop the code would be undoubtedly legal then, right?
Noel, would you please try the attached variation?
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
(See attached file: fsudba2.cpp)
_______________________________________________
Unsubscribe & other changes:
http://listarchives.boost.org/mailman/listinfo.cgi/boost