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

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

6
C ++ 11右辺値と移動の意味論の混乱(returnステートメント)
私は右辺値参照を理解し、C ++ 11のセマンティクスを移動しようとしています。 これらの例の違いは何ですか?それらのうちどれがベクターコピーを行わないでしょうか? 最初の例 std::vector<int> return_vector(void) { std::vector<int> tmp {1,2,3,4,5}; return tmp; } std::vector<int> &&rval_ref = return_vector(); 2番目の例 std::vector<int>&& return_vector(void) { std::vector<int> tmp {1,2,3,4,5}; return std::move(tmp); } std::vector<int> &&rval_ref = return_vector(); 3番目の例 std::vector<int> return_vector(void) { std::vector<int> tmp {1,2,3,4,5}; return std::move(tmp); } std::vector<int> &&rval_ref = return_vector();

5
CMakeでのデバッグとリリース
GCCコンパイル済みプロジェクトでは、 各ターゲットタイプ(デバッグ/リリース)に対してCMakeを実行するにはどうすればよいですか? CMakeを使用してデバッグとリリースのC / C ++フラグを指定するにはどうすればよいですか? メインの実行可能ファイルがコンパイルされg++、1つのネストされたライブラリがコンパイルされることをどのように表現しgccますか?
434 c++  c  gcc  cmake 


12
floatとdoubleの違いは何ですか?
倍精度と単精度の違いについて読みました。しかし、ほとんどの場合で、floatかつdouble交換可能であると思われる、すなわち、1つまたは他のを使用すると、結果に影響を与えていないようです。これは本当ですか?floatとdoubleはいつ交換可能ですか?それらの違いは何ですか?

6
コンパイル/リンクプロセスはどのように機能しますか?
コンパイルとリンクのプロセスはどのように機能しますか? (注:これはStack OverflowのC ++ FAQへのエントリになることを目的としています。このフォームでFAQを提供するという考えを批評したい場合は、これをすべて開始したメタへの投稿がそのための場所になります。回答その質問はC ++チャットルームで監視され、FAQのアイデアが最初から始まっているため、アイデアを思いついた人があなたの答えを読む可能性が非常に高くなります。

10
C ++複数行文字列リテラル
PerlのようなC ++で複数行のプレーンテキストの定数リテラルを作成する方法はありますか?たぶん#include、ファイルを解析する際の解析トリックですか?私はそれを考えることができませんが、男の子、それはいいでしょう。C ++ 0xになることは知っています。



9
先頭に付けられた二重コロン「::」の意味は何ですか?
私は変更する必要があるクラスのコードのこの行を見つけました: ::Configuration * tmpCo = m_configurationDB;//pointer to current db そして、クラス名の前に付けられた二重コロンが正確に何を意味するのかわかりません。それがなければ私は読むでしょう:tmpCoクラスのオブジェクトへのポインターとしての宣言Configuration... 私も見つけました: typedef ::config::set ConfigSet;

23
GCCで「非推奨の文字列定数から「char *」への変換」警告を取り除く方法は?
だから私は非常に大きなコードベースに取り組んでいて、最近この警告をトリガーするgcc 4.3にアップグレードしました: 警告:文字列定数から 'char *'への非推奨の変換 明らかに、これを修正する正しい方法は、次のようなすべての宣言を見つけることです char *s = "constant string"; または次のような関数呼び出し: void foo(char *s); foo("constant string"); そしてそれらをconst charポインタにします。ただし、これは少なくとも564個のファイルを操作することを意味し、現時点で実行したい作業ではありません。現在の問題は、私がで実行している-werrorため、これらの警告を抑制する方法が必要です。どうやってやるの?
409 c++  string  gcc 

21
C / C ++に標準の符号関数(signum、sgn)はありますか?
負の数に対して-1を返し、正の数に対して+1を返す関数が必要です。 http://en.wikipedia.org/wiki/Sign_function 自分で作成するのは簡単ですが、標準ライブラリのどこかにあるはずです。 編集:具体的には、フロートで機能する関数を探していました。
409 c++  c  math 



20
C ++は状況依存ですか、状況依存ですか?
C ++は状況依存言語であるという主張をよく耳にします。次の例を見てください。 a b(c); これは変数定義ですか、関数宣言ですか?それは記号の意味に依存しcます。場合cである変数は、その後、a b(c);名前の変数を定義bタイプのをa。で直接初期化されcます。しかし、cがタイプの場合、を取り、を返すa b(c);という名前の関数を宣言します。bca 文脈自由言語の定義を調べると、基本的に、すべての文法規則の左側には、1つの非終端記号だけが含まれている必要があることがわかります。一方、状況依存の文法では、左側に終端記号と非終端記号の任意の文字列を使用できます。 「C ++プログラミング言語」の付録Aを閲覧したところ、左側に単一の非終端記号以外に何もない単一の文法規則が見つかりませんでした。これは、C ++がコンテキストフリーであることを意味します。(もちろん、すべての文脈自由言語は、文脈自由言語が文脈依存言語のサブセットを形成するという意味で文脈依存でもありますが、それが目的ではありません。) では、C ++はコンテキストフリーですか、それともコンテキスト依存ですか?


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