* Use boost::noncopyable to replace MACROS