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

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


8
VimでC ++コードをデバッグしますか?どうやって?
問題は、Vimを使用してC ++アプリケーションを開発するすべての人にあります。 私の人生には「Vimが嫌いだ!!!」と表現できる期間がありました。 ただし、主にMicrosoft開発IDEで育ったので、私はそれらに慣れてきましたF5- F11コードのデバッグ時のショートカット、ウィンドウの監視、コールスタック、およびメインコード-GDBコマンドを入力する必要なくすべて表示されます。 だから、ここに質問があります: デバッグにもVimを使用していますか?または、この目的のためにIDEに切り替えますか?どれ? Vimを使用してコードをデバッグする場合:エディターにブレークポイントを設定するプラグインはありますか?現在デバッグしている行を強調表示し、ステップ、ステップイン、ステップアウト中に自動ナビゲーションしますか? コマンドラインとしてGDBを使用していると言わないでください。デバッグされている1行だけが表示されます。
152 c++  debugging  vim  gdb 

30
予測可能なランダムジェネレーターの必要性
私はウェブゲームの開発者で、乱数に問題がありました。プレーヤーが剣でクリティカルヒットを得る確率が20%であるとしましょう。つまり、5ヒットのうち1ヒットが重要です。問題は、実際の結果が非常に悪いことです。5ヒットで3クリティカル、15ヒットでまったくクリティカルにならない場合があります。戦いはかなり短い(3-10ヒット)ので、良いランダム分布を得ることが重要です。 現在はPHPを使用していますがmt_rand()、コードをC ++に移動しているだけなので、ゲームの新しいエンジンでこの問題を解決したいと考えています。 解が均一な乱数発生器であるかどうか、または適切な分布を強制するために以前のランダムな状態を覚えているかもしれません。
151 c++  algorithm  random 

11
Javaの最終とC ++のconst
チュートリアルC ++プログラマのためのJava(ハイライトは自分である)ことを言います: キーワードfinalは 、C ++のconst とほぼ同等です。 この文脈で「大まかに」はどういう意味ですか?彼らはまったく同じではありませんか? もしあれば、違いは何ですか?
151 java  c++  const  final 

12
C / C ++ソースコードを一連のコーディング標準と照合する無料のツールですか?[閉まっている]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善したいですか?Stack Overflowのトピックとなるように質問を更新します。 6年前休業。 この質問を改善する Java(Checkstyle、JCSC)用のそのようなツールを見つけるのは非常に簡単に見えますが、C / C ++用のツールを見つけることができないようです。私は糸くずのような静的コードアナライザーを探していません。変数の名前付け、大文字の使用、間隔、識別、ブラケットの配置などのコーディング標準に対してチェックしたいだけです。
151 c++  c  coding-style 

5
JavaのtoStringに相当するC ++?
ストリームに書き込まれるもの、つまりcoutカスタムクラスのオブジェクトを制御する必要があります。C ++では可能ですか?JavaではtoString()、同様の目的でメソッドをオーバーライドできます。
151 c++ 

2
decltype(auto)の用途は何ですか?
OverаэтотвопросестьответынаStack Overflowнарусском:Конструкцияdecltype(auto) c ++ 14では、decltype(auto)イディオムが導入されています。 通常、その使用は、auto宣言でdecltype指定された式のルールを使用できるようにすることです。 イディオムの "良い"使用法の例を検索すると、(Scott Meyersによる)次のようなもの、つまり関数の戻り値の型の推定についてしか考えることができません。 template<typename ContainerType, typename IndexType> // C++14 decltype(auto) grab(ContainerType&& container, IndexType&& index) { authenticateUser(); return std::forward<ContainerType>(container)[std::forward<IndexType>(index)]; } この新しい言語機能が役立つ他の例はありますか?

5
ベクトルが割り当てられると、それらはヒープまたはスタック上のメモリを使用しますか?
次の説明はすべて正しいですか? 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>; //allocates vect on heap and each of the Type will be allocated on stack vector<Type*> vect; //vect will be on stack and Type* will be …
151 c++  stl  vector  stack  heap 

4
CMakeでは、コンパイラがClangかどうかをどのようにテストできますか?
一連のクロスプラットフォームCMakeビルドスクリプトがあり、Visual C ++およびGCCでのビルドをサポートしています。 Clangを試していますが、CMakeスクリプトでコンパイラがClangであるかどうかをテストする方法がわかりません。 コンパイラがClangかどうかを確認するには何をテストすればよいですか?現在Visual C ++とGCC を使用MSVCしCMAKE_COMPILER_IS_GNU<LANG>てテストしています。
151 c++  c  cmake  clang 


4
テンプレートのデフォルト引数
次のことを許可されている場合: template <typename T = int> class Foo{ }; なぜメインで以下を行うことが許可されていないのですか? Foo me; ただし、以下を指定する必要があります。 Foo<int> me; C ++ 11はデフォルトのテンプレート引数を導入し、現在、それらは私の完全な理解にとらわれています。
151 c++  templates 

4
vector :: resize()とvector :: reserve()の間の選択
vectorメンバー変数にメモリを事前に割り当てています。以下のコードは最小限の部分です class A { vector<string> t_Names; public: A () : t_Names(1000) {} }; ある時点で、t_Names.size()がに等しい場合1000。サイズを大きくしていきたいと思います100。次に、それがに達した場合1100、再び増加100します。 私の質問はの間で選択するのか、あるvector::resize()とvector::reserve()。この種のシナリオでより良い選択はありますか? 編集:私はある種の正確な見積もりを持っていますt_Names。と推定700し800ます。ただし、特定の(まれな)状況では、それよりも大きくなる可能性があり1000ます。
151 c++  vector 

5
クラス内で列挙型を宣言する
次のコードスニペットでは、Color列挙型Carのスコープを制限し、グローバル名前空間を「汚染」しないようにするために、列挙型がクラス内で宣言されています。 class Car { public: enum Color { RED, BLUE, WHITE }; void SetColor( Car::Color color ) { _color = color; } Car::Color GetColor() const { return _color; } private: Car::Color _color; }; (1)これはColor列挙型の範囲を制限する良い方法ですか?または、Carクラス外で宣言する必要がありますが、独自の名前空間または構造内で宣言する必要がありますか?私は本日この記事に出くわしました。後者は、後者を支持し、列挙に関するいくつかの良い点を議論しています:http : //gamesfromwithin.com/stupid-c-tr​​icks-2-better-enums。 (2)この例では、クラス内で作業する場合、列挙型をとしてコーディングするのが最善ですかCar::Color、それともColor十分ですか?(Colorグローバル名前空間で別の列挙型が宣言されている場合に備えて、前者のほうが良いと思います。少なくとも、参照している列挙型については明示的です。)
150 c++  class  enums  namespaces  scope 

5
g ++-再注文のポイントは何ですか?
g ++ -Wallオプションには-Wreorderが含まれます。このオプションの機能を以下に説明します。なぜ誰かが気にするのか私には明らかではありません(特に-Wallでデフォルトでこれをオンにするのに十分です)。 -再注文(C ++のみ) コードで指定されたメンバー初期化子の順序が異なる場合に警告する それらが実行されなければならない順序と一致します。例えば: struct A { int i; int j; A():j(0)、i(1){} }; コンパイラーは、iおよびjのメンバー初期化子を次のように再配置します。 メンバーの宣言順序を一致させ、それに警告を発します 効果。この警告は-Wallによって有効になります。

29
C ++クラスでメンバー変数にプレフィックスを使用する理由
多くのC ++コードは、メンバー変数をマークアップするために構文規則を使用しています。一般的な例は次のとおりです パブリックメンバーのm_ memberName(パブリックメンバーが使用される場合) _ プライベートメンバーまたはすべてのメンバーのmemberName 他のメンバーは、メンバー変数が使用されるときはいつでもthis-> メンバーの使用を強制しようとします。 私の経験では、大規模なコードベースのほとんどは、このようなルールを一貫して適用することに失敗しています。 他の言語では、これらの規則はそれほど広く普及していません。JavaまたはC#コードでたまにしか見ません。RubyやPythonのコードでは見たことがないと思います。したがって、より最近の言語では、メンバー変数に特別なマークアップを使用しない傾向があるようです。 この規則は今日でもC ++で有用ですか、それとも単なる時代錯誤なのでしょうか。特に、ライブラリ間で非常に一貫して使用されていないため。他の言語は、メンバーのプレフィックスなしで実行できることを示していませんか?

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