あたりのC ++のドラフトとしてスタック上のランタイム配列境界

デーモン:

前回の測定値に基づいて、私の理解あたりとしては、配列のサイズは一定であることが必要とVLAがサポートされているG ++によって提供される追加のサポートを除いて、コンパイル時に知られています。

しかし、私はC ++のドラフトの1つを介して行っていたと今、私は混乱していますと、C ++のサポートランタイム配列境界を行います。彼らは、アレイを定義するために以下のコード例を与えています。

C ++のドラフトリンク:http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3690.pdf

8.3.4項

例えば:

void f(unsigned int n) {
int a[n]; // type of a is “array of runtime bound of int”
}
NathanOliver:

いいえ、C ++はしていないと、まだ実行時の大きさを持つ配列をサポートしていません。N3690は11とC ++ 14 ++ Cとの間のドラフトであり、それはあなたは私の婿になるからテキストを含まN3639自動記憶域期間を伴うランタイムサイズのアレイ(改訂5)

その提案は、最終的に廃棄されたとしてC ++ 14ドラフトN4140テキストを除去しました。

ドラフトを見たとき、あなたは「標準」として使用することができるというものです

  • N3337(C ++ 11の+社説修正)
  • N4140(C ++ 14の+社説修正)
  • N4659(2017年3月ポストコナワーキングドラフト/ C ++ 17 DIS)

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=29176&siteId=1