• [解決済み] std::atomicのロックはどこにありますか?

    質問 データ構造に複数の要素がある場合、そのアトミックなバージョンは (常に) ロックフリーであることはできません。 これは、CPU が何らかのロックを使用せずにデータをアトミックに変更できないため、より大きな型に当てはまると聞きました。 たとえば #include <iostream> #include <atomic> struct foo {

    2023-08-26 10:35:01
  • ロングダブル vs ダブル

    質問 様々なデータ型のサイズが、使用するシステムによって変わることがあることは知っています。 私はXP 32bitsを使用しており、その中で sizeof() 演算子を C++ で使用すると、どうやら long double は12バイト、そして double は8バイトです。 しかし、ほとんどの主要なソースでは long double は 8 バイトであり、したがっ

    2023-08-25 22:40:31
  • [解決済み] c++のインライン関数?

    質問 なぜこのようなことをしなければならないのでしょうか。 inline double square (double x) { return x*x;} の代わりに double square (double x) { return x*x;} 違いはあるのでしょうか? どのように解決するのですか? 前者( inline を使用)により、その関数をヘッダーファイル

    2023-08-25 09:51:49
  • ヒープメモリの使用(malloc/new)は非決定論的なプログラムを作るか?

    質問 数ヶ月前から宇宙用のC言語でリアルタイムシステム用のソフトウェアを開発したり、C++でマイコン用のソフトウェアを開発したりしています。このようなシステムには経験則として ヒープオブジェクトを作るべきではない (だから malloc/new はダメ) という経験則があります。 非決定論的 . と言われても、その正しさを検証することはできませんでした。そこで これは正しい

    2023-08-25 03:41:43
  • Cプリプロセッサーでファイルが存在するかどうかを知ることはできますか?

    質問 私は非常に大きなコードベース (数千のモジュール) を持っています。そのコードは、すべて異なるオペレーティング システムと異なる C++ コンパイラで実行される多数のプロジェクトで共有されています。言うまでもなく、ビルド プロセスを維持することは非常に面倒です。 コードベースには、プリプロセッサが特定の #includes を無視させる方法があれば、コードを大幅にきれいにするこ

    2023-08-24 23:06:08
  • consteval関数は、関数の引数に依存するテンプレートパラメータを許容するか?

    質問 C++17では、このコードは不正です。 constexpr int foo(int i) { return std::integral_constant<int, i>::value; } というのも、たとえ foo がコンパイル時に評価できたとしても、コンパイラは実行時にそれを実行するための命令を生成する必要があるため、テンプレートのインスタンス化が不

    2023-08-24 13:54:48
  • C++でenumを拡張する?

    質問 C++で列挙型を拡張/"継承"する方法はありますか? I.E: enum Enum {A,B,C}; enum EnumEx : public Enum {D,E,F}; あるいは、少なくともそれらの間の変換を定義するか? どのように解決するのですか? いいえ、ありません。 enum は、C++では本当にかわいそうなことで、もちろんそれは残念なことです。

    2023-08-24 12:57:18
  • pass-by-valueとthen-moveの構成は悪いイディオムなのか?

    質問 C++ではmoveセマンティクスがあるため、最近では void set_a(A a) { _a = std::move(a); } その理由は、もし a が rvalue である場合、コピーは消去され、移動は 1 回だけとなるからです。 しかし、もし a が lvalue の場合はどうなるのでしょうか?コピー構築と移動代入が行われるようです(A に適切な移動代入演算

    2023-08-24 11:19:40
  • なぜstd::strstreamは非推奨になったのですか?

    疑問点 最近、私は std::strstream は非推奨となり、代わりに std::stringstream . しばらく使っていなかったのですが、当時は必要なことをやってくれていたので、非推奨と聞いて驚きました。 私の質問は、なぜこのような決定がなされたのか、また、この決定によって std::stringstream にはない利点があるのでしょうか? std::strst

    2023-08-24 11:07:34
  • C言語での.hファイルの異常な使用について

    質問 フィルタリングに関する記事を読んでいて、いくつかの奇妙な使い方を発見しました。 .h ファイル - 係数の配列を埋めるためにそれを使用します。 #define N 100 // filter order float h[N] = { #include "f1.h" }; //insert coefficients of filter float x[N]; float y[N];

    2023-08-24 01:27:43
  • オブジェクトを再初期化するためのコンストラクタの呼び出し

    質問 コンストラクタを使用してクラスのオブジェクトを再初期化することは可能でしょうか? どのように解決するのですか? 一応。クラスAが与えられると A a; ... a = A(); 最後の文は初期化ではなく、代入ですが、おそらくあなたが望むことを行っています。

    2023-08-23 07:53:43
  • エスケープシーケンス'˶'ᵕ'˶'の使い方は?

    質問 以下のようなC言語のコードがあります。 #include<stdio.h> int main() { printf("Hey this is my first hello world \r"); return 0; } を使用しました。 \r というエスケープシーケンスを使って実験してみました。このコードを実行すると、次のような出力が得られます。

    2023-08-22 02:03:54
  • スタックレスコルーチンとスタックフルコルーチンはどう違うのですか?

    質問 背景は? 私は現在、多数 (数百から数千) のスレッドを持つアプリケーションを持っているので、これを尋ねています。これらのスレッドのほとんどは、キューに入れられるワーク アイテムを待っている間、非常に多くの時間アイドル状態です。ワークアイテムが利用可能になると、任意に複雑な既存のコードを呼び出して処理されます。オペレーティング システムの構成によっては、アプリケーションはユーザ

    2023-08-21 17:45:57
  • [解決済み] なぜこれがコンパイルされるのか理解できない

    質問 私は確かに何かを見逃しているが、私はこれがなぜコンパイルされるのか理解できない(g++ & clang++の両方と)。 struct A { }; struct B { }; int main() { A a(B); } まず最初に B は型です...値ではありません。このコードをどう解釈すればいいのでしょうか? どのように解決するのですか? という名

    2023-08-20 03:03:37
  • C++の名前空間に関するアドバイス

    質問 私はちょうど C++ の名前空間を独学しているところです (C# のバックグラウンドから来ました)。そして、C++ が他のほとんどの言語よりも優れているすべての事柄について、入れ子の名前空間はそれらのうちの 1 つではない、と本当に思い始めています! ネストされた名前空間を宣言するために、次のことをしなければならないと考えていて正しいでしょうか。 namespace tier1

    2023-08-19 19:35:15
  • unique_ptrを代入するべきか、リセットするべきか?

    質問 所有するオブジェクトの寿命がその所有者にリンクされているという一般的な状況を考えると、私は2つの方法のうちの1つをユニークポインタとして使用することができます . 割り当てることができます。 class owner { std::unique_ptr<someObject> owned; public: owner() {

    2023-08-19 13:23:48
  • Visual C++でインポートライブラリ(.lib)とDLLの両方をビルドするには?

    質問 DLL ファイルとインポートライブラリ (.lib) ファイルをビルドする単一の Visual Studio プロジェクトを持ちたいと考えています。 (インポートライブラリとは、それを使用する他のプロジェクトでその DLL ファイルをロードする世話をする静的リンクされたライブラリのことです)。 そこで、Visual Studio C++ 2008 Express Edition で

    2023-08-19 09:01:54
  • 1次元配列と2次元配列、どっちが速い?

    質問 2次元のフィールド(軸x、y)を表現する必要があるのですが、1次元配列と2次元配列のどちらを使うべきかという問題に直面しています。 1次元配列(y + x*n)のインデックスを再計算することは、2次元配列(x、y)を使用するよりも遅くなる可能性があることは想像できますが、1次元はCPUキャッシュになる可能性があることは想像できます...。 いくつかググってみましたが、静的配列に

    2023-08-18 17:10:47
  • [解決済み] dynamic_castを使おうとすると「source type is not polymorphic」と表示される。

    質問 struct A {}; struct B : A {}; int main() { A* a = new B(); B* b = dynamic_cast<B*>(a); } を与える。 cannot dynamic_cast 'a' (of type 'struct A*') to type 'struct B*' (source ty

    2023-08-18 12:07:22
  • CとC++ : 自動構造体の部分的な初期化

    質問 例えば somestruct が3つの整数メンバを持つ場合、私はずっとC(またはC++)の関数でこれをやってもいいと思っていました。 somestruct s = {123,}; 最初のメンバーは123に、最後の2つは0に初期化されます。 私はよく自動配列で同じことをして、次のように書きます。 int arr[100] = {0,}; と書いて、配列内のすべての整数が0に

    2023-08-17 16:34:57