• [解決済み】C++で不要な中括弧は?

    質問 今日、同僚のコードレビューをしているときに、奇妙なものを見ました。彼は新しいコードをこのように中括弧で囲んでいたのです。 Constructor::Constructor() { existing code { New code: do some new fancy stuff here } existing code } その結果がある

    2022-04-15 03:43:59
  • [解決済み] マルチコアを使用したg++でのコンパイル

    質問 簡単な質問:大規模なプロジェクトをより速くコンパイルするために、g++が自分自身の複数のインスタンスを生成するためのコンパイラーフラグは何ですか(例えば、マルチコアCPUで一度に4つのソースファイルなど)? 解決方法を教えてください。 gnu make では -j フラグです (これはユニプロセッサのマシンでも役に立ちます)。 例えば、makeで4つの並列ジョブを作りたい場

    2022-04-15 03:09:25
  • [解決済み] fork() は予想以上に分岐する?

    質問 次のようなコードを考えてみましょう。 #include <stdio.h> #include <sys/types.h> #include <unistd.h> int main(void) { int i; for(i = 0; i < 2; i++) { fork(); print

    2022-04-15 01:02:03
  • [解決済み】C++のコンパイルにはなぜそんなに時間がかかるのですか?

    質問 C++のファイルをコンパイルすると、C#やJavaと比較して非常に時間がかかります。C++ファイルのコンパイルには、通常サイズのPythonスクリプトを実行するよりもかなり時間がかかります。現在VC++を使用していますが、どのコンパイラでも同じです。これはなぜでしょうか? 考えられる理由は、ヘッダーファイルの読み込みとプリプロセッサの実行の2つですが、それだけでは時間がかかる理由が

    2022-04-14 22:29:54
  • [解決済み] C++の内部型定義 - 良いスタイルか悪いスタイルか?

    質問 最近よくやることは、特定のクラスに関連する型定義をそのクラスの中で宣言することです。 class Lorem { typedef boost::shared_ptr<Lorem> ptr; typedef std::vector<Lorem::ptr> vector; // // ... // }; これらの型は、コード内の他の場所で

    2022-04-14 21:17:52
  • [解決済み] カスタムC++アロケータの説得力のある例?

    質問 を捨てる本当に良い理由は何ですか? std::allocator を、カスタムソリューションの代わりに使用することはできますか?正しさ、パフォーマンス、スケーラビリティなどのために絶対に必要な状況に遭遇したことがありますか?本当に賢い例があれば教えてください。 カスタムアロケータは、Standard Libraryの機能の中で、いつもあまり必要性のないものでした。ただ、SOの誰か

    2022-04-14 20:36:31
  • [解決済み] なぜ、requiresは必要なのか?

    質問事項 C++20のコンセプトのコーナーの1つに、以下のように書かなければならない状況があります。 requires requires . 例えば、この例では [expr.prim.req]/3 : A requires-expression を使用することもできます。 require-clause(要求節 ([temp]) のようなテンプレート引数に対するアドホ

    2022-04-14 19:32:15
  • [解決済み] ベクターが割り当てられるとき、ヒープとスタックのどちらでメモリを使用するのですか?

    質問 次の文はすべて正しいか? vector<Type> vect; //allocates vect on stack and each of the Type (using std::allocator) also will be on the stack vector<Type> *vect = new vector<Type>; //alloc

    2022-04-14 15:02:50
  • [解決済み】C++でCSVファイルを読み、パースするにはどうすればよいですか?

    質問 C++でCSVファイルのデータを読み込んで使いたいのですが、どうすればいいですか? この時点では、カンマ区切りのパーサー(つまり、改行やカンマのエスケープは気にしないでください)でよいのです。 主なニーズは、メソッドが呼び出されるたびに次の行のベクトルを返す行ごとのパーサーです。 この記事はかなり期待できそうです。 http://www.boost.org/doc/libs/1

    2022-04-14 12:53:29
  • [解決済み】C言語配列からstd::vectorを初期化する方法とは?

    質問 を初期化する最も安価な方法は何ですか? std::vector を C スタイルの配列から作成することはできますか? 例 以下のクラスでは vector が、外部からの制約により、C言語形式の配列としてデータを渡すことになります。 class Foo { std::vector<double> w_; public: void set_data(doubl

    2022-04-14 11:56:30
  • [解決済み] if (pointer != NULL)の代わりにif (pointer) を使用できますか?

    質問 でないことをポインタで確認しても大丈夫でしょうか? NULL と書くことで、単純に if(pointer) を使用しなければならないのでしょうか? if(pointer != NULL) ? 解決方法は? NULLポインタは暗黙のうちにfalseに変換され、非NULLポインタはtrueに変換されるからです。C++11標準の、以下のセクションを参照してください。 ブール値

    2022-04-14 10:40:04
  • [解決済み] C++ ダブルアドレス演算子?(&&)

    質問 STLのソースコードを読んでいるのですが、何が何だかさっぱりわかりません。 && のアドレス演算子を使用することになっています。以下はそのコード例です。 stl_vector.h : vector& operator=(vector&& __x) // <-- Note double ampersands here { // N

    2022-04-14 10:13:06
  • [解決済み] キャッシュラインサイズをプログラムで取得する?

    質問 どのようなプラットフォームでも構いません。 似たような質問 C++でCPUキャッシュページサイズをプログラム的に取得する方法は? どのように解決するのですか? を使用することができます。 std::hardware_destructive_interference_size C++17以降。 と定義されている。 誤った共有を避けるための、2つのオブジ

    2022-04-14 10:07:04
  • [解決済み] C++の演算子における暗黙の型変換規則

    質問 キャストするタイミングをうまく見極められるようになりたいです。C++で足し算、掛け算などをするときの暗黙の型変換ルールは何ですか?例えば int + float = ? int * float = ? float * int = ? int / float = ? float / int = ? int / int = ? int ^ float = ? などなど... 式

    2022-04-14 06:35:04
  • [解決済み] C++のクラスメンバは、明示的に初期化しない場合、どのように初期化されるのですか?

    質問 プライベートメンバーを持つクラスがあるとします。 ptr , name , pname , rname , crname と age 自分で初期化しない場合はどうなるのですか?以下はその一例です。 class Example { private: int *ptr; string name; string *pnam

    2022-04-14 05:49:23
  • [解決済み] std::queueを効率よくクリアするにはどうしたらよいですか?

    質問 JobQueueクラスの実装にstd::queueを使用しています。(基本的にこのクラスは、各ジョブをFIFO方式で処理します)。 あるシナリオでは、キューを一発でクリアしたい(キューからすべてのジョブを削除する)。 私はstd::queueクラスで利用可能なclearメソッドを見ません。 JobQueueクラスのclearメソッドを効率的に実装するには? 私はループでポップす

    2022-04-14 04:20:16
  • [解決済み] 仮想関数にデフォルトのパラメータを持たせることはできますか?

    質問 ベースクラス(またはインターフェースクラス)を宣言し、そのパラメータの1つ以上にデフォルト値を指定した場合、派生クラスも同じデフォルト値を指定しなければならないのでしょうか、そうでなければ、どのデフォルト値が派生クラスで明示されるのでしょうか。 追記:異なるコンパイラ間でどのように扱われるのか、またこのシナリオにおける「推奨される」実践方法についての意見にも興味があります。 解

    2022-04-14 03:59:38
  • [解決済み】パブリックフレンドスワップメンバー関数

    質問 の美しい答えの中に コピーアンドスワップイディオム があるのですが、ちょっと助けて欲しいコードがあります。 class dumb_array { public: // ... friend void swap(dumb_array& first, dumb_array& second) // nothrow { usin

    2022-04-14 02:23:21
  • [解決済み】std::vectorはpush_backでオブジェクトをコピーしているのか?

    質問 valgrindでいろいろ調べた結果、std::vectorはpush_backしたいオブジェクトのコピーを作るという結論に達しました。 本当にそうでしょうか?ベクターはコピーなしでオブジェクトの参照やポインタを保持することはできないのですか? ありがとうございます。 解決方法は? はい。 std::vector<T>::push_back() は引数のコ

    2022-04-13 23:59:55
  • [解決済み】ラムダ・キャプチャをconst参照にする?

    質問 でキャプチャすることは可能ですか? const をラムダ式で参照できますか? 例えば、以下のようにマークされた代入を失敗させたいのです。 #include <algorithm> #include <string> using namespace std; int main() { string strings[] = {

    2022-04-13 19:44:20