use #warning instead of #warn
fix class Noncopyable