4

stackにはiterator-member-type がないため、一般的なコンテナー要件を満たしていません: [container.requirements.general]

しかし、[container.adaptors.general]

ヘッダー<queue><stack>は、コンテナ アダプタqueuepriority_queue、およびを定義しますstack。これらのコンテナー アダプターは、シーケンス コンテナーの要件を満たしています。

シーケンス コンテナーは一般的なコンテナーのサブセットではありませんか?

4

2 に答える 2

1

これは確かに欠陥です ( http://cplusplus.github.com/LWG/lwg-active.html#2194 ):

シーケンス コンテナーは一般的なコンテナーのサブセットであるため、満たされていないコンテナー アダプターの要件が課せられます。[...] NB のコメントが気づいたように、アダプターは実際にはシーケンスでもコンテナーでもないため、この表現は修正する必要があります。それを実現する最も簡単な方法は、問題のある文を打つことです。

于 2012-10-06T19:53:01.750 に答える
1

シーケンス コンテナーは、一般的なコンテナーのサブセットです。

ただし、シーケンス アダプターは、シーケンス コンテナー (メンバー関数なし) に固有の要件を満たしていませinsertん。また、お気づきのように、一般的なコンテナーの要件も満たしていません。私はそう言うべきではないと思います[container.adaptors.general]が、私が持っている C++11 ドラフトではそう言っています。

于 2012-10-05T12:56:53.620 に答える