make two level specialization with sfinae for same_size, resize, copy, algebra_dispatcher, and operation_dispatcher