【发布时间】:2012-11-10 15:59:49
【问题描述】:
好的,程序就到这里了,绝对正确
#include <iostream>
using namespace std;
template <typename T>
void Swap(T &a , T &b);
int main(){
int i = 10;
int j = 20;
cout<<"i, j = " << i <<" , " <<j<<endl;
Swap(i,j);
cout<<"i, j = " << i <<" , " <<j<<endl;
}
template <typename T>
void Swap(T &a , T &b){
T temp;
temp = a ;
a = b;
b= temp;
}
但是当我将函数的名称从 Swap 更改为 swap 它会产生一个错误提示
错误:重载“swap(int&, int&)”的调用不明确|笔记: 候选者是: void swap(T&, T&) [with T = int]| ||=== 构建 已完成:1 个错误,0 个警告 ===|
发生了什么是使用模板开始函数以大写字母开头的规则吗?
【问题讨论】:
-
谁/在哪里建议模板化的函数名称应该以大写字母开头?我问是因为我不知道,不是因为我不同意。虽然,例如标准库也使用小写命名约定,所以快速思考我无法为这种命名方案提供很大的好处。 :)