タグ付けされた質問 「c++」

C ++は汎用プログラミング言語です。もともとCの拡張として設計され、構文は似ていますが、現在は完全に異なる言語になっています。このタグは、C ++コンパイラでコンパイルされる(される)コードに関する質問に使用します。特定の標準リビジョン[C ++ 11]、[C ++ 14]、[C ++ 17]または[C ++ 20]などに関連する質問には、バージョン固有のタグを使用します。



13
システム(「一時停止」); -なぜそれが間違っているのですか?
よくわからない質問があります。 コマンドsystem("pause");は、プログラムを一時停止し、キーボード入力が続くのを待つ方法として、新しいプログラマーに教えられます。ただし、さまざまな程度で行うべきではないものとして、多くのベテランプログラマーによって眉をひそめているようです。 一部の人々はそれを使用するのは結構ですと言います。部屋に閉じ込められていて、誰も見ていないときにのみ使用するためのものだと言う人もいます。彼らが個人的にあなたの家に来てあなたがそれを使うならあなたを殺すと言う人もいます。 私自身、正式なプログラミングトレーニングを受けていない新しいプログラマーです。使うように教えられたので使っています。私が理解していないことは、それが使用されるものではない場合、なぜそれを使用するように教えられたのですか?あるいは、裏返して言えば、結局それほど悪くはないのでしょうか? この問題についてどう思いますか?
131 c++ 

20
エラーLNK2038: '_ITERATOR_DEBUG_LEVEL'の不一致が検出されました:値 '0'はmain.objの値 '2'と一致しません
私は自分の問題に対する多くの解決策を読みましたが、何の助けにもなりませんでした。私はきれいにして、再構築してみました。ビジュアル2010を再インストールし、プロから究極に変更。しかし、それでもなぜこのエラーが発生するのかわかりません。私のプロジェクトは次のようになります。静的ライブラリをテストする1つのExeソリューション。1 Dll Solution静的ライブラリ。dllに変換されるコードは、ClassificationFrameworkと呼ばれる1 libの関数を使用しています。このlibをヘッダーとcppとして提供したので、基本的にはソースコードです。Exeソリューションでは、生成されたライブラリ+他のいくつかのライブラリをリンクして実行しました+ ClassificationFramework.dll。リリースを使用するとすべてが正常に機能しますが、デバッグに変更すると(いくつかのものをデバッグしたいため、リリースモードでデバッガーをスキップするのにうんざりしています)、次のようになります。 2>Link: 2> ClassificationFramework.lib(SampleClass.obj) : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance 2>ClassificationFramework.lib(SampleClass.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in main.obj 2>ClassificationFramework.lib(SampleNamesSet.obj) : …
131 c++  debugging  linker 

4
ブールから整数への変換
この変換はどの程度移植性がありますか。両方のアサーションがパスすることを確認できますか? int x = 4<5; assert(x==1); x = 4>5; assert(x==0); 理由は聞かないでください。私はそれが醜いことを知っています。ありがとうございました。
131 c++  c  c99 

3
C ++ 11でthread_localはどういう意味ですか?
thread_localC ++ 11 での説明と混同しています。私の理解では、各スレッドには関数内のローカル変数の一意のコピーがあります。グローバル/静的変数は、すべてのスレッドからアクセスできます(ロックを使用して同期アクセスされる場合があります)。そして、thread_local変数はすべてのスレッドに表示されますが、それらが定義されているスレッドによってのみ変更できますか?それが正しいか?

8
正式には、typenameは何のためのものですか?
gccテンプレートを使用しているときに、本当に判読できないエラーメッセージが吐き出されるのを見たことがあります。具体的には、一見正しい宣言が非常に奇妙なコンパイルエラーを引き起こし、魔法のようにtypenameキーワードの先頭にプレフィックスを付けることで消えてしまうという問題がありました。宣言...(たとえば、先週、2つのイテレータを別のテンプレートクラスのメンバーとして宣言していたので、これを行わなければなりませんでした)... 何の話typename?
131 c++  templates 

4
GCCのデフォルトのインクルードディレクトリは何ですか?
非常に単純なソースファイルをgccでコンパイルするとき、stdioやstdlibなどの標準インクルードファイルへのパスを指定する必要はありません。 GCCはこれらのファイルを見つける方法をどのように知っていますか? /usr/include内部に配線されたパスがありますか、それとも他のOSコンポーネントからパスを取得しますか?
131 c++  c  linux  gcc  include-path 

6
Visual Studioは削除されたポインターをどのように処理しますか、そしてその理由は何ですか?
私が読んでいるC ++の本では、delete演算子を使用してポインターが削除されると、ポインターが指している場所のメモリーが「解放」され、上書きされる可能性があると述べています。また、ポインターが再割り当てされるか、またはに設定されるまで、ポインターは同じ場所を指し続けると述べていますNULL。 ただし、Visual Studio 2012では。これはそうではないようです! 例: #include <iostream> using namespace std; int main() { int* ptr = new int; cout << "ptr = " << ptr << endl; delete ptr; cout << "ptr = " << ptr << endl; system("pause"); return 0; } このプログラムをコンパイルして実行すると、次の出力が得られます。 ptr = 0050BC10 ptr = 00008123 …

4
std :: numeric_limits <unsigned char>メンバーを呼び出す前の単項“ +”の目的は何ですか?
私はこの例をcppreferenceのドキュメントで見ましたstd::numeric_limits #include &lt;limits&gt; #include &lt;iostream&gt; int main() { std::cout &lt;&lt; "type\tlowest()\tmin()\t\tmax()\n\n"; std::cout &lt;&lt; "uchar\t" &lt;&lt; +std::numeric_limits&lt;unsigned char&gt;::lowest() &lt;&lt; '\t' &lt;&lt; '\t' &lt;&lt; +std::numeric_limits&lt;unsigned char&gt;::min() &lt;&lt; '\t' &lt;&lt; '\t' &lt;&lt; +std::numeric_limits&lt;unsigned char&gt;::max() &lt;&lt; '\n'; std::cout &lt;&lt; "int\t" &lt;&lt; std::numeric_limits&lt;int&gt;::lowest() &lt;&lt; '\t' &lt;&lt; std::numeric_limits&lt;int&gt;::min() &lt;&lt; '\t' &lt;&lt; std::numeric_limits&lt;int&gt;::max() &lt;&lt; '\n'; std::cout &lt;&lt; …
130 c++  char  unary-operator 



29
C ++でのメモリリークを回避するための一般的なガイドライン[終了]
現在のところ、この質問は、Q&A形式には適していません。事実、参考文献、専門知識によって回答が裏付けられることを期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問が改善され、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 C ++プログラムでメモリをリークしないようにするための一般的なヒントは何ですか?動的に割り当てられたメモリを解放する必要があるのはどのようにすればよいですか?

14
C / C ++で関数ポインターとデータポインターに互換性がないのはなぜですか?
関数ポインターをデータポインターに変換したり、その逆を行ったりすると、ほとんどのプラットフォームで機能することを確認しましたが、機能するかどうかは保証されていません。これはなぜですか?どちらも単にメインメモリへのアドレスであってはならず、したがって互換性があるべきではないのですか


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.