問題タブ [nullptr]

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.

0 投票する
2 に答える
36407 参照

c++ - unique_ptrはnullptr値を取ることができますか?

このコードフラグメントは有効ですか?:

つまり、に割り当てることはできnullptrますunique_ptrか?またはそれは失敗しますか?

これをg++コンパイラで試しましたが、機能しましたが、他のコンパイラはどうでしょうか。

0 投票する
1 に答える
193 参照

c++ - nullptr から推測されたポイントされたテンプレート型?

機能を考えると:

Tのためf(nullptr)ですか?

0 投票する
1 に答える
238 参照

c++ - C++ - ポインターを介して所有権を表す

私のゲーム エンジンには、 EntityCharacterEntityVehicleEntityVehicleSeatの3 つのクラスがあります。

ここに画像の説明を入力

EntityVehicleには、 EntityCharacterのインスタンスへのポインターを持つ座席オブジェクトが含まれています。座席オブジェクトのターゲット キャラクター エンティティ ポインターがヌル ポインターの場合、その特定の座席オブジェクトに座っているキャラクターはいません。EntityCharacter クラスのインスタンスには、座席オブジェクトへのポインターもあり、これらのキャラクター エンティティが車両に座っているかどうかを示します。

つまり、EntityCharacter クラスのインスタンスには EntityVehicleSeat へのポインターがあり、その逆もあります。

このようにして、キャラクターと車両エンティティの両方を介してこの所有権を確認できます。

ポインターを相互に指すように設定するのは簡単ですが、問題が 1 つあります。他のオブジェクトがスコープ外になると、残りのオブジェクトに無効なポインターが作成されることになります。

ここに画像の説明を入力

この種の所有権を洗練された方法で表現するにはどうすればよいでしょうか。他のオブジェクトが存在しなくなったことを他のオブジェクトにどのように通知できますか?

0 投票する
3 に答える
2135 参照

c++ - 空の shared_ptr の意味

shared_ptr に関する奇妙な事実に気付きました

これ以上のセマンティックは何だろう。s と s2 が nullptr を共有しているのはなぜですか? それは意味がありますか?

それとも、この珍しい状況は if ステートメントに値しない (コストがかかる?) でしょうか?

啓発をありがとう。

0 投票する
1 に答える
1565 参照

c++ - gcc nullptr の問題

gcc 4.7.2 でコンパイルするために既存のコードを移植していますが、nullptr で奇妙な問題が発生しました。私はそれを簡単なテストケースに要約することができました:

これを g++ test.cpp -o test -std=c++0x でコンパイルします。

私が期待する出力は「I was here 1」ですが、SetMarker が呼び出されないことを示す「元の値」が得られます。

Test2 または Test3 を呼び出すと、期待される出力が得られます。

私が取り組んでいるコードは、Test3 で見られるパターンを使用しています。元々は NULL の前にキャストがありませんでしたが、int から char* への無効な変換でエラーが発生したため、これらすべての NULL を nullptr に変更し始めました。残念ながら、それは正しく動作しません。

Test2 のパターンを使用するようにコードを変更せざるを得ない可能性がありますが (どちらかというと好みます)、これがコンパイラーのバグなのか、それとも何か不足しているのか知りたいです。

0 投票する
4 に答える
84855 参照

c++ - C++11 shared_ptr をクリアする場合、リセットを使用するか、nullptr に設定する必要がありますか?

C++11 のベスト プラクティスについて質問があります。shared_ptr をクリアするとき、reset()パラメーターなしで関数を使用する必要がありますか、それとも に設定する必要がありshared_ptrますnullptrか? 例えば:

実際の違いはありますか、またはどちらのアプローチにも利点/欠点がありますか?

0 投票する
2 に答える
3758 参照

c++ - nullptrはC++で未定義の動作を参照していますか?

次のコードは、nullptrポインターと参照をいじっています。

質問: C++ 標準では、コメント付きステートメント 1..3 は有効なコードですか、それとも未定義の動作ですか?

これは、異なるバージョンの C++ と同じですか、それとも異なりますか (古いバージョンではもちろん、キーワード0の代わりにリテラルが使用されます)。nullptr

おまけの質問: 既知のコンパイラ/最適化オプションはありますか?実際に上記のコードが予期しないことやクラッシュを引き起こす可能性がありますか? たとえば、nullptrから参照引数を渡すことを含め、参照が初期化されるすべての場所で暗黙的なアサーションを生成するコンパイラのフラグはあり*ptrますか?


好奇心旺盛で、予期しないものがない場合の出力例:

0 投票する
2 に答える
26037 参照

c++ - Qt Creator C++ 11 を使用すると、nullptr がキーワードになりますか?

Qt Creator を使用して C++11 を使用しています。

これは他の場所で機能するコードであり、関連する部分は次のとおりです。

何が問題なのですか?

これはすでにキーワードではなく、スコープ グローバルではありませんか?

0 投票する
2 に答える
6975 参照

c++11 - c++11 では、dynamic_cast は nullptr または 0 を返しますか?

dynamic_cast の結果を確認したい。c++11 (または nullptr をサポートするコンパイラの場合は c++0x) では、nullptr または 0 と比較する必要がありますか?

それは重要ですか? もしそうなら、それはなぜですか?

結果はコンパイラに依存しますか?