• C++におけるメンバ関数のconst&, &, &&指定子

    質問 最近、私は の API を読んでいました。 boost::optional という行に行き当たりました。 T const& operator *() const& ; T& operator *() & ; T&& operator *() && ; また、メンバ関数を const&a

    2023-11-27 03:39:15
  • ostreamを標準文字列に変換する

    質問 私はC++のSTLに非常に慣れていないので、これは些細なことかもしれません。私は ostream 変数があり、その中にいくつかのテキストがあります。 ostream* pout; (*pout) << "Some Text"; ストリームを抽出して、それを文字列型の char* ? どのように解決するのですか? std::ostringstre

    2023-11-26 10:54:37
  • ラムダの戻り値型は戻り値から推測できるのに、なぜ関数の戻り値型はできないのでしょうか?

    疑問点 #include <iostream> int main(){ auto lambda = [] { return 7; }; std::cout << lambda() << '\n'; } このプログラムは、コンパイルして7を表示します。 ラムダの戻り値は7という値から整数型に推論されま

    2023-11-24 20:16:11
  • コンパイラは、文字を追加する際に未使用の文字列を最適化しなくなる

    質問 私は、なぜ次のコードの部分があるのかが気になります。 #include <string> int main() { std::string a = "ABCDEFGHIJKLMNO"; } でコンパイルした場合 -O3 でコンパイルすると,次のようなコードになります. main: #

    2023-11-22 18:48:59
  • 静的コンストラクタとは何ですか?

    質問 この質問は、面接で聞かれたものです。 静的コンストラクタとは何ですか? C++に存在しますか?ある場合、例を挙げて説明してください。 どのように解決するのですか? C++には静的コンストラクタはありませんが、ネストしたクラスの静的インスタンスを使用してエミュレートすることができます。 class has_static_constructor { frien

    2023-11-22 10:47:27
  • vector<double> で std::max_element を使用する。

    質問 私は std::min_element と std::max_element を使って、double 型のベクトルの最小値と最大値を返します。 私のコンパイラは、現在私がそれらを使用しようとしている方法を好まないし、エラーメッセージも理解できない。 もちろん、最小値と最大値を求める独自の手続きを書くこともできますが、関数の使用方法を理解したいのです。 #include &lt

    2023-11-22 09:02:15
  • Herb Sutter氏のCppCon 2014の講演(Back to Basics: Modern C++ Style)で、値を取るセッター・メンバー関数が推奨されていないのはなぜか?

    疑問点 Herb Sutter の CppCon 2014 の講演で、Back to Basics: モダン C++ スタイルについて、彼はスライド 28 で言及しています ( スライドのウェブコピーはこちら )でこのパターンに言及しています。 class employee { std::string name_; public: void set_name(std::stri

    2023-11-19 17:07:36
  • floatよりdoubleの方が速い?

    質問 Double 値はより高い精度で保存され、float の 2 倍のサイズですが、Intel CPU は float に最適化されているのでしょうか? つまり、+、-、*、および / のための倍数演算は、float 演算と同じかより高速ですか? 64ビットアーキテクチャの場合、答えは変わるのでしょうか? どのように解決するのですか? 特にどの演算が他に対して最適化されてい

    2023-11-19 08:39:56
  • なぜポインタ/参照がないとポリモーフィズムは機能しないのか?

    疑問点 SOで似たようなタイトルの質問をいくつか見つけましたが、回答を読むと、質問の異なる部分に焦点を合わせていて、本当に具体的でした (例: STL/コンテナ)。 なぜポリモーフィズムを実装するためにポインタや参照を使用しなければならないのか、どなたか教えていただけませんか?私はポインタが役立つかもしれないことを理解できますが、確かに参照は値渡しと参照渡しを区別するだけでしょうか?

    2023-11-17 08:26:41
  • C++のグローバルメモリ管理はスタックかヒープか?

    質問 C++アプリケーションでデータ構造をグローバルに宣言した場合、スタックメモリとヒープメモリのどちらを消費するのでしょうか? 例えば struct AAA { .../.../. ../../.. }arr[59652323]; どのように解決するのですか? 私は回答に満足できなかったので、sameer karjatkarが単純なイエス/ノー回答以外のことを学びたいと思

    2023-11-16 07:08:44
  • C++コンパイルバグ?

    質問 次のようなコードがあります。 #include &lt;iostream&gt; #include &lt;complex&gt; using namespace std; int main() { complex&lt;int&gt; delta; complex&lt;int&gt; mc[4] = {0}; for(int di = 0; di &l

    2023-11-15 12:38:26
  • 浮動小数点数とゼロを比較する

    質問 C++ FAQ lite "[29.17] 浮動小数点の比較がうまくいかないのですが? は、この等値性テストを推奨しています。 #include &lt;cmath&gt; /* for std::abs(double) */ inline bool isEqual(double x, double y) { const double epsilon = /* som

    2023-11-15 03:13:42
  • g++のコンパイル時間を高速化する方法(テンプレートを多用する場合)

    質問 この質問はおそらく奇妙なものですが、どのようにしたら g++ のコンパイル時間を短縮できるでしょうか。私の C++ コードは、boost とテンプレートを多用しています。私はすでにヘッダーファイルから可能な限り移動し、-j オプションを使用していますが、それでもコンパイル (およびリンク) にかなりの時間がかかります。 私のコードを分析し、コンパイラのボトルネックを指摘するようなツ

    2023-11-14 08:24:29
  • デフォルトの継承アクセス指定子

    質問 例えば、2つのクラス A と B というように、クラス B を継承する A を以下のように継承します。 class B: public A この場合、私がやっているのは public を継承しています。 先ほどのコードを以下のように書くと class B: A ここではどのようなタイプの継承を行うのでしょうか (すなわち、public)?言い換えれ

    2023-11-14 08:18:37
  • std::vector: prefer assign or std::copy のコピー?

    質問 2つのベクトルがあります。 std::vector&lt;int&gt; v1, v2; // Filling v1 ... そして、今度は v1 を v2 . を好む理由はあるのでしょうか? v2 = v1; へ std::copy (v1.begin(), v1.end(), v2.begin()); (またはその逆)ですか? どのように解決す

    2023-11-13 03:57:46
  • クラス内に特定のメンバ変数が存在するかどうかを検出する方法は?

    質問 アルゴリズムのテンプレート関数を作成するために、私はテンプレートの引数であるクラスのxまたはX(およびyまたはY)かどうかを知る必要があります。これは、MFC CPointクラスまたはGDI+ PointFクラスまたはいくつかの他のために私の関数を使用するときに有用であるかもしれません。これらのすべては、それらの中で異なるxを使用しています。私の解決策は、次のコードに減らすことができま

    2023-11-11 08:20:23
  • srandの推奨初期化方法について教えてください。

    質問 C++で擬似乱数生成器を初期化するための「良い」方法が必要です。私が見つけたのは 記事 には、次のように書かれています。 乱数のようなものを生成するために を生成するために、srandは通常、初期化されます。 を、実行時間に関連するような特徴的な値に初期化します。 実行時間に関連した値です。例えば によって返される値は 関数time (ヘッダ ct

    2023-11-10 10:38:57
  • クラスのすべてのメソッドが最初に他のメソッドを呼び出すことを保証するには?

    質問 私は: class Foo { public: void log() { } void a() { log(); } void b() { log(); } }; の各メソッドに、それぞれ別のメソッドを持たせる方法はありますか? Foo の各メソッドに log() を呼び

    2023-11-10 07:44:23
  • CMake のデフォルトの option(...) 値を親の CMakeLists.txt からオーバーライドする。

    質問 私は、アップグレードを容易にするために、彼らのビルド システムへの最小限の変更で、私のソース ツリーにいくつかのサード パーティ ライブラリを含めようとしています。彼らはすべて私と同じように CMake を使用しているので、私自身の CMakeLists.txt に add_subdirectory(extern/foo) を libfoo に使用することができます。 しかし、

    2023-11-10 04:57:48
  • C++: 構造体はクラスを継承できるのか?

    質問 使用しているAPIの実装を見ています。 構造体がクラスを継承していることに気づき、熟考しているところです...。 まず、一緒に勉強したC++のマニュアルには、構造体が他の構造体を継承することは書いてありませんでした。 struct A {}; struct B : public A {}; このような場合、struct Bはstruct Aのデータをすべて継承すること

    2023-11-09 10:30:29