#include #include #include class Foo : private boost::noncopyable { public: Foo() {}; }; class DerivedCopy : public Foo { public: DerivedCopy() : Foo() {} }; int main() { std::cout << "Hello World\n"; DerivedCopy f; std::cout << "Now copy the thing\n"; DerivedCopy g(f); }