0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

引数の配列サイズの違いによってオーバーロード関数を切り替えることができるか

Last updated at Posted at 2018-07-18

概要

引数の配列サイズの違いによってオーバーロード関数を切り替えることができるか確認する。

結論

できない。
引数で配列を参照渡しすることでできる( @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;
}

0
0
7

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?