2017-09-30 12 views
1

古いC++プログラマーとして、私は最近C++ 11を学んでいます。 有効Mordern C++を読み取るとき、面白いタイプを見つけた:'char(&)[13]'はどういう意味ですか?

char (&) [13] 

T &必要な機能テンプレートに配列を渡す:

template<typename T> 
void funcTemplate1(T& param) 
{ 
    std::cout << boost::typeindex::type_id_with_cvr<T>().pretty_name() << std::endl; 
} 
void main() 
{ 
    char szHello[] = "Hello, World"; 
    funcTemplate1(szHello); 
} 

それ出力:

char (&) [13] 

を決してそれを見たことはありません。意味は何ですか?

+4

これは、13個の 'char'の配列への参照です。 – Peter

+0

私はそれがchar [13]配列への参照を意味するかもしれないと考えましたが、かっこはなぜですか? –

+0

ありがとう@Peter、私はそれを直接char(&)[13] = szHelloとして使うことはできないようです。コンパイルエラーが発生します。 –

答えて

8

私たちは、失われた機能パラメータ名を挿入した場合、それは次のようになります。

char (&param) [13] 

あなたはこれで間違いなく精通している:

もちろん13文字の配列である
char param[13] 

&を追加すると、同じことを意味します。かっこは、参照の配列ではなく、配列への参照であるため、必要です。

関連する問題