use static assert to ensure native_type is not na_ instead of making na_ an incomplete type.