add compile time assertion, but some errors occurred here