、[container.requirements.general]:のstd ::文字列 - N3290より小さな文字列の最適化とスワップ
発現
a.swap(b)
は、array
以外の標準コンテナのタイプの容器AおよびBのために、交換しなければなりません個々のコンテナ要素に対して移動、コピー、またはスワップ操作を呼び出すことなく、aとbの値を返します。
これは小さな文字列の最適化とどのように相互作用しますか?彼らはstd::string
も追加することを忘れましたか?
、[container.requirements.general]:のstd ::文字列 - N3290より小さな文字列の最適化とスワップ
発現
a.swap(b)
は、array
以外の標準コンテナのタイプの容器AおよびBのために、交換しなければなりません個々のコンテナ要素に対して移動、コピー、またはスワップ操作を呼び出すことなく、aとbの値を返します。
これは小さな文字列の最適化とどのように相互作用しますか?彼らはstd::string
も追加することを忘れましたか?
(コメントから再投稿)
std::string
がコンテナではありません– basic_string
はFDISのContainers library
章(§23)に記載されていないという事実は良い手がかりです。 ; - ]
よろしく!今私は 'vector
21.4 ** basic_stringがコンテナだったと主張するのに使用されていましたが、それは明らかにFDISのために削除されました。 –
@Bo:ええ、あなたも正しいようです。しかし、古典的な標準であるC++ 98では21.3です。「basic_stringはリバーシブルコンテナの要件に準拠しています。 – ybungalobill
私は文字列がここで使われている意味での "コンテナ"だとは思わない。 –
@Logan:質問は次のようになります。「文字列はコンテナですか?」正しい引用文を提供できる場合は答えになります。 – ybungalobill
@ybungalobill: 'basic_string'がFDISの' Containers Library'の章に記述されていないという事実は良い手掛かりです。 ; - ] – ildjarn