单选题 关于在调用模板函数时模板实参的使用,下列叙述中正确的是

【正确答案】 A
【答案解析】[解析] 在调用模板函数时,编译系统需要足够的信息来判别每个虚拟类型参数所对应的实际类型。可以从两个不同的渠道获得类型信息:从“模板实参表”(在“<”和“>”之间)或从模板“函数实参表”(在“(”和“)”之间),“模板实参表”的信息优先于“函数实参表”的信息。如果从后者得到的信息已经能够判断其中部分或全部虚拟类型参数所对应的实际类型,而且它们又正好是“模板形参表声明”中最后的若干参数,则在“模板实参表”中可以省略这几个参数。如果所有的模板实参都被省略了,则空表“<>”也可以省略。
但在以下情况中,模板实参是不能省略的:
①从模板“函数实参表”中获得的信息有矛盾。
②虚拟类型参数用作函数的返回值类型,而且函数需要返回特定类型的值,而不管函数实参的类型是什么。在这种情况下,需要用模板实参强制虚拟类型参数对应于特定类型。
③虚拟类型参数没有出现在模板的“函数实参表”中。
④函数模板含有常规形参。