問題タブ [c++03]
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++ - テンプレート引数リストを反復しますか?
テンプレート引数リストをループする方法を見つけようとしていますが、成功しません
C++11 可変個引数テンプレート機能を使用できず、コンパイル時に行う必要があります
否定的な議論の後には肯定的な議論はないと想定できます
何か案が ?
c++ - ベクトルポインタから要素を読み取る方法は?
ベクトルポインタ要素にアクセスする必要があります。アニメーション構造用に次のコードがあります(ここでは簡略化されており、不要な変数は切り捨てられています)。
アレイは機能します。テストしました
test.frames->size()
。計画どおり7でした。
では、ベクトルからN番目のインデックスにあるベクトル要素(wとh)にアクセスするにはどうすればよいですか?
c++ - Boost(Lambda?)を使用してstd :: sort()を簡単にする方法は?
私が持っているとしましょう
Value
C ++ 03で多数のインデックスを並べ替える場合は、次のような面倒な記述を行う必要があります。
Boostを使って(おそらくBoost.Lambdaを使って)これをもっときれいに、できれば1行で書く方法はありますか?
c++ - autoの古い使用法(c ++ 03)がC ++ 11でコンパイルされないのはなぜですか?
auto
これは変数のデフォルトであるため(静的とは反対)、以前は少し使用されていました。質問を参照して
ください。ただし、おそらく自明のように、このキーワードが使用された有効なC++03コードを検討してください。
C ++ 03でコンパイルされ、C++11ではコンパイルされません。C ++ 03との下位互換性がない理由はありますか?このキーワードが使用されなかったという標準的な委員会の意見の源は何でしたか?キーワード使用の統計はありますか?
ところで、私はgccでテストしました-多分これはコンパイラのバグですか?
c++ - 二項演算子 + オーバーロードの戻り値は const である必要があり、最適化を妨げる可能性がありますか?
サンプルコードを考えると:
operator+() が実際に const Integer を返すべきかどうか疑問に思い始めました。「Thinking in C++」の Bruce Eckel は、同様のケースの演算子のオーバーロードの例を提供しており、戻り値の型で const 修飾子を好むようです。それを使用する必要がありますか?その理由は?
一方、このクラスを使用してみましょう。
aとbの合計としてcを作成する場合、コンパイラはほとんどの場合コピー省略を実行し、Integer::operator+() はcが占める場所にその結果を直接作成します (「速度が必要ですか? 値で渡す」を参照してください)。しかし、Integer::operator+() の戻り値の型が const として宣言されている場合、ターゲットが非 const であるため、コンパイラは強制的にコピーを実行しませんか?
c++ - クラス B がクラスのテンプレート ファミリから派生しているかどうかをテストする方法
クラスBがstd::vectorから派生しているかどうかをコンパイル時にテストする方法は?
クラスBがテンプレートファミリーから派生したものかどうかをコンパイル時にテストする方法は?
使用:
c++ - x == Foo ::A||と言うより良い方法 x == Foo :: B || x == Foo :: C || ...?
このようなよく知られた値がたくさんあるとしましょう(ただし、これconst char *
は単なる例であり、より複雑になる可能性があります)。
ここで、ある式の結果がそれらのサブセットに含まれている場合に、特定の方法で動作したいとします。
私はこの種のことを頻繁にタイプしているので、その省略形が欲しいと思います。
言語がPythonの場合、私は簡単に次のように言うことができます。
これをC++03で同様に表現するための、よく知られたポータブルな方法はありますか?
戻り型自体が醜い(ラムダ式の戻り型とほぼ同じくらい醜い)ので、ローカル変数に格納したくないことに注意してください。
ただし、戻り型は定数の型と一致する必要はありません。たとえば、戻り型がである場合、暗黙的にに変換するstd::string
ことはできませんconst char *
がoperator ==
、比較にはまったく問題ありません。
これまでのところ、私が持っている最善の解決策は、次のようなことを言うことです。
しかし、それはかなり醜いです。非PODでも機能するより良い方法はありますか?
c++ - カップルの stl リストを 1 つのプロパティでのみコピーする方法
カスタムクラスへのポインタのリストがいくつかあります(クラスは基本データを持つ単純な人です)。すべてのリストから 1 つの新しいリストにポインター (浅いコピー) をコピーする方法はありますが、ポートランド (city==Portland) 出身の人のみです。STL ( list ) のリストを使用しています。C++11が使えません。
c++ - C++ ベクトルの初期化でコピー コンストラクターが呼び出されるのはなぜですか
次の方法でベクトルを初期化すると、次のようになります。
既定のコンストラクターを 1 回呼び出してから、コピー コンストラクターをさらに 10 回呼び出します。したがって、正しく理解すれば、ベクター内のオブジェクトはすべてコピー コンストラクターによって作成されます。
デフォルトのものではなく、コピーコンストラクターを呼び出す理由を誰かが説明できますか? それとも、オブジェクトなしでメモリを割り当てるだけですか?
c++ - C++ とダブルチェック ロックの危険性: 回避策?
「Scott Meyers によるダブル チェック ロックの危険性」に関する論文を読んでいました。http://www.aristeia.com/Papers/DDJ_Jul_Aug_2004_revised.pdf
著者は、ダブル チェック ロックが失敗する理由を示しています (ページ 3、セクション 4)。C++11 を使わずにこの問題を回避する方法を考えていました。C++ 11 を使用したくないというわけではありませんが、std::call_once などの関数を使用せずに解決できるかどうかを確認するだけです。
Singleton::instance() のコードはマルチスレッド環境で動作しますか? SeqAssign クラスのコンストラクターとデストラクタが呼び出される順序は決定論的です。