better cpp template