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

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

3
Visual Studio 2015にはcl.exeがありません
Visual C ++とVisual Studioをダウンロードしましたがcl.exe、C ++ファイルをコンパイルできません。インストールのパスは、 `C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ VC \ binです。 C ++コードをコンパイルするコンパイラはどこにありますか?

2
テンプレート関数を明示的にインスタンス化するにはどうすればよいですか?
1つの引数を持つテンプレート関数があります。その関数を呼び出さずにその関数をインスタンス化する必要があるということは、明示的にインスタンス化する必要があることを意味します。 私はこの機能を持っています: template <class T> int function_name(T a) {} この関数を次のようにインスタンス化しました。 template int function_name<int>(int); しかし、次のエラーが発生しました: error: expected primary-expression before 'template' error: expected `;' before 'template'
117 c++  templates 

4
元の例外の再スローに関するC ++例外の質問
キャッチ内の次のappend()によって、再スローされた例外が原因で、append()が呼び出された結果を確認できますか? try { mayThrowMyErr(); } catch (myErr &err) { err.append("Add to my message here"); throw; // Does the rethrow exception reflect the call to append()? } 同様に、この方法で書き換えた場合、実際の例外がmyErrによって派生した場合、ビットスライスは発生しますか? try { mayThrowObjectDerivedFromMyErr(); } catch (myErr &err) { err.append("Add to my message's base class here"); throw err; // Do I lose the derived …
117 c++  exception  rethrow 

4
ostringstreamを再利用する方法?
アプリが多くの割り当てを行う必要がないように、ostringstream(および基になるバッファー)をクリアして再利用したいと思います。オブジェクトを初期状態にリセットするにはどうすればよいですか?
117 c++  stl  reset  ostringstream 

12
CおよびC ++で「const static」とはどういう意味ですか?
const static int foo = 42; StackOverflowの一部のコードでこれを確認しましたが、何ができるのかわかりませんでした。それから私は他のフォーラムでいくつかの混乱した答えを見ました。私の推測では、foo他のモジュールから定数を隠すためにCで使用されていると思います。これは正しいです?もしそうなら、なぜ誰もがあなたがそれを作ることができるC ++コンテキストでそれを使うのprivateですか?
117 c++  c 

11
例外コード「EXC_I386_GPFLT」の意味は何ですか?
例外コードの意味は何EXC_I386_GPFLTですか? その意味は状況によって異なりますか? その場合、私はEXC_BAD_ACCESS例外コードで例外タイプを参照していますEXC_I386_GPFLT プログラムはXcode 5.0.1で開発されてcblas_zgemm()おり、BLASライブラリを扱います(まあ、それは問題ではないと思います...) どうもありがとうございました!
117 c++  c  exc-bad-access 

5
内部クラスはプライベート変数にアクセスできますか?
class Outer { class Inner { public: Inner() {} void func() ; }; private: static const char* const MYCONST; int var; }; void Outer::Inner::func() { var = 1; } const char* const Outer::MYCONST = "myconst"; これは、クラスOuter :: Inner 'でコンパイルすると、「var」という名前のメンバーがいないときにエラーになります。
117 c++  inner-classes 

12
同等のC ++からPythonジェネレーターへのパターン
C ++で模倣する必要があるPythonコードの例をいくつか持っています。特定のソリューション(コルーティンベースの歩留まりソリューションなど、それらは許容できる回答ですが)は必要ありません。何らかの方法でセマンティクスを再現する必要があるだけです。 パイソン これは基本的なシーケンスジェネレーターであり、実体化されたバージョンを格納するには明らかに大きすぎます。 def pair_sequence(): for i in range(2**32): for j in range(2**32): yield (i, j) 目標は、上記のシーケンスの2つのインスタンスを維持し、それらをセミロックステップでチャンクで反復処理することです。以下の例ではfirst_passバッファを初期化するための対の配列を使用し、そしてsecond_pass再生する同じ正確な配列をし、再度バッファを処理します。 def run(): seq1 = pair_sequence() seq2 = pair_sequence() buffer = [0] * 1000 first_pass(seq1, buffer) second_pass(seq2, buffer) ... repeat ... C ++ C ++のソリューションで見つけることができる唯一のことはyield、C ++コルーチンを模倣することですが、これを行う方法に関する適切なリファレンスは見つかりませんでした。この問題の代替(一般的ではない)ソリューションにも興味があります。パス間でシーケンスのコピーを保持するのに十分なメモリバジェットがありません。

3
最もシンプルだが完全なCMakeの例
どういうわけか私はCMakeの動作に完全に混乱しています。CMakeがどのように記述されることを意図しているかを理解するようになるたびに、それは私が読んだ次の例では消えます。私が知りたいのは、自分のプロジェクトをどのように構成すればよいのかということです。これにより、私のCMakeが将来最小限の保守を必要とするだけです。たとえば、他のすべてのsrcフォルダーとまったく同じように機能する新しいフォルダーをsrcツリーに追加するときに、CMakeList.txtを更新したくありません。 これが私のプロジェクトの構造を想像する方法ですが、これはほんの一例です。推奨される方法が異なる場合は、教えてください。方法も教えてください。 myProject src/ module1/ module1.h module1.cpp module2/ [...] main.cpp test/ test1.cpp resources/ file.png bin [execute cmake ..] ちなみに、私のプログラムはリソースがどこにあるかを知っていることが重要です。推奨されるリソース管理方法を教えてください。「../resources/file.png」で自分のリソースにアクセスしたくない
117 c++  cmake  project-setup 


2
ベクトルをゼロに初期化するC ++ / C ++ 11
私はC ++ 11で、変数をゼロに初期化する機能を追加したことを知っています double number = {}; // number = 0 int data{}; // data = 0 std::vector固定長のをすべてゼロに初期化する同様の方法はありますか?
117 c++  c++11 


30
C言語と比較してC ++の制限は何ですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 6年前休業。 この質問を改善する C ++の利点は次のとおりです C ++は、彼らが求めている特定の機能を提供します 彼らのCコンパイラはほぼ間違いなくC ++コンパイラなので、ソフトウェアのコストへの影響はありません C ++はCと同様に移植可能です C ++コードは、Cと同じくらい(またはそれ以上またはそれ以下)効率的です。 C ++ではなくCを使用する必要がある具体的な理由と特定のシナリオはありますか? この質問への参照:Cのジェネリックのライブラリ 重複ではありません。この質問は言語の制限について尋ねているのであり、ある言語を別の言語で学ぶべき/すべきではないためです。 Peter Kirkhamの投稿は、特に私が考慮していなかったC99の問題に関して、私にとって最も有益であったので、それを受け入れました。参加してくれた他のすべての人に感謝します。
116 c++  c 

6
shared_mutexのブーストの例(複数の読み取り/ 1つの書き込み)?
いくつかのデータを頻繁に読み取らなければならないマルチスレッドアプリがあり、そのデータが更新されることもあります。現在、ミューテックスはそのデータへのアクセスを安全に保ちますが、複数のスレッドが同時に読み取れるようにし、更新が必要な場合にのみロックアウトする必要があるため、コストがかかります(更新スレッドは他のスレッドが完了するのを待つことができます) 。 これはboost::shared_mutex本来あるべきことだと思いますが、使い方がよく分からず、具体的な例もわかりません。 開始するために使用できる簡単な例はありますか?

30
コンパイラ/オプティマイザがより高速なプログラムを作成できるようにするコーディングプラクティス
何年も前、Cコンパイラはそれほど賢くありませんでした。回避策としてK&Rがregisterキーワードを考案し、コンパイラーにヒントを与えるために、この変数を内部レジスターに保持することをお勧めします。彼らはまた、より良いコードの生成を支援するために三次演算子を作りました。 時間の経過とともに、コンパイラは成熟しました。フロー分析により、レジスタにどの値を保持するかを、ユーザーが実行できるよりも適切に決定できるという点で、非常に賢くなりました。registerキーワードは重要ではなくなりました。 FORTRANは、エイリアスの問題により、ある種の操作ではCよりも高速になる場合があります。理論的には、注意深くコーディングすれば、オプティマイザがより高速なコードを生成できるように、この制限を回避できます。 コンパイラ/オプティマイザがより高速なコードを生成できるようにするために、どのようなコーディングプラクティスを利用できますか? 使用するプラットフォームとコンパイラを特定していただければ幸いです。 なぜテクニックはうまくいくように見えるのですか? サンプルコードが推奨されます。 ここに関連する質問があります [編集] この質問は、プロファイルを作成して最適化するプロセス全体に関するものではありません。プログラムが正しく記述され、完全に最適化されてコンパイルされ、テストされ、本番環境に導入されていると想定します。コード内に、オプティマイザが可能な最善の仕事をすることを禁止する構成要素があるかもしれません。これらの禁止事項を取り除き、オプティマイザがさらに高速なコードを生成できるようにするには、リファクタリングに何ができますか? [編集] オフセット関連リンク

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