2011-07-10 17 views
3

std::basic_string<...>::back()メンバー関数が存在しないのはなぜですか?std :: string :: back()

機能が明らかにされ、私は意味し、1は

  • myString[myString.size()-1]

  • *myString.rbegin()

を書くことができます私は、潜在的なback()と2の間にいくつかの間違った等価性を仮定してアム上記の方法?私の2番目のバージョンは簡潔だと言うことができますが、ストリングをコンテナに一歩近づける機能を実現するのは簡単なのですか?私は行方不明の警告がありますか?

ありがとうございました。

+0

可能な複製[std :: stringの最後の要素を取得する](http://stackoverflow.com/questions/4884548/get-the-last-element-of-a-stdstring) – Xeo

+1

また、 () '... –

+0

また、私は' std :: string :: back'をgooggedし、この質問が最初にポップアップしました... – Xeo

答えて

9

std::stringにこれらの機能があってはならない特別な理由はなく、このアサーションは今後のC++標準で追加されたという事実によってサポートされています。

+0

MSVCだけではないのですか?それは本当に標準ドラフトに入っていますか? –

+0

はい、私はn3290.pdf(FDIS)を見ています。 –

1

MSDNには、is oneと記載されています。そして付属のfront()。多分あなたは古代の、dodderyコンパイラを持っているだけかもしれません。

+0

MSVC9.0は古代のdodderyコンパイラですか? –

+3

これはC++ 0xの追加である可能性があります。 –

+0

MSDNのリンクでは、このドキュメントはVS 2010のみに存在することがわかります(それ以外の場合は、バージョンを切り替えることができます)。これらの2つの機能が最近追加されたようです。 – Timbo

2

C++ 0x標準(または少なくとも作業草案)を信じる場合、実際にはfront()back()が存在します。

セクション21.4.5を参照してください。

関連する問題