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

静的に型付けされた自由形式のマルチパラダイムでコンパイルされた汎用プログラミング言語であるC ++に関する質問。

3
大量のRAMを必要とするアプリケーションにC ++またはJavaを選択しますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 私は、主にプロセッサに依存し、ヒープ使用量が重い(少なくとも数ギガバイト)科学アプリケーションを考えています。1年のどの時期でもC ++を喜んで使用しますが、この場合、C ++メモリマネージャーにとって自然な断片化がJavaの圧縮コレクターの利点と比較して重大な問題になるのではないかと思います。 誰もこれに関連する実世界の例を指すことができますか?
11 java  c++  memory  big-data 

3
CRTPは多く使用されていますか?そして、なぜそうなのか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 不思議なことに繰り返し発生するテンプレートパターンについて考えています。 私はそれが非常に便利だと思うし、多くのタスクに対してかなりうまく調整できる。しかし、私は認めなければなりません、私は野生でCRTPコードの多くを見ません。 把握するのは難しいですか?仮想機能は全体的に簡単ですか?仮想キーワードが表示されるケースの90%で使用すべきではありませんか?

4
「make」だけでなく「make clean」を使用する場合の一般的なルールはありますか?
私は今、複数ファイルのプログラムを書いていますが、何らかの理由で「make」だけを実行しているようです(ほとんどの状況で直感的に実行する必要があると思うように)。問題の詳細を提供できると思いますが、重要なことは、「make clean」を使用したときに実行されることです。だから、誰かが「メイク」ではなく「メイククリーン」を実行するための一般的な経験則を知っているのだろうかと思っていました
11 c++  builds  make 

6
インデックス変数のタイプの選択
ほとんどの場合、インデックス変数を表す整数型を使用します。しかし、状況によっては、選択を余儀なくされます std::vector<int> vec; .... for(int i = 0; i < vec.size(); ++i) .... これにより、コンパイラは、符号付き変数と符号なし変数が混在して使用されているという警告を発します。インデックス変数をとしてfor( size_t i = 0; i < vec.size(); i++ )(またはunsigned int)作成すると、問題が整理されます。 Windowsタイプの使用がより具体的になると、ほとんどのWindows APIはDWORD(unsigned longとしてtypedefされます)を処理します。 したがって、同様の反復を使用すると、再び同じ警告が発生します。今、私はそれを DWORD dwCount; .... for(DWORD i = 0; i < dwCount; ++i) .... これは少し変だと思う。それは知覚の問題かもしれません。 インデックス変数で発生する可能性のある範囲の問題を回避するために、同じタイプのインデックス変数を使用することになっていることに同意します。たとえば、使用している場合 _int64 i64Count; // .... for(_int64 i = 0; …
11 c++ 


3
汎用プログラミング、業界で使用される頻度
現在、アカデミックな環境でプログラミングを行っているので、好きなものを使用できます。ブーストグラフライブラリをいくつかの目的に使用していますが、GPをより深く理解するための努力に投資する価値があるかどうか疑問に思っています。 私は興味があります-ジェネリックプログラミング(GP)は業界で多く使用されていますか?私の推測では、ほとんどのプログラマーはOOPにはるかに慣れているか、GPを強調またはサポートしていない言語を使用しているため、C ++でSTLデータ構造/関数を呼び出す以外に、GPはそれほど頻繁に使用されないという印象です実際には。しかし、現時点では業界の外にいるので、これについて実務家から聞いてうれしいです。 (私がこれを書いているとき、ジェネリックプログラミングは有効なタグではないことがわかりました!)

7
構造化プログラミングとオブジェクト指向プログラミング
私は構造プログラミングとオブジェクト指向プログラミングの違いを示すプレゼンテーションを行っていますが、OOPの概念を適用することでコーディングが非常に簡単になり、OOPが本当に必要であると視聴者に感じられる例を挙げて、人々がOOPを必要とする理由を説明したいと思います。 何か案は ??

9
コード文書の生産性の向上/損失に関する研究
多くの検索を行った後、ソフトウェア開発の世界で知られていると思われるものに関する基本的な質問に答えることができませんでした。 知られていること: 適切なコードドキュメント(Doxygenタグ、Javadoc、または単なるコメントの豊富さ)に厳格なポリシーを適用すると、コードの開発に必要な時間がオーバーヘッドになります。 だが: 徹底的なドキュメント(またはAPI)を持っていると、新しい開発者やベテランの開発者が機能を追加したり、バグを修正したりするときに生産性が向上(想定)します。 質問: そのようなドキュメントを保証するために必要な追加の開発時間は、将来の生産性の向上によって相殺されますか(厳密に経済的な意味で)? ケーススタディ、または導き出される結論を裏付ける客観的な証拠をもたらすことができる答えを探しています。 前もって感謝します!

10
大学のCSコース用のJavaまたはC ++?
ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け入れていません。 私は、CSの学位を取得するために学校に入学するのが苦手です。私が見ている学校は、入門的なソフトウェア開発コース(オブジェクト指向プログラミング、設計パターン、そのようなこと)のためにJavaベースとC ++ベースの両方を実際に提供しています。追跡するトラックは学生が選択しますが、追跡する時間はあります。 あなたが今知っていることを知っていて、あなたに選択があったなら、あなたはJavaまたはC ++でCSカリキュラムの基礎を築くでしょうか? 私の現在の議論は現在次のようになっています。 良い友人(AIの博士号を持っている)は、後で仕事の機会を広げるためだけに、私が何をするかに関係なくJavaをより良い選択肢として売り込んでいますが、彼の仕事はすべてJavaすき)。私は米国マサチューセッツ州ボストンに住んでいますが、JavaとCの仕事量は同じです。 反対に、終了した時点で学位をどうするかについてはまだ完全には決着していませんが、私の好みはMac向けに開発することです。そのため、C ++にはすでにある程度の露出がありますが、Javaを使用していないため、私の仕事で自分のプロジェクトを見ていると、すぐにそれを使用する必要がありません。少なくとも2年。 私はおそらく20年後に学校に戻る大人であることに注意する必要があります(私は現在、どんな種類の学位も持っていません)ので、できる限り最大限の機会と時間を費やすことを目指しています。私はC ++に傾いていますが、私はまだあいまいであり、外部の客観的なアドバイスがここで役立ちます。 または、私はそれについて考えすぎているかもしれません。 更新:言語の選択は、当初考えていたほど明確ではなかったことがわかりました。いくつかのコアコースはJavaに焦点を当てていますが、他のコアコースのいくつかは主にCとJavaで動作しますが、他のいくつかは適切な方法でスローされます。実際、私の学期の残りは、JavaとJavascriptで時間を過ごした後、Objective-Cになります。前学期は、C、Javascript、およびPHPに加えて、割り当てが必要になったために投げ込まれた他のいくつかの学期でした。全体がほぼ真ん中に分かれていて、これに対する答えがまだ得られているので、現在、学位の要件をすべて満たすようにカリキュラムを作成しようとしていますが、合理的に処理できる限り多くの言語を吸収しています。これまでのところ、私の成績はこれをしようとして苦しんでいません。
11 java  c++  education 

2
C / C ++プロジェクトの依存関係を適切に管理する方法は?
3〜4種類のオープンソースC / C ++ライブラリを使用するプロジェクトがあります。 これらのライブラリをいくつかのプラットフォーム用にビルドし、プロジェクトのさまざまなプラットフォーム用のインクルードファイルとスタティックライブラリをチェックインしました。 しかし、私はいくつかの問題に苦労しています。これらのプロジェクトはすべて、依存関係管理に関するものです。そして、私はベストプラクティスのアドバイスを探しています。 1)何を使用しているのか正確に知るにはどうすればよいですか? 静的libのバージョンを取得する方法がありません。結果として、使用している静的libのバージョンを何らかの方法で追跡する必要があります(ビルド元のコミットのSHAである可能性があります)? これらのライブラリをいつアップグレードするかを理解する必要がある場合、これは特に重要です。 2)ビルドを再現するにはどうすればよいですか? 特定のプラットフォーム用の特定のライブラリーを構築するのに苦労したかもしれません。それを理解するのにしばらく時間がかかりました。 次回同じライブラリを作成する必要があるのは、半年後(なんらかの理由でアップグレードが必要になるとき)になる可能性があります。しかし、そのときまでに、何がどのライブラリで構築されたのかはっきり覚えていません長い間なくなります。 3)これらのライブラリをフォークしてソースコードのコピーを作成する必要がありますか? これはそれほど問題ではありません。しかし、それはまだ問題です。ビルドが再現可能であることを確認するのは良いことです(そのようなソースコードが必要です)。

2
ファイルの最終行を読み取った後、ifstream.eof()がTRUEを返さないのはなぜですか?
初心者がifstreamの読み取りを開始するとき、彼/彼女の本能は、通常次のようなループを使用してファイルを読み取ることです。 while (!ifstream.eof() { ... } ただし、このコードを使用すると、ファイルの最終行を2回読み取るまで停止しないことに気付きました。C ++プログラマーは、これが実際にファイルを読み取る方法ではないことに注意します。その代わり、彼らは通常、ファイルを読む必要のある人は誰でも代わりに次のようなループを使うことを勧めています: while (ifstream >> someVar) { ... } 最初のコードが常に正しく機能しないのはなぜですか?
11 c++ 

1
C ++の静的グローバルと匿名名前空間
後者を導入するときに、C ++が静的グローバル(内部リンケージ)と名前のない名前空間のシンボル(外部リンケージですが、外部から参照する方法がない)を区別したのはなぜですか? これらの理由のいずれかがまだ有効ですか、それとも新しい理由がありますか? それらがまだ異なる場所が残っていますか?しかし、匿名グローバル(または名前空間スコープ)ユニオンはである必要staticがあるという任意のルール、およびそれらは何ですか? ボーナスポイントに関して、それらが異なる理由が残っていない場合、それらを同等にするリクエストはありますか? C ++が名前空間(C ++ 98)、特に名前のない名前空間を導入したとき、静的グローバルは陳腐化し、熱意の中で新しいものよりも劣っていたが、C ++ 11で元に戻された: staticキーワードの廃止…もういや? C ++ 11より前は、内部リンケージのあるシンボルをテンプレート引数として使用できませんでした。C++ 03が外部リンケージを持つためにテンプレートパラメーターを必要とするのはなぜですか。

2
C ++では、SFINAEとメタプログラミングは意図的でしたか、それとも単なるテンプレートの副産物でしたか?
SFINAEとtemplateメタプログラミングは素晴らしいことを行うことができ、多くのライブラリーもそれらをかなり使用しています。 歴史的に、これらの「魔法の概念」は両方とも、C ++で意図的に導入/サポートされていましたか?または、それらは後にオリジナルのtemplateプログラミングの有用な副産物(副産物)として発見されましたか?

4
C ++イテレーター、すべてのイテレーターが継承するイテレーター基本クラスがないのはなぜですか
私は試験に向けて学習しており、質問と回答に苦労しています。 なぜ他のすべてのイテレータが継承するイテレータ基本クラスが存在しないのですか? 私の先生はcppリファレンス " http://prntscr.com/mgj542 " の階層構造を参照していると思います。なぜそれらを使用する必要があるのか​​、他の理由を提供する必要がありますか? イテレータの種類(種類)と、コンテナの操作に使用されることを知っています。たとえば、基盤となるデータ構造が異なる可能性があるため、配列にはランダムにアクセスできますが、リンクリストにはアクセスできないため、コンテナーごとに異なるイテレーターがあり、コンテナーごとに移動方法が異なります。 それらはおそらくコンテナに応じて特殊化されたテンプレートでしょう。
11 c++  iterator 

3
C ++アプリケーションコードを難読化することは重要ですか?
Javaの世界では、それが時々問題となるようですが、C ++はどうですか?異なる解決策はありますか? 誰かが特定のOSのC ++ライブラリを同じライブラリの異なるバージョンで置き換えることができるという事実について考えていましたが、私のコードが何をしているかを理解するためのデバッグシンボルでいっぱいです。標準または一般的なライブラリを使用するのは良いことですか? これは、Windowsの一部のdllライブラリがそのライブラリの「デバッグバージョン」に置き換えられた場合にも発生する可能性があります。静的コンパイルを優先する方が良いですか?商用アプリケーションでは、アプリのコアとしてすべてを静的にコンパイルし、ほとんどの場合、dll(一般に動的ライブラリ)を使用して、海賊版対策ソリューションなどのサードパーティのテクノロジーを提供しています(多くのゲームでこれを確認しています) )、GUIライブラリ(Qtのような)、OSライブラリなど 静的コンパイルは、Javaの世界における難読化と同等ですか?より良い意味で、それはあなたのコードを保護するための最良で最も手頃なソリューションですか?

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