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

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

5
C ++逆コンパイラはありますか?[閉まっている]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 3年前休業。 この質問を改善する C ++ソースコードを失ったプログラムがあります。そこに良いC ++逆コンパイラがありますか? 私はすでにブーメランに遭遇しました。

8
2次元std :: vectorの初期化
だから、私は以下を持っています: std::vector< std::vector <int> > fog; そして私はそれを非常に単純に初期化しています: for(int i=0; i<A_NUMBER; i++) { std::vector <int> fogRow; for(int j=0; j<OTHER_NUMBER; j++) { fogRow.push_back( 0 ); } fog.push_back(fogRow); } そして、それは非常に間違っていると感じています...このようなベクトルを初期化する別の方法はありますか?
116 c++  vector 

3
C ++ローカル変数への参照を返す
次のコード(func1())は、iを返す必要がある場合、正しいですか?ローカル変数への参照を返すときに問題があることをどこかで読んだことを覚えています。func2()とどう違うのですか? int& func1() { int i; i = 1; return i; } int* func2() { int* p; p = new int; *p = 1; return p; }
116 c++ 

5
クラスの非定数静的メンバーまたは静的配列を初期化できないのはなぜですか?
クラスの非const staticメンバーまたはstatic配列を初期化できないのはなぜですか? class A { static const int a = 3; static int b = 3; static const int c[2] = { 1, 2 }; static int d[2] = { 1, 2 }; }; int main() { A a; return 0; } コンパイラは次のエラーを発行します。 g++ main.cpp main.cpp:4:17: error: ISO C++ forbids …
116 c++  static  const 

25
ブーストの最もよく使われる部品[終了]
現在のところ、この質問はQ&A形式には適していません。事実、参考文献、専門知識によって回答が裏付けられることを期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 発見したとき、boost::lexical_cast「なぜこれをもっと早く知らなかったのだろう」と思いました。-私は次のようなコードを書かなければならないのが嫌だった stringstream ss; ss << anIntVal; mystring = ss.str(); 今私は書く mystring = boost::lexical_cast<string>(anIntVal); 昨日、stackoverflowでブーストスプリットに遭遇しました(コードを書く手間を省く別の宝石)。 string stringtobesplit = "AA/BB-CC") vector<string> tokens; boost::split(tokens, stringtobesplit, boost::is_any_of("/-")); // tokens now holds 3 items: AA BB CC 定期的に使用できる他の機能を探すために、Boostのドキュメントを調べ始めますが、見落としが非常に簡単になると思います。 どのブースト機能を最もよく使用していますか?
115 c++  boost 

4
std :: swap()をオーバーロードする方法
std::swap()並べ替えや割り当ての際に、多くのstdコンテナ(std::listおよびなどstd::vector)で使用されます。 ただし、のstd実装swap()は非常に一般化されており、カスタムタイプに対しては非効率的です。 したがってstd::swap()、カスタムタイプ固有の実装でオーバーロードすることで効率を上げることができます。しかし、どのように実装すれば、標準コンテナで使用できますか?


4
C ++では、throwが式の場合、その型は何ですか?
私は簡単な進路の1つでこれを拾い、redditしました: http://www.smallshire.org.uk/sufficientlysmall/2009/07/31/in-c-throw-is-an-expression/ 基本的に、著者はC ++では次のように指摘しています。 throw "error" 式です。これは実際には、C ++標準では、本文と文法の両方でかなり明確に記述されています。しかし、(少なくとも私にとって)明確ではないのは、表現のタイプは何ですか?「void」と思ったのですが、g ++ 4.4.0とコモーで少し実験すると、次のコードが生成されました。 void f() { } struct S {}; int main() { int x = 1; const char * p1 = x == 1 ? "foo" : throw S(); // 1 const char * p2 = x == 1 ? "foo" : …
115 c++  throw 


17
C ++-std :: shared_ptrまたはboost :: shared_ptrに参照を渡す
で動作する必要がある関数がある場合shared_ptr、(shared_ptrオブジェクトのコピーを避けるために)関数への参照を渡す方が効率的ではないでしょうか?考えられる悪い副作用は何ですか?私は次の2つのケースを想定しています。 1)関数内では、次のように引数のコピーが作成されます ClassA::take_copy_of_sp(boost::shared_ptr<foo> &sp) { ... m_sp_member=sp; //This will copy the object, incrementing refcount ... } 2)関数内では、引数は次のようにのみ使用されます Class::only_work_with_sp(boost::shared_ptr<foo> &sp) //Again, no copy here { ... sp->do_something(); ... } どちらの場合も、参照ではなくboost::shared_ptr<foo>by値を渡す正当な理由がわかりません。値による受け渡しは、コピーのために「一時的に」参照カウントをインクリメントし、関数スコープを終了するときにそれをデクリメントします。私は何かを見落としているか? 明確にするために、いくつかの回答を読んだ後、私は時期尚早の最適化の懸念に完全に同意します。私の質問は、純粋に技術的なコードの観点からのものでした。


4
プリプロセッサマクロからプラットフォーム/コンパイラを識別する方法
私はLinux、Windows、Mac OSでコンパイルできるクロスプラットフォームコードを書いています。Windowsでは、ビジュアルスタジオとmingwをサポートする必要があります。 プラットフォーム固有のコードがいくつかありますが、これを#ifdef .. #endif環境に配置する必要があります。たとえば、ここではwin32固有のコードを配置しました。 #ifdef WIN32 #include <windows.h> #endif しかし、どうすればLinuxとMac OSを認識できますか?使用すべき定義名(など)は何ですか?


6
プログラムのC / C ++最大スタックサイズ
100 X 100アレイでDFSを実行したい。(たとえば、配列の要素はグラフのノードを表します)したがって、最悪の場合を想定すると、再帰関数呼び出しの深さは最大10000になり、各呼び出しは最大で20バイトを使用します。それで、スタックオーバーフローの可能性があるのは実行可能な手段ですか? C / C ++のスタックの最大サイズはいくつですか? 両方のgccを指定してください 1)Windows上のcygwin 2)Unix 一般的な制限は何ですか?
115 c++  c  stack 

12
手書きのGUIとQt DesignerのGUIの比較[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 2年前休業。 この質問を改善する 私はこれらの休暇をQtアプリケーションの作成を学ぶために費やしています。ほんの数時間前にQt Designerについて読んでいたので、疑問に思いました。Qtで実際のアプリケーションを書いている人は、GUIを設計するために何を使用していますか?実際、GUIは一般的にどのように設計されていますか? たとえば、複雑なGUIの場合はデザイナーが理にかなっているかもしれませんが、Qtデザイナーを使用するよりも、手作業でコードを書く方が概念的に単純であることがわかりました。大規模なGUIはDesignerを使用して可能になるかもしれませんが、時間の経過とともに複雑さが増すにつれて管理が非常に難しくなる可能性があります(これは私の意見です)。AmaroKのソースコードをダウンロードして、彼らがやっていたことをのぞいてみたところ、addWidget()や友人への多くの呼び出しが見つかりましたが、Designerによって作成されたXMLファイルはありませんでした(脇:AmaroKは私のお気に入りのアプリケーションである必要があります)任意のプラットフォーム)。 では、GUIを作成する「正しい」方法は何でしょうか。デザイナーかコードか?このディスカッションでは、次のタイプのGUIについて考えてみましょう。 入力を取り、結果を表示して終了するだけの簡単なダイアログ。YouTubeのURLを受け取り、ビデオをユーザーのハードディスクにダウンロードするアプリケーションを想定してみましょう。初心者が最初に使用する可能性が高い種類のアプリケーション。 中級レベルのGUI、たとえば、いくつかのツールバー/メニュー項目を備えた付箋エディタ。たとえば、xPadを見てみましょう(http://getxpad.com/)。ほとんどのアプリケーションは「ユーティリティ」のカテゴリに分類されます。 AmaroKやOpenOfficeなどの非常に複雑なGUI。あなたは彼らがあなたの目を出血させるので、あなたがそれらを見るとき、それらを知っています。

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