[解決済み] モダンC++は普及するのか?[クローズド]
質問
私が 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"メソッドが置き換えられるのにどれほど時間がかかるかという、興味深い教訓です。
関連
-
[解決済み】クラステンプレートの引数リストがない
-
[解決済み】文字列関数で'char const*'のインスタンスを投げた後に呼び出されるterminate [閉店].
-
[解決済み】デバッグアサーションに失敗しました。C++のベクトル添え字が範囲外
-
[解決済み】fpermissiveフラグは何をするのですか?
-
[解決済み] 式はクラス型を持つ必要があります。
-
[解決済み】CMakeエラー at CMakeLists.txt:30 (project)。CMAKE_C_COMPILER が見つかりませんでした。
-
[解決済み】クラスのコンストラクタへの未定義参照、.cppファイルの修正も含む
-
[解決済み】変数やフィールドがvoid宣言されている
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み】古典的なソートアルゴリズムを最新のC++で実装する方法とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】LLVMで暗黙のうちに削除されたコピーコンストラクタの呼び出し
-
[解決済み] エラーが発生する。ISO C++は型を持たない宣言を禁じています。
-
[解決済み】致命的なエラー LNK1169: ゲームプログラミングで1つ以上の多重定義されたシンボルが発見された
-
[解決済み】抽象クラス型の無効なnew-expression
-
[解決済み】C++の変数はイニシャライザーを持っているが、不完全な型?
-
[解決済み】浮動小数点例外エラーが発生する: 8
-
[解決済み】オブジェクト引数のない非静的メンバ関数の呼び出し コンパイラーエラー
-
[解決済み】警告 - 符号付き整数式と符号なし整数式の比較
-
[解決済み】Eclipse IDEでC++エラー「nullptrはこのスコープで宣言されていません」が発生する件
-
[解決済み】'std::cout'への未定義の参照