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

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


4
C ++でのコンマ演算子の動作が異なりますか?
これ(コンマ演算子に注意してください): #include <iostream> int main() { int x; x = 2, 3; std::cout << x << "\n"; return 0; } 出力2。 ただし、returnコンマ演算子とともに使用する場合は、次のようになります。 #include <iostream> int f() { return 2, 3; } int main() { int x; x = f(); std::cout << x << "\n"; return 0; } 出力3。 コンマ演算子の動作が異なるのはなぜreturnですか?

12
デストラクタを手動で呼び出すことは、常に悪い設計の兆候ですか?
私は考えていました:彼らはあなたが手動でデストラクタを呼んでいるなら-あなたは何か間違ったことをしていると言います。しかし、それは常に当てはまりますか?反例はありますか?手動で呼び出す必要がある状況、またはそれを回避することが難しい/不可能/非現実的な状況ですか?

7
可変数の引数をprintf / sprintfに渡す方法
一部のテキストをフォーマットする「エラー」関数を保持するクラスがあります。可変数の引数を受け入れてから、printfを使用してそれらをフォーマットしたいと思います。 例: class MyClass { public: void Error(const char* format, ...); }; Errorメソッドはパラメーターを受け取り、printf / sprintfを呼び出してフォーマットしてから、何かを実行する必要があります。すべてのフォーマットを自分で書きたくないので、既存のフォーマットの使用方法を試してみるのは理にかなっています。

4
Boostライブラリプログラムオプションを使用した必須およびオプションの引数
Boost Program OptionsLibraryを使用してコマンドライン引数を解析しています。 次の要件があります。 「ヘルプ」が提供されると、他のすべてのオプションはオプションになります。 「ヘルプ」が提供されない場合、他のすべてのオプションが必要です。 どうすればこれに対処できますか?これを処理する私のコードは次のとおりですが、非常に冗長であることがわかりました。簡単に実行できるはずですよね? #include <boost/program_options.hpp> #include <iostream> #include <sstream> namespace po = boost::program_options; bool process_command_line(int argc, char** argv, std::string& host, std::string& port, std::string& configDir) { int iport; try { po::options_description desc("Program Usage", 1024, 512); desc.add_options() ("help", "produce help message") ("host,h", po::value<std::string>(&host), "set the host server") ("port,p", …


1
STLキャラクター特性のポイントは何ですか?
SGI STLリファレンスのコピーに、キャラクター特性に関するページがありますが、これらがどのように使用されているかわかりません。それらはstring.h関数を置き換えますか?それらはによって使用されていないようですstd::string。たとえば、length()onのメソッドstd::stringはCharacterTraitslength()メソッドを使用していません。キャラクター特性が存在するのはなぜですか?実際に使用されたことはありますか?


4
mapとunordered_mapのどちらを選択するのですか?
文字列をキーとしてデータをマッピングしたいとします。どのコンテナを選択するmap必要がありunordered_mapますか?unordered_mapより多くのメモリを消費するので、メモリは問題ではなく、問題は速度であると仮定しましょう。 unordered_map一般に、O(n)の最悪の場合でO(1)の平均計算量を与えるはずです。どのような場合にO(n)に到達しますか?いつmapよりも時間効率が良くなりunordered_mapますか?nが小さいときに起こりますか? unordered_mapデフォルトのhaserVsでSTLを使用すると仮定します。地図。文字列がキーです。 毎回個々の要素にアクセスするのではなく、要素を反復処理する場合は、どちらを選択する必要がありmapますか?

4
マップ用に独自のコンパレータを作成するにはどうすればよいですか?
typedef map<string, string> myMap; に新しいペアを挿入するmyMapと、キーstringを使用して独自の文字列コンパレータで比較します。そのコンパレータをオーバーライドすることは可能ですか?たとえば、キーstringをアルファベットではなく長さで比較したいと思います。または、マップを並べ替える他の方法はありますか?
83 c++  stl  stdmap 

9
インライン関数の静的変数
ヘッダーファイルで宣言および定義されている関数があります。これはそれ自体が問題です。その関数がインライン化されていない場合、そのヘッダーを使用するすべての変換ユニットは関数のコピーを取得し、それらがリンクされている場合は複製されます。関数をインライン化することで「修正」しましたが、「inline」キーワードを指定してもコンパイラーはインライン化を保証しないため、これは脆弱な解決策ではないかと思います。これが当てはまらない場合は、訂正してください。 とにかく、本当の問題は、この関数内の静的変数はどうなるのかということです。最終的に何部になりますか?

10
C ++の#regionに相当
カスタムコードの折りたたみ可能なビットを挿入してコードを少し読みやすくするために、C ++の#regionに相当するC ++は何ですか?
83 c#  c++ 


7
いつ、どのように例外処理を使用する必要がありますか?
例外処理について読んでいます。例外処理とは何かについていくつかの情報を入手しましたが、いくつか質問があります。 いつ例外をスローしますか? 例外をスローする代わりに、戻り値を使用してエラーを示すことはできますか? try-catchブロックですべての関数を保護すると、パフォーマンスが低下しませんか? いつ例外処理を使用しますか? そのプロジェクトのすべての関数にtry-catchブロックが含まれているプロジェクトを見ました(つまり、関数全体のコードがtry-catchブロックで囲まれています)。これは良い習慣ですか? try-catchと__try__exceptの違いは何ですか?

4
共有ライブラリ内の未解決のシンボルを簡単にチェックしますか?
私はかなり大きなC ++共有オブジェクトライブラリを書いていますが、デバッグを面倒にする小さな問題に遭遇しました。 ヘッダーファイルで関数/メソッドを定義し、そのスタブを作成するのを忘れた場合(開発中)、実行可能ファイルではなく共有オブジェクトライブラリとしてビルドしているため、コンパイル時にエラーが表示されず、その機能を実装するのを忘れました。私が何かが間違っていることを見つける唯一の方法は、実行時に、このライブラリに対してリンクしているアプリケーションが「未定義のシンボル」エラーでフォールオーバーするときです。 コンパイル時に必要なすべてのシンボルがあるかどうかを確認する簡単な方法を探しています。おそらく、Makefileに追加できるものです。 私が思いついた解決策の1つは、コンパイルされたライブラリを実行してnm -C -U、すべての未定義の参照のデマングルされたリストを取得することです。問題は、GLibCなどの他のライブラリにあるすべての参照のリストも表示されることです。もちろん、最終的なアプリケーションがまとめられると、このライブラリと一緒にリンクされます。の出力を使用することも可能であろうnmとするgrepすべての私のヘッダファイルを通って、対応する名前のいずれかどうかを確認..しかし、これは非常識と思われます。確かにこれは珍しい問題ではなく、それを解決するためのより良い方法がありますか?

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