問題タブ [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++ - sqrt() pow() fabs() が機能しない
sqrt pow や fabs などの関数を使用しているプログラムをコンパイルしようとしています。math.h が含まれていますが、何らかの理由で次のようなエラーが発生します。
これが含まれている残りの機能についても同じです:
含めてみましたが、それでも同じエラーです。彼らが認識されていない理由を知っている人はいますか?私のファイルは.cではなく.cppですが、MFCプロジェクトです。
ありがとう
c++ - ISO C ++ 03は、関数スコープで定義された構造体にどのような制限を課しますか?
関数テンプレートのインスタンス化で関数宣言構造体を使用することは許可されていないため、関数内に関数構造体を定義することは許可されていません。
知っておくべき他の重要な落とし穴はありますか?たとえば、これは悪いことです:
c++ - C++03 と C++11 の間に実行時に検出できる違いがあるとすれば、それは何ですか?
C コンパイラでコンパイルすると 0 を返し、C++ コンパイラでコンパイルすると 1 を返す関数を作成することができます ( の簡単な解決策
#ifdef __cplusplus
は興味深いものではありません)。
例えば:
もちろん、上記は次sizeof (char)
と同じでない場合にのみ機能しますsizeof (int)
別の、よりポータブルなソリューションは次のようなものです。
例が 100% 正しいかどうかはわかりませんが、おわかりいただけたでしょうか。同じ関数を書く他の方法もあると思います。
C++03 と C++11 の間に実行時に検出できる違いがあるとすれば、それは何ですか? つまり、適合する C++03 コンパイラまたは C++11 コンパイラでコンパイルされているかどうかを示すブール値を返す同様の関数を作成することは可能ですか?
c++ - C++03で「型を逆参照」する方法は?
C++03 で別の型の「逆参照型」を取得するにはどうすればよいですか? のような他の逆参照可能な型にすることができることに注意してくださいstd::vector<int>::iterator
。
たとえば、私が持っている場合
を何に置き換えるかはどうすればわかり???
ますか?
( No Boost ! 自分で計算する方法を知りたいです。)
c++ - C++03 でコンストラクタの継承を偽造するにはどうすればよいですか?
私の知る限り、C++ ではコンストラクターを継承できません。しかし、ベースをインスタンス化するのと同じ方法で、継承されたクラスをインスタンス化できるように見えることが必要になる場合があります。
派生クラスは、基本クラスがない場合、デフォルトで構築される可能性があることに注意してください。
オプション 1 は通常行われていることだと思いますが、新しいことを何も表現せずにコードを入力しています。オプション 2const
では、すべてが代入可能でなければならないため、正確性が損なわれます (また、参照をメンバーとして使用できなくなります)。
これを回避する良い方法はありますか?
編集: C++11 は素晴らしいですが、残念ながら C++03 ソリューションが必要です。
c++ - クラス内で固定サイズの定数配列を初期化しています
次のクラスについて考えてみます。
arr
コンストラクタ初期化子リストから、または宣言されている行(つまり)以外の方法で初期化することは可能const int arr[2] = {1,2};
ですか?
C++98で動作するメソッドに興味があることに注意してください。
c++ - 呼び出すことなく、オーバーロード セットから最適な一致へのポインターを取得します。
さまざまな理由から、2 フェーズ構成を使用する必要があります。さらに、最後のフェーズは延期され、別のスレッドによって実行されます。コンテキスト:
ここでの問題は、ConnectionType::Init に設定されたオーバーロードから可能な限り一致するものを選択したいのですが、キャストが異なり、一部の引数が変換可能であっても完全に一致するものを見つけることができないことです。したがって、質問は次のようになります:実際に呼び出すことなく、オーバーロード セットから最適な一致する型とポインターを何らかの形で取得することは可能ですか? C++03 で使用できないものは使用できません。
c++ - POD クラス タイプと非 POD クラス タイプのデフォルトの初期化
C++ 標準は次のように述べています (8.5/5):
タイプのオブジェクトをデフォルトで初期化するとは、次のことを
T
意味します。
が
T
非 POD クラス型 (節 9) の場合、 のデフォルト コンストラクターT
が呼び出されます (T
アクセス可能なデフォルト コンストラクターがない場合、初期化の形式は正しくありません)。
T
が配列型の場合、各要素はデフォルトで初期化されます。それ以外の場合、オブジェクトはゼロで初期化されます。
このコードで
オブジェクトa
はデフォルトで初期化されていますが、a.i
必ずしも 0 に等しいとは限りません。Int
POD は配列ではなく、標準と矛盾しませんか?
編集class
からに 変更されstruct
、Int
POD になりました。
c++ - 以前は`auto`は何に使われていましたか?
auto
C ++ 11以前は、キーワードの意味がまったく異なっていたことを私は知っています。これは、自動ストレージタイプを持つ(つまり、スタックに配置される)オブジェクトを示すストレージタイプ指定子でした。
それが理論の流れです...実際にこのキーワード(構文)をどのように使用しますか、そしてその理由は何ですか?また、C++11より前の実際のコードではこのキーワードを見たことがありません。いつ役に立ちましたか(どの期間)?
c++ - std::map で std::auto_ptr を使用しても安全ですか?
特にSTLでは、自動ポインタ(およびその理由)に注意する必要があることを認識しています。しかし、私はこれに問題はありません:
これは安全ですか?
std::vector
アイテムを時々コピーする必要があるため、でどのように壊れるかがわかりますが、これは ? の値の型にも当てはまりstd::map
ますか?
編集:どうやら、安全かどうかに関係なく、(技術的に) マップにデータを入力することはできませんが、理論的な考慮事項のために質問を開いたままにします。それ以外の場合は、閉じていると見なします。