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

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

12
ループのどの時点で整数オーバーフローは未定義の動作になりますか?
これは、ここに投稿できないはるかに複雑なコードを含む私の質問を説明するための例です。 #include <stdio.h> int main() { int a = 0; for (int i = 0; i < 3; i++) { printf("Hello\n"); a = a + 1000000000; } } このプログラムにはa、3番目のループでオーバーフローするため、プラットフォームでの未定義の動作が含まれています。 それにより、プログラム全体の動作が未定義になりますか、それともオーバーフローが実際に発生したですか?コンパイラは、潜在的にそれが出て仕事ができるa だろう、それは未定義ループ全体を宣言し、彼らはすべてのオーバーフローが起こる前にもかかわらず、printfを実行する気にすることはできませんので、オーバーフロー? (CとC ++のタグは異なりますが、両方の言語が異なる場合は回答に興味があるためです。)


5
「int * ptr = int()」値の初期化はどのように違法ではありませんか?
次のコード(ここから取得): int* ptr = int(); Visual C ++でコンパイルし、ポインタを値初期化します。 そんなことがあるものか?I平均int()利回り型のオブジェクトintと私は割り当てることができませんintポインタに。 上記のコードはどのように違法ではありませんか?

6
C ++のmain()内で何も宣言せずに、コンパイル後にアプリケーションが機能するようにするにはどうすればよいですか?
インタビューで、私は次のような質問に直面しました。 あなたの友人はあなたにフィボナッチ数をコンソールに印刷する単一のソースコードファイルを与えました。main()ブロックは空であり、その中にステートメントがないことに注意してください。 これがどのように可能であるかを説明してください(ヒント:グローバルインスタンス!) 私は本当にこれについて知りたいです、どうしてそのようなことが可能であるのか!
86 c++ 

6
C ++で参照が「const」ではないのはなぜですか?
「const変数」は、一度割り当てられると、次のように変数を変更できないことを示しています。 int const i = 1; i = 2; 上記のプログラムはコンパイルに失敗します。gccはエラーでプロンプトを出します: assignment of read-only variable 'i' 問題ありません、私はそれを理解できますが、次の例は私の理解を超えています: #include<iostream> using namespace std; int main() { boolalpha(cout); int const i = 1; cout << is_const<decltype(i)>::value << endl; int const &ri = i; cout << is_const<decltype(ri)>::value << endl; return 0; } 出力します true false …

2
armadillosolve()スレッドは安全ですか?
私のコードには、線形システムを構築して過剰決定し、それを解こうとするループがあります。 #pragma omp parallel for for (int i = 0; i < n[0]+1; i++) { for (int j = 0; j < n[1]+1; j++) { for (int k = 0; k < n[2]+1; k++) { arma::mat A(max_points, 2); arma::mat y(max_points, 1); // initialize A and y arma::vec solution = solve(A,y); …


4
constメンバー関数が静的データメンバーを変更できるのはなぜですか?
次のC++プログラムでは、関数から静的データメンバーを変更するconstことは正常に機能しています。 class A { public: static int a; // static data member void set() const { a = 10; } }; ただし、関数から非静的データメンバーを変更するconstことはできません。 class A { public: int a; // non-static data member void set() const { a = 10; } }; constメンバー関数がstaticデータメンバーを変更できるのはなぜですか?
86 c++  function  c++11  static  const 


4
XcodeでC ++ 11を使用できますか?
autoいくつかのクロスプラットフォームプロジェクト(Windows + Mac)でいくつかのC ++ 11機能(たとえば)の使用を検討しています。Windowsでは、VisualStudioはコードベースの一部を単純化できるようになる次のC ++ 11標準の一部をサポートしているので、当然、これらの機能の使用を開始することに興味があります。 しかし、私が知る限り、現在のXCodeバージョン(3.2.4 + GCC 4.2)はC ++ 11機能をまったくサポートしていません。どういうわけかGCCバージョンまたはCLangバージョンをアップグレードできますか?それとも、私はただ舌を噛んで、Appleが将来いつか新しいバージョンをパッケージ化するのを待つべきですか?
86 c++  xcode  gcc  c++11  clang 



10
プリティプリントstd :: tuple
これは、プリティプリントSTLコンテナに関する以前の質問のフォローアップであり、非常にエレガントで完全に一般的なソリューションを開発することができました。 この次のステップではstd::tuple<Args...>、可変個引数テンプレートを使用して、のプリティプリントを含めたいと思います(したがって、これは厳密にC ++ 11です)。のためにstd::pair<S,T>、私は単に言う std::ostream & operator<<(std::ostream & o, const std::pair<S,T> & p) { return o << "(" << p.first << ", " << p.second << ")"; } タプルを印刷するための類似の構造は何ですか? テンプレート引数スタックをアンパックし、インデックスを渡し、SFINAEを使用して最後の要素に到達したことを検出しようとしましたが、成功しませんでした。壊れたコードであなたに負担をかけないでください。問題の説明は、うまくいけば十分に簡単です。基本的に、次の動作が必要です。 auto a = std::make_tuple(5, "Hello", -0.1); std::cout << a << std::endl; // prints: (5, "Hello", -0.1) 前の質問と同じレベルの一般性(char / wchar_t、ペア区切り文字)を含めることのボーナスポイント!

2
C ++のwchar_tとwstringsの「間違った」とは何ですか?ワイド文字に代わるものは何ですか?
C ++コミュニティ(特にfreenodeの## c ++)の多くの人々が、wstringsとの使用、およびWindowsAPIwchar_tでのそれらの使用に憤慨しているのを見てきました。まったく「間違っている」とは何であるwchar_tとwstring、私は国際化をサポートしたい場合は、ワイド文字にはいくつかの選択肢は何ですか?

16
負の数を処理するC / C ++ / Obj-Cでモジュロ(%)演算子をコーディングする方法
(数学者としての)C派生言語に対する私のペットの嫌いなものの1つはそれです (-1) % 8 // comes out as -1, and not 7 fmodf(-1,8) // fails similarly What's the best solution? C++ allows the possibility of templates and operator overloading, but both of these are murky waters for me. examples gratefully received.

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