>
it is very easy to screw it upNo, it's not. This just a made-up argument.
> ... many more lines of code
6 in #define, one of which is blank. Your option however creates an external dependency on the library that somehow needs to be built even though it is supposed to be just a collection of headers.
> ... and use of the preprocessor which makes searching through code very difficult
Ok, considering your Edit, let's skip this one.
> I can easily find all the noncopyable classes by searching for "noncopyable".
Similarly, you can find all noncopyable classes by searching for "__no_copying". Besides, why on Earth you would ever need to do that in real life?
> I don't have to worry about someone coming along and screwing up the access modifier at a later date.
Ah, right. Here we start to really diverge. You are writing code that needs to be protected against incompetent colleagues, and I typically don't.
> It is much less likely that someone will misunderstand what the code is trying to do
No, of course it is not. This is too a made-up argument.
PS. I hate Boost with passion, because it drags C++ in the exact opposite direction from how I am, personally, using it, which is C with classes, uncomplicated inheritance and basic templating. This is beautiful and functional subset of C++ that retains the clarity of C and adds flexibility and convenience that latter is missing. Boost has its place, clearly, but I don't understand programmers who willingly use it, just as I don't understand those who like Bjork.