1. ホーム
  2. c++

[解決済み] 効果的なC++はまだ有効か?

2022-05-11 09:40:53

質問

私が見たところでは この投稿 を読み始めることにしました。 効果的な C++ .

しかし、C++11 のために多くの新機能があり、グッドプラクティスのいくつかが変更された今、それが実際に良いアイデアかどうかはわかりません。C++11 の登場により、Effective C++ に含まれているアドバイスのどれかが非推奨になったのでしょうか。 もしそうなら、どのトピックを避けるべきでしょうか?

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

スコット・マイヤーズ自身は、このように語っています。 自身のブログで

<ブロッククオート

この『Effective C++0x』以前の版における情報やアドバイスが、今でも適切かどうか疑問に思われるかもしれません。 この『Effective C++』の C++0x 以前の版に含まれる情報やアドバイスが、今も適切なものであるかどうか疑問に思われるかもしれません。私は喜んで 報告できることを嬉しく思います。実際、驚くほどそうなのです。私は、2年近くを C++0xの詳細に浸りながら2年近くを過ごした私は、C++0xを念頭に置いて本書の目次を見直すと、少しばかり唸ることになるのではないかと思っていました。 この本の目次をC++0xを念頭に置いて見直すと、少しばかり唸ることになります。確かに この本の目次をC++0xを意識して見直すと、ちょっと唸ってしまうような項目もある。しかし、私が見つけた助言は それは C++0xの開発者は、const、enum、inlineの方が #defines (項目 2) を好むべきでしょうか?そうすべきです。デストラクタから例外が出るのを防ぐべきでしょうか (項目 8)。 防ぐべきでしょうか (項目 8)?もちろんです。オブジェクトを使って リソースを管理するべきか?データメンバを非公開にするべきか? 仮想関数の代替を検討する 仮想関数に代わるものを検討すべきでしょうか?パラメータに依存しないコードを テンプレートからパラメータに依存しないコードを除外しますか?(項目13, 22, 35, 44.) はい、はい、はい、はい! 私の目標は Effective C++の目次は、この本のアドバイスを要約したものであることが私の目標でした。 そして、その要約は、「C++0x」の開発にも「C++0x」の開発にも同じように適用できます。 C++0xの開発にも、「従来の」C++の開発と同様に適用できます。C++0xはより大きな言語です。 C++0xはより大きな言語であり、ある意味では異なる言語でもありますが、「古い」C++を有効に活用するための核となる技術は、C++0xの開発にも適用できます。 C++0xはより大きな言語であり、ある意味では異なる言語ですが、「古い」C++を効果的に使用するための核となる技術は C++0xを効果的に使用するための中核となる技術です。

これは、この Effective C++ が C++0x と完全に一致するという意味ではありません。 C++0x と完全に一致するということではありません。この本は、C++0xの新機能については触れていないので、その機能を有効に活用するための項目が欠けています。 を有効に活用するための項目が欠けています。C++0x化された C++0x化されたEffective C++では、移動操作に特化した項目が必ずあるはずです。 また、並行処理APIを有効に活用するための章も用意されているはずです。このような本には、例えば、自動変数、範囲ベースのforループ、クラス内のデフォルトの初期化子、そして時折の変種テンプレートの使用など、さまざまな例も含まれていることでしょう。この本が C++0x のサポートに欠けているとすれば、その誤りは省略によるもので、委託によるものではありません。

アップデイト : 新しいタイトル 効果的なModern C++ は、2014年11月より、下記より販売しております。 オライリー アマゾン (などなど、ググればいくらでも出てきます)。