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

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

3
Objective C ++とは何ですか?[閉まっている]
ここで何が尋ねられているのかを知るのは難しい。この質問は、あいまいで、あいまいで、不完全で、過度に広い、または修辞的であり、現在の形では合理的に回答することができません。再開できるようにこの質問を明確にするヘルプについては、ヘルプセンターに アクセスしてください。 7年前休業。 Objective C ++とは何ですか?この言語をXcodeで使用できますか?

10
ビルド時に欠落している.pchファイルを修正する方法
Visual Studioでc ++ソリューションをビルドすると、xxxxx.pchファイルが見つからないというメッセージが表示されます。プリコンパイル済みヘッダーを元に戻すために欠けている設定はありますか? ここに完全性のための正確なエラーがあります: Error 1 fatal error C1083: Cannot open precompiled header file: 'Debug\xxxxx.pch': No such file or directory

6
仮想関数にデフォルトのパラメーターを設定できますか?
基本クラス(またはインターフェイスクラス)を宣言し、そのパラメーターの1つ以上にデフォルト値を指定する場合、派生クラスは同じデフォルトを指定する必要がありますか?そうでない場合、どのデフォルトが派生クラスに現れますか? 補遺:私はまた、これがさまざまなコンパイラでどのように処理されるか、およびこのシナリオでの「推奨される」実践に関する入力に興味があります。
164 c++  c++11  c++03 

11
強く型付けされた列挙型を自動的にintに変換する方法は?
#include <iostream> struct a { enum LOCAL_A { A1, A2 }; }; enum class b { B1, B2 }; int foo(int input) { return input; } int main(void) { std::cout << foo(a::A1) << std::endl; std::cout << foo(static_cast<int>(b::B2)) << std::endl; } の a::LOCAL_Aは、強く型付けされた列挙型が達成しようとしていることですが、小さな違いがあります。通常の列挙型は整数型に変換できますが、強く型付けされた列挙型はキャストなしでは変換できません。 それで、強く型付けされた列挙値をキャストなしで整数型に変換する方法はありますか?はいの場合、どのように?

3
Stroustrupの例では、「return 1:2」でコロンは何を意味しますか?
コロンの特定の使用法が1つわかりません。 私はそれをBjarne Stroustrup 著のC ++プログラミング言語、第4版、セクション11.4.4「呼び出しと戻り」、297ページで見つけました。 void g(double y) { [&]{ f(y); } // return type is void auto z1 = [=](int x){ return x+y; } // return type is double auto z2 = [=,y]{ if (y) return 1; else return 2; } // error: body too complicated // for return …
163 c++  syntax 

13
DはJavaとC ++の信頼できる代替品ですか?[閉まっている]
現在のところ、この質問は、Q&A形式には適していません。事実、参考文献、専門知識によって回答が裏付けられることを期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問が改善され、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 あるD言語は JavaやC ++に信頼できる代替?信頼できる代替品になるには何が必要ですか?わざわざ学習する必要がありますか?それは伝道に値しますか? 私が尋ねる主な理由は、新しいC ++標準(c ++ 0x)がほぼここにあるため、言語が理解できなくなったという点で、言語が戻ってこないという点をはるかに超えていることは明らかです。C / C ++が死ぬことはないことは知っていますが、ある時点で先に進む必要があります。COBOLでさえその日があり、Javaは多くの点でC ++を元に戻しました。次は何ですか?Dは請求書を満たしますか?
163 java  c++  c  d 

7
nullptrを使用する利点は何ですか?
このコードは、概念的には3つのポインターに対して同じことを行います(安全なポインター初期化)。 int* p1 = nullptr; int* p2 = NULL; int* p3 = 0; だから、ポインタを割り当てることの利点どのようなものnullptrそれらに値を代入上NULLかは0?
163 c++  c++11  null  c++-faq  nullptr 


8
istringstream、ostringstream、stringstreamの違いは何ですか?/すべてのケースでstringstreamを使用しないのはなぜですか?
私が使用した場合std::istringstream、std::ostringstreamそしてstd::stringstream、なぜ私は使用しないでくださいstd::stringstreamすべてのシナリオで(任意の実行時のパフォーマンスの問題があります?)。 最後に、これについて何か悪いことはありますか(ストリームをまったく使用する代わりに): std::string stHehe("Hello "); stHehe += "stackoverflow.com"; stHehe += "!";

4
CMakeを使用して、フォルダー内のすべてのファイルをターゲットに自動的に追加しますか?
クロスプラットフォームプロジェクトをVisual C ++、XCode、makefileの個別のビルド管理システムからCMakeに切り替えることを検討しています。 私が必要とする重要な機能の1つは、ディレクトリ内のすべてのファイルをターゲットに自動的に追加することです。これはmakeで簡単に実行できますが、Visual C ++やXCodeでは簡単に実行できません(間違っている場合は修正してください)。CMakeで直接行うことはできますか?どうやって?

8
パフォーマンスの観点からstd :: memcpy()またはstd :: copy()を使用する方が良いですか?
memcpy以下に示すように使用する方が良いstd::copy()ですか、それともパフォーマンスの観点から使用する方が良いですか?どうして? char *bits = NULL; ... bits = new (std::nothrow) char[((int *) copyMe->bits)[0]]; if (bits == NULL) { cout << "ERROR Not enough memory.\n"; exit(1); } memcpy (bits, copyMe->bits, ((int *) copyMe->bits)[0]);

3
文字列定数から 'char *'への変換がCでは有効であるがC ++では無効である理由
C ++ 11標準(ISO / IEC 14882:2011)は次のように述べてい§ C.1.1ます。 char* p = "abc"; // valid in C, invalid in C++ C ++の場合、文字列リテラルへのポインタは有害であり、変更しようとするとクラッシュするため、問題ありません。しかし、なぜCでは有効なのでしょうか。 C ++ 11はまた言います: char* p = (char*)"abc"; // OK: cast added つまり、最初のステートメントにキャストが追加された場合、それは有効になります。 キャストによって2番目のステートメントがC ++で有効になるのはなぜですか?それは最初のステートメントとどう違うのですか?まだ有害ではないですか?もしそうなら、なぜ規格はそれが大丈夫だと言ったのですか?
163 c++  c  string  c++11  char 

10
オブジェクト全体またはオブジェクトへのポインターをコンテナーに格納する必要がありますか?
新しいシステムを一から設計する。STLを使用して、特定の長寿命オブジェクトのリストとマップを保存します。 質問:オブジェクトにコピーコンストラクターがあり、オブジェクトのコピーをSTLコンテナー内に格納していることを確認する必要がありますか、それとも通常は自分でライフとスコープを管理し、それらのオブジェクトへのポインターをSTLコンテナーに格納するだけの方が良いですか? 私はこれが詳細にいくらか不足していることを理解していますが、私はこれらの解決策の両方が可能であることを知っているので、存在する場合は「理論的な」より良い答えを探しています。 ポインターを操作することの2つの非常に明らかな欠点:1)これらのオブジェクトの割り当て/割り当て解除を、STLを超えたスコープで自分で管理する必要があります。2)一時オブジェクトをスタックに作成してコンテナに追加できません。 他に欠けているものはありますか?
162 c++  stl  pointers 

5
なぜこのループは「警告:反復3uが未定義の動作を呼び出す」ので、4行以上出力するのですか?
これをコンパイルする: #include <iostream> int main() { for (int i = 0; i < 4; ++i) std::cout << i*1000000000 << std::endl; } そしてgcc次の警告を生成します: warning: iteration 3u invokes undefined behavior [-Waggressive-loop-optimizations] std::cout << i*1000000000 << std::endl; ^ 符号付き整数オーバーフローがあることを理解しています。 iオーバーフロー操作によって値が壊れるのはなぜですか。 私は答えを読んだのはなぜ無限ループ原因GCCとのx86上でオーバーフロー、整数のでしょうか?、しかし、なぜこれが起こるのかはまだはっきりしていません-「未定義」は「何かが起こる可能性がある」という意味ですが、この特定の動作の根本的な原因は何ですか? オンライン:http : //ideone.com/dMrRKR コンパイラ: gcc (4.8)

1
string_viewとは何ですか?
string_viewC ++ 17に追加されたC ++ Library Fundamentals TS(N3921)内で提案された機能でした。 私が理解している限り、それはある種の文字列「概念」を表すタイプであり、文字列として表示可能なものを格納できるあらゆるタイプのコンテナのビューです。 これは正解 ? 正規 const std::string&パラメータタイプは次のようになりstring_viewますか? string_view考慮すべきもう1つの重要な点はありますか?

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