
29 Jun
2009
29 Jun
'09
10:07 a.m.
2009/6/29 Peter Simons <simons@cryp.to>:
Hi Niels,
> [It's] not recommended to do an unqualified call to boost::swap: > > std::string a1[42]; > std::string a2[42]; > > boost::swap(a1, a2); // Okay. > > using boost::swap; > swap(a1, a2); // Does not compile!
why do you think this code won't compile? As far as I can tell, ADL would resolve the call to invoke std::swap().
Try it. std::swap can't swap arrays, boost::swap can. boost::swap will also call swap via. ADL when appropriate and supports compilers that don't support ADL. Which is why it's recommended that 'boost::swap' is used. Daniel