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

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

5
C ++マップアクセス破棄修飾子(const)
次のコードはconst、operator[]メソッドとしてマップを渡すと修飾子が破棄されることを示しています。 #include <iostream> #include <map> #include <string> using namespace std; class MapWrapper { public: const int &get_value(const int &key) const { return _map[key]; } private: map<int, int> _map; }; int main() { MapWrapper mw; cout << mw.get_value(42) << endl; return 0; } これは、マップアクセスで発生する可能性がある割り当てのためですか?マップアクセスを持つ関数をconstとして宣言することはできませんか? MapWrapper.cpp:10: error: passing ‘const std::map<int, int, std::less<int>, …
113 c++  stl  const  maps 

8
C ++でCヘッダーを使用する場合、std ::またはグローバル名前空間の関数を使用する必要がありますか?
Cは、正確ではありませんが、C ++のサブセットです。そのため、名前を少し(stdio.hto cstdio、stdlib.hto cstdlib)変更することで、C ++でほとんどのC関数/ヘッダーを使用できます。 私の質問は、実際には一種の意味論です。C ++コード(GCCコンパイラの最新バージョンを使用)では、呼び出すことができますがprintf("Hello world!");、std::printf("Hello world!");まったく同じように機能します。そして、私が使用しているリファレンスでは、としても表示されstd::printf("Hello world!");ます。 私の質問は、std::printf();C ++で使用する方が良いですか?違いはありますか?
113 c++  language-lawyer  std 

10
C ++コードからUMLを生成していますか?[閉まっている]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 2年前休業。 この質問を改善する プロジェクト内のC ++ファイルを解析して、そこからUMLを生成できるツールはありますか?
113 c++  uml 

5
新しいstd :: exceptionを投げるvs std :: exceptionを投げる
私が偶然見つけたいくつかのコードを見ている間: throw /*-->*/new std::exception ("//... そして、私はあなたが必要としない/あなたがnewここで使うべきではないといつも思っていました。 正しい方法は何ですか、どちらも問題ありませんが、違いはありますか? ところで、PowerShellブーストライブラリで「把握」しているときに私が見ることができるものからは、決して使用しませんthrow new。 PSは、を使用するCLIコードもいくつか見つけましたthrow gcnew。それは大丈夫ですか?
113 c++  exception 

14
挿入の順序を追跡するstd :: map?
現在std::map<std::string,int>、一意の文字列識別子に整数値を格納するがあり、文字列を検索します。挿入順序を追跡しないことを除いて、ほとんどの場合私がやりたいことを行います。したがって、マップを反復して値を出力すると、文字列に従ってソートされます。しかし、私はそれらを(最初の)挿入の順序に従ってソートしたいです。 vector<pair<string,int>>代わりにaの使用を考えましたが、文字列を調べて整数値を約10,000,000回インクリメントする必要があるため、a std::vectorが大幅に遅くなるかどうかわかりません。 使用する方法はありますstd::mapか、またはstd私のニーズにより適した別のコンテナはありますか? [私はGCC 3.4を使用していて、私のにはおそらく50組以下の値のペアしかありませんstd::map。 ありがとう。

6
Javaで自動型推論はありますか?
autoC ++のようなJavaの変数型はありますか? 例: for ( auto var : object_array) std::cout << var << std::endl; for( auto var : object_array) var.do_something_that_only_this_particular_obj_can_do(); Javaには強化されたforループがあることは知っていますが、自動はありますか?そうでない場合、これを行うためのハックはありますか?C ++ 11の新機能について言及しています
113 java  c++  auto 




8
C ++テンプレートメタプログラミングのベストイントロダクション?[閉まっている]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 3年前休業。 この質問を改善する 静的メタプログラミング(別名「テンプレートメタプログラミング」)は、コンパイル時にプログラムを実行できる優れたC ++テクニックです。この標準的なメタプログラミングの例を読むと、すぐに電球が消えました。 #include <iostream> using namespace std; template< int n > struct factorial { enum { ret = factorial< n - 1 >::ret * n }; }; template<> struct factorial< 0 > { enum { ret = 1 }; }; int main() { cout << …

4
coutは同期/スレッドセーフですか?
一般に、ストリームが同期されていないと想定しています。適切なロックを行うかどうかはユーザー次第です。しかし、cout標準ライブラリで特別な扱いを受けるようなことはありますか? つまり、複数のスレッドが書き込みを行っている場合cout、coutオブジェクトを破壊できますか?同期しても、ランダムにインターリーブされた出力が得られることは理解していますが、インターリーブは保証されています。つまりcout、複数のスレッドから使用しても安全ですか? このベンダーに依存していますか?gccは何をしますか? 重要:ある種の証明が必要なので、「はい」と答えた場合は、回答の参照を提供してください。 私の懸念は、基礎となるシステムコールについても関係ありませんが、それらは問題ありませんが、ストリームによってバッファ層が追加されます。
112 c++  gcc  c++11 

20
std :: tupleの要素をどのように反復できますか?
(C ++ 11を使用して)タプルをどのように反復できますか?私は以下を試しました: for(int i=0; i<std::tuple_size<T...>::value; ++i) std::get<i>(my_tuple).do_sth(); しかし、これは機能しません: エラー1:申し訳ありませんが、実装されていません:「リスナー...」を固定長の引数リストに展開できません。 エラー2:定数式では使用できません。 では、タプルの要素を正しく反復するにはどうすればよいですか?


9
なぜ未使用の戻り値をvoidにキャストするのですか?
int fn(); void whatever() { (void) fn(); } 未使用の戻り値をvoidにキャストする理由はありますか、それとも完全に時間の無駄だと思いますか? ファローアップ: まあそれはかなり包括的なようです。自己文書化コードはコメントよりも優れているため、未使用の戻り値にコメントを付けるよりも優れていると思います。個人的には、不要なノイズのため、これらの警告をオフにします。 バグが原因で脱出したら言葉を食べます...
112 c++  c  void 

6
コマンドラインからVisual Studioプロジェクトをコンパイルするにはどうすればよいですか?
Monotone、CMake、Visual Studio Express 2008、およびカスタムテストを使用している大規模なC ++ソリューションのチェックアウト、ビルド、配布、テスト、およびコミットサイクルをスクリプト化しています。 他のすべての部分は非常に単純明快に見えますが、GUIを取得せずにVisual Studioソリューションをコンパイルする方法はわかりません。 スクリプトはPythonで記述されていますが、os.systemを呼び出すだけでよい答えが返されます。

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