(私はこのパラダイムの名前を見つけることはできませんが、できればボーナスupvoteを得ます!)このテンプレートパラダイムは、配列がポインタ:戻り値の配列テンプレートパラメータを使用
template <size_t N>
void foo(const char (&bar) [N]);
我々はbar
オフサイズを取得するためにfoo
の本体でN
を使用することができます。 const char array[] = "lorem ipsum"
が与えられた場合、foo(array)
を呼び出してbar
をconst char (&) [12]
と定義し、実際には1つの価格に対して2つのパラメータを渡します。
私はこれと同じ考え方を使用したいが、リターンで、例えば:
私のような、通過配列を渡すと、それを別の参照を持つことができるようtemplate <size_t N>
const char (&) [N] foo(const char (&bar) [N]);
:auto result = foo(bar)
unrecognizable template declaration/definition
:私はここにある
コードは、エラーを生成しますか?
EDIT:明確にするため
、私は相当になります関数の戻り値を持つことができるようにしたい:result
は*
があるconst char (&) [*]
なること
auto& result = bar;
このようなサイズはbar
です。
これは "参照渡し"と呼ばれています:-) –
@KerrekSB Hmmm ...私はもう少しエキゾチックなことを望んでいましたが、私はそれを仮定します:J –