strange to see using boost::noncopyable with structure