問題タブ [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.
c++ - unique_ptrはnullptr値を取ることができますか?
このコードフラグメントは有効ですか?:
つまり、に割り当てることはできnullptr
ますunique_ptr
か?またはそれは失敗しますか?
これをg++コンパイラで試しましたが、機能しましたが、他のコンパイラはどうでしょうか。
c++ - nullptr から推測されたポイントされたテンプレート型?
機能を考えると:
何T
のためf(nullptr)
ですか?
c++ - C++ - ポインターを介して所有権を表す
私のゲーム エンジンには、 EntityCharacter、EntityVehicle、EntityVehicleSeatの3 つのクラスがあります。
EntityVehicleには、 EntityCharacterのインスタンスへのポインターを持つ座席オブジェクトが含まれています。座席オブジェクトのターゲット キャラクター エンティティ ポインターがヌル ポインターの場合、その特定の座席オブジェクトに座っているキャラクターはいません。EntityCharacter クラスのインスタンスには、座席オブジェクトへのポインターもあり、これらのキャラクター エンティティが車両に座っているかどうかを示します。
つまり、EntityCharacter クラスのインスタンスには EntityVehicleSeat へのポインターがあり、その逆もあります。
このようにして、キャラクターと車両エンティティの両方を介してこの所有権を確認できます。
ポインターを相互に指すように設定するのは簡単ですが、問題が 1 つあります。他のオブジェクトがスコープ外になると、残りのオブジェクトに無効なポインターが作成されることになります。
この種の所有権を洗練された方法で表現するにはどうすればよいでしょうか。他のオブジェクトが存在しなくなったことを他のオブジェクトにどのように通知できますか?
c++ - 空の shared_ptr の意味
shared_ptr に関する奇妙な事実に気付きました
これ以上のセマンティックは何だろう。s と s2 が nullptr を共有しているのはなぜですか? それは意味がありますか?
それとも、この珍しい状況は if ステートメントに値しない (コストがかかる?) でしょうか?
啓発をありがとう。
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 のパターンを使用するようにコードを変更せざるを得ない可能性がありますが (どちらかというと好みます)、これがコンパイラーのバグなのか、それとも何か不足しているのか知りたいです。
c++ - C++11 shared_ptr をクリアする場合、リセットを使用するか、nullptr に設定する必要がありますか?
C++11 のベスト プラクティスについて質問があります。shared_ptr をクリアするとき、reset()
パラメーターなしで関数を使用する必要がありますか、それとも に設定する必要がありshared_ptr
ますnullptr
か? 例えば:
実際の違いはありますか、またはどちらのアプローチにも利点/欠点がありますか?
c++ - nullptrはC++で未定義の動作を参照していますか?
次のコードは、nullptr
ポインターと参照をいじっています。
質問: C++ 標準では、コメント付きステートメント 1..3 は有効なコードですか、それとも未定義の動作ですか?
これは、異なるバージョンの C++ と同じですか、それとも異なりますか (古いバージョンではもちろん、キーワード0
の代わりにリテラルが使用されます)。nullptr
おまけの質問: 既知のコンパイラ/最適化オプションはありますか?実際に上記のコードが予期しないことやクラッシュを引き起こす可能性がありますか? たとえば、nullptr
から参照引数を渡すことを含め、参照が初期化されるすべての場所で暗黙的なアサーションを生成するコンパイラのフラグはあり*ptr
ますか?
好奇心旺盛で、予期しないものがない場合の出力例:
c++ - Qt Creator C++ 11 を使用すると、nullptr がキーワードになりますか?
Qt Creator を使用して C++11 を使用しています。
これは他の場所で機能するコードであり、関連する部分は次のとおりです。
何が問題なのですか?
これはすでにキーワードではなく、スコープ グローバルではありませんか?
c++11 - c++11 では、dynamic_cast は nullptr または 0 を返しますか?
dynamic_cast の結果を確認したい。c++11 (または nullptr をサポートするコンパイラの場合は c++0x) では、nullptr または 0 と比較する必要がありますか?
それは重要ですか? もしそうなら、それはなぜですか?
結果はコンパイラに依存しますか?