これを実装したり、コンテナを使用する方法は他にもあります。これは私の好奇心を満たすためだけです。私は、次のコードがあるとします。参照渡し配列 - 大きな配列のサブセット
void byref(int (&a)[5]);
int main()
{
int a[5];
byref(a);
}
利点参照することによってCスタイルの配列を渡すのは、sizeof
意志std::end
として、その上で動作することです。しかし、今はちょうどこのサイズの配列を渡すことが可能です。
大きな配列のサブセットをこの関数に参照渡しすることはできますか?たとえば、私はしたいと思います:
int main()
{
int a[10];
byref(a + 1);
}
この作業を行う方法はありますか?
私はVS2015で期待値を与え、それはビルドして実行するようになったが、もちろん、コードは非常に危険ななります
byref(reinterpret_cast<int(&)[5]>(*(a + 1)));
'array_view'を使用してください。 –
@KarolyHorvath、OPは、これを実装したり、コンテナを使用する他の方法があることを知っています。 –
С++でテンプレートを使うことができます: 'template void byref(int(&a)[N]);' –
Constructor