よしそうHERESにプログラムとは関数の名前を `swap`とするとテンプレートエラーになるのですが、` Swap`は大丈夫ですか?
#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;
}
絶対的に正しい動作しますが、私はスワップスワップから、関数の名前を変更したときそれは
error: call of overloaded 'swap(int&, int&)' is ambiguous| note: candidates are: void swap(T&, T&) [with T = int]| ||=== Build finished: 1 errors, 0 warnings ===|
を言って、エラーが発生し 大文字で始まるテンプレートを使って関数を始めるのはどういうことでしょうか?
テンプレート化された関数名は大文字で始めるべきですか?私は知らないので頼んでいる、私は同意しないからではない。しかし、例えば標準ライブラリではlower_caseという命名規則も使用されています。そのため、このような命名規則には大きな利点がありません。 :) – zxcdw