
Ion GaztaƱaga wrote:
It's a good option, but I'm still reluctant. Adding a base class in boost namespace has also implications with ADL and it's unnecessary for compilers with deleted definitions (= delete). I need a bit more time to see pros/cons.
I think boost::noncopyable is a typedef for boost::noncopyable_::noncopyable. But you are right, it leads to lookup in the namespace boost. But I wonder why it is not implemented as a typedef for boost_noncopyable::noncopyable, as this would seem to avoid the ADL problems. Jeffrey Lee Hellrung wrote:
I, too, am (currently) against adding such a base class, for the above reasons and for the MSVC EBO reason Ion gave earlier.
I interpreted the proposal in the way that Ilya Sokolov was thinking loudly about modifying boost::noncopyable to suit the need of boost.move. But the problems with unreliable EBO are really an issue for the other proposals of Ilya, as they also make the reinterpret_cast (when implemented in the base class) more dangerous. Regards, Thomas