概要
引数の配列サイズの違いによってオーバーロード関数を切り替えることができるか確認する。
結論
できない。
引数で配列を参照渡しすることでできる( @rinse_ さんからのコメントをご参照ください)
背景
ユーザに提供するAPIを実装するにあたって、
ユーザによって引数に入れる配列サイズが異なるため、ミスが多発することが想定される。
そこで、配列サイズを特定のものに限定したオーバーロード関数を用意しておくことで、ミス
が低減できるのではないかと想定される。
※クラスのメンバ関数としての実装を想定しているため、サイズの関係からテンプレートつき関数は使いたくない。
確認コード
test.cpp
///title
/// 配列数のちがいによってオーバーロード関数を切り替えることができるか確認する
///
/// 結論:できない。コンパイルエラー
#include <iostream>
using namespace std;
void func(int arr[3])
{
cout << "arr size is 3." << endl;
}
void func(int arr[5]) ///コンパイルエラー
{
cout << "arr size is 5." << endl;
}
int main()
{
return 0;
}