2011-06-17 18 views
11

、[container.requirements.general]:のstd ::文字列 - N3290より小さな文字列の最適化とスワップ

発現a.swap(b)は、array以外の標準コンテナのタイプの容器AおよびBのために、交換しなければなりません個々のコンテナ要素に対して移動、コピー、またはスワップ操作を呼び出すことなく、aとbの値を返します。

これは小さな文字列の最適化とどのように相互作用しますか?彼らはstd::stringも追加することを忘れましたか?

+1

私は文字列がここで使われている意味での "コンテナ"だとは思わない。 –

+0

@Logan:質問は次のようになります。「文字列はコンテナですか?」正しい引用文を提供できる場合は答えになります。 – ybungalobill

+4

@ybungalobill: 'basic_string'がFDISの' Containers Library'の章に記述されていないという事実は良い手掛かりです。 ; - ] – ildjarn

答えて

11

(コメントから再投稿)

std::stringがコンテナではありません– basic_stringはFDISのContainers library章(§23)に記載されていないという事実は良い手がかりです。 ; - ]

+0

よろしく!今私は 'vector 'と 'string'のもう一つの違いを知っています! – ybungalobill

+3

21.4 ** basic_stringがコンテナだったと主張するのに使用されていましたが、それは明らかにFDISのために削除されました。 –

+3

@Bo:ええ、あなたも正しいようです。しかし、古典的な標準であるC++ 98では21.3です。「basic_stringはリバーシブルコンテナの要件に準拠しています。 – ybungalobill

関連する問題