2016-04-18 6 views
8

ブーストstring_viewの二つの異なる実装を提供し、:相違:: C++ 17の一部となるstring_view

  • boost::string_refutility/string_ref.hpp
  • boost::string_viewcore/string_view.hpp

これらの間に重大な違いはありますか?今後どのように優先されるべきか?

注:Boost 1.61では、boost :: logはstring_refを推奨しています。おそらくそれは指標ですか? (http://www.boost.org/users/history/version_1_61_0.html

答えて

11

Funnily十分な権利を持ってやっていることと一致します。

ブースト:: string_viewは、次のような利点があります今は私がマーシャル・クロー(ACCU)の会議に出席しています。そして、私はストリング_ビューとビーンに関する彼の見解を忘れてしまいました。 eガイドラインサポートライブラリ(GSL)gsl::span<T>これは非常によく似たものです(gsl-liteは私のお気に入りのGSL実装です.03互換ですが、他にもたくさんあります)。 私は彼らが標準化のための単一の実装に統合されることを聞いていましたが、gsl::span<T>の方向性は未来ですが、私はそれが間違っている場合、馬の口から自分自身を報告します。現時点では、gsl::span<T>の方向が現在の将来であり、using string_view = gsl::span<char>が本質的にstring_viewであっても、Boostはまもなく同様のものを持つように更新されると仮定します。

編集:私はちょうどマーシャルの階下に話しました。彼は、Boostの実装のように、string_viewはC++ 17であると言っています。array_viewは、string_viewを歴史的に取り囲むものではありません。

GSL string_spanは、C++での入力が期待されない独立したエンティティであり、実装がさまざまなユースケースを解決するための現在の計画はありません。特に、string_viewは常に借用された文字配列、 string_spanは、新しい文字列を作成するためのソースとして潜在的に使用される、借用された文字配列の潜在的な変更可能なビューであると予想されるため、string_spanはおそらく将来のC++標準でstring_viewの一般化になるかもしれません。

+1

FYI string_view、array_viewおよびspanの委員会からの最新の更新は2月に行われ、http://stackoverflow.com/a/36207785/805579 –

4

this email from the boost mailing listによれば、boost :: string_refは将来使用されず、他のboostライブラリのstring_viewに置き換えられます。

  • 良いが、標準化委員会が はWAYよりconstexprの支援にC++ 17
  • ため
+2

"標準委員会がC++ 17のためにやっていることによく似ています - 具体的に何が意味するのですか(boost :: string_refとの違い)? – sehe

関連する問題