我想知道以下方法之间的主要区别是什么。如果定义了std::to_string,是否有两种情况之一会引起问题?include <string>using namespace std;enum class eColor{ Red};void to_string(eColor color){}template<typename C = eColor)void to_string(C color){}int main(){ to_string(eColor::Red); // assume only one of the above is defined return 0;}是否存在上述情况之一应被优先考虑? 最佳答案 您的函数to_string(eColor color)实际上不是模板专长,因为它在定义之前错过了template 。因此,编译器将其视为完全定义的函数,而不是使用具体类型生成的模板。这意味着只要编译器可以匹配参数列表,就将始终使用此函数。关于c++ - 只有一个模板特化有用吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46236525/ 10-09 08:30