1. ホーム
  2. c++

[解決済み] モダンC++は普及するのか?[クローズド]

2022-06-23 14:43:43

質問

私が 6-7 年前に初めて C++ を学んだとき、学んだことは基本的に "C with Classes" というものでした。 std::vector は間違いなく高度なトピックで、もしあなたが 本当に は間違いなく高度なトピックでした。そして、デストラクタがメモリ管理のために利用できることを教えてくれる人は、確かにいませんでした。 今日、私が見るところでは、RAII と SFINAE やSTL、Boost、そしてModern C++を見ることができます。この言語を始めたばかりの人たちでさえ、ほとんど初日からこれらの概念を教えられているようです。

私の質問は、これは単に私がベストな質問、つまり SO や他のプログラミング サイト (gamedev.net) の初心者向けの質問しか見ていないからでしょうか、それともこれは実際に C++ コミュニティ全体を代表しているのでしょうか?

モダン C++ は本当にデフォルトになりつつあるのでしょうか?専門家が書くような派手なことではなく、C++ のあり方そのものになりつつあるのでしょうか。 それとも、いまだに C 言語をクラスで学び、動的配列を書く代わりに std::vector を使用する代わりに独自の動的配列を記述し、トップレベルのコードから手動で new/delete を呼び出すことによってメモリ管理を行う何千人もの人々を見ることができないのでしょうか?

信じたいのは山々ですが、C++コミュニティ全体が基本的に数年の間にこれほどまでに進化したのだとしたら、信じられないようなことです。 あなたの経験や印象はどうですか?

(免責事項: C++に精通していない人は、C++が他の言語に対して人気を博しているかどうかを尋ねていると、このタイトルを誤解する可能性があります。モダン C++は、C++の中の方言またはプログラミング スタイルの一般的な名前で、「モダン C++」という本にちなんで名付けられました。 モダンC++デザイン。Generic Programming and Design Patterns Applied(汎用プログラミングとデザインパターンの応用)」という書籍にちなんで名づけられました。 という本にちなんで名づけられたもので、私はこの本と古いC++との比較にのみ興味があります。ですから、C++ の時代は過ぎ去り、私たちは皆 Python を使うべきだと私に言う必要はありません ;))

どのように解決するのですか?

どのように進化してきたかを説明します。

C++プログラマの最初の世代はCプログラマで、彼らは実際、C++をクラス付きのCとして使っていました。 さらに、STL はまだ導入されていなかったので、C++ は本質的にそのようなものだったのです。

しかし、本を書き、カリキュラムを組み、クラスを教える人々のほとんどは、最初に C を学び、次に C++ の余分なものを学びました。 他の回答にもあるように、通常のforループを書くのに慣れているのであれば std::for_each を使用するように変更しても、「最新の方法でやっている」という温かみのあるファジーな感覚を得る以外には、あまり意味がありません。

現在では、Koenig & Moo の Accelerated C++ や Stroustrup の新しい教科書のように、C++ の全体を使っていて、その観点から指示を得ている指導者や本の著者がいるのです。 だから、私たちは char* では std::strings .

特に効果的な実績がある場合、quot;legacy"メソッドが置き換えられるのにどれほど時間がかかるかという、興味深い教訓です。