最新のC ++パラダイムの概要 [閉まっている]


16

私は8〜10年前にC ++を広範囲に記述していました。それ以来、専門的な理由でC#に移行しました。しかし、時々私は次のような声明を見ます

「まだポインタ参照を手動で追跡している場合は、間違っています」

または

「C ++は、RAIIのような最新のコンセプトを使用しており、回復中のC開発者のようにメモリを手動で割り当てない限り、完全に安全です。」

どちらも10年前の標準的な手順でした。最近、C ++がかなり改善されているのを見てきました。特にC ++ 0xには、いくつかの新しい機能があるようです。「C / old C ++」プログラマーが「最新」のC ++パターンとプラクティスに追いつくための最適なリソースは何ですか?


3
それらは10年前の標準的な手順でした。残念ながら、から標準的な手順を使用してC ++開発者の非常に重要な部分はまだそこにある3十年前は。
-DeadMG

7
単一のリソースについては知りませんが、現代のC ++は基本的に次のようになります:(1)可能な限り、手動ロールアルゴリズムの代わりにSTLを広範囲に使用、(2)手動割り当て/割り当て解除でスマートポインターとSTLコンテナーを使用、(3)ファンクタ/ラムダと高次関数を使用した機能的なプログラミングスタイル、および(4)実行可能な場合はいつでも実行時仮想関数よりもテンプレートベースの静的多態性を優先
Charles Salvia

Scott Meyersによる効果的なC ++
Gyan別名Gary

回答:


5

それは他のほとんどのものよりも教材に関係しているかもしれませんが、8〜10年前には、言語の使用方法が今日と大きく異なっていたように思われます。今日の焦点は、テンプレート、タイプセーフティ、および汎用プログラミングを活用することです。以前は、すべてのことを恐れていました。

教材も変更されています。標準のC ++の最初の本ではprintf、scanfなどについて説明していましたが、現代のアプローチではこれらを本で見ることすらほとんどありません。

良い本の中には、赤い本のいずれかです。優れたC ++、さらに優れたC ++、C ++テンプレートメタプログラミング、最新のC ++デザイン、加速C ++ ...

私が現在働いている場所を見ることは良い例かもしれません。私はここでC ++を現代的な方法で使用してきましたが、ほとんどの開発者は私が何をしているのか、あるいはその理由さえ知らないようです。たとえば、演算子()を含むオブジェクトを作成しています... bind()が発生するたびに地獄をコメントアウトする必要があり、最終的にはすべてのコードを破棄するように指示されました。イニシャライザが何をするのかわからない...それは本当に私にとって本当におかしくて大変だった。


5

// build /で提供されているC ++機能の最新の機能をすばやく監視するには、Herb Sutterの最近のプレゼンテーション「最新のC ++コードの記述:C ++の長年にわたる進化」をご覧ください。

彼はなぜC#よりも優れた言語であるかについて語っています(もちろん-マイクロソフトはズボンを定期的に変更しており、今日はC ++のファッションを着ているので、彼らはこれを誇大広告します。前)しかし、そうすることで、彼はすべての良いビット(「自動」メモリ管理やSTLクラスなど)を説明し、C ++ 0x標準の新しいビットについて話を続けます。

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