問題タブ [string-view]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - constexpr スワップ関数を作成するにはどうすればよいですか?
私は学習目的で独自の String View クラスを作成しており、それを 100% constexpr にしようとしています。
それをテストするために、ハッシュ値を返すメンバー関数があります。次に、switch ステートメントで文字列ビューを作成し、同じメンバー関数を呼び出します。成功した場合、そのメンバー関数はその目的を果たしています。
学ぶために、私は自分の実装を Visual Studio 2017 の最新の更新プログラムと使用/読み取り/比較していますが、としてマークされているにもかかわらず、Visual Studio でも g++ でも機能しないことstd::string_view
に気付きました。swap
constexpr
これは機能しないコードです。
これは、if の Visual Studio 実装です。
これは私のクラスのもので、Visual Studio のものと似ています。
すべてのコンストラクターと代入は、constexpr としてマークされます。
Visual Studio と g++ の両方で同様のエラーが発生します。
スワップが constexpr で機能しない場合、なぜ constexpr を使用するのですか?
c++ - パラメータパックを文字列ビューにアンパック
char 型の値テンプレート パラメーター パックを (コンパイル時の) 文字列にアンパックできます。その文字列にa をどのように取得string_view
しますか?
私がしたいこと:
試す:
エラー:
関数で動作を取得する方法はありmain
ますか?
c++ - constexpr で string_views を連結する
で連結しようとしstring_views
ていconstexpr
ます。以下は、私のコードの簡略版です。
ただし、このコードは期待した結果を生成しません。印刷する代わりに、test1;test2;test1
初期test1;test2;
化されていないメモリにアクセスしているかのように、ランダムな文字と混合した正しい文字を出力します。
ただし、指定子を削除して上記のコードconstexpr
に置き換えるstring_views
とstrings
、期待される出力が出力されます。
コードに明らかな間違いがないか、constexpr
(まだ) 理解できない何かがあります。new のバッファを作成する方法string_view
ですか? 他に何ができますか?それとも私がやろうとしていることは不可能ですか?たぶん、私のためにこれに光を当てることができる人がいます.