Какую практику вы бы порекомендовали и почему?
class Foo : public boost::noncopyable {};
против.
class Foo : private boost::noncopyable {};
Я не могу себе представить, что нужно использовать экземпляр Foo как boost:: noncopyable, поэтому в этом случае я склоняюсь к частному наследованию.