add copy constructor
fix include guard define
add nonstatic is_supported_id()
add matrix ostream out