元编程和泛型编程