C++相談室 part104
■ このスレッドは過去ログ倉庫に格納されています
0768デフォルトの名無しさん
2013/09/21(土) 10:46:04.01下のテンプレート関数の挙動がわからない。
ここから-----------------------
配列の要素数を返すテンプレート。
template<class T,size_t N>
size_t count(T (&array)[N])
{
return N;
}
使用例:
int array[10];
cout << count(array) << endl;
ここまで------------------------
■今わかっていること
・size_tはtypedefされたunsigned intのこと
・要素数の戻り値はsize_t型
・たぶん(&array)[N]のarrayに配列アドレスが参照渡しされてる。
■わからないこと
・<class T,size_t N>のTって使われてない?のに関数が成功してるのはなぜか?
・size_t NのNは引数として渡してないのになぜ要素数が入っているのか?
・int array[10];のarrayは配列の先頭アドレスとすると、
(&array)[N]に引数として参照渡しされたときイメージとして
(&配列アドレス)[N]となると、配列アドレスのアドレス??ってなんだろう?
という感じでよく分からない。
・count(T (&array)[N])のTってなんの役に立つの?何するものなんでしょうか?
・このテンプレート関数の一連の流れが知りたい
■ このスレッドは過去ログ倉庫に格納されています