2

(Cでの長い経験から来た)C ++に慣れるには、明らかに正しいことをしようとしており、可能な限り標準を使用しています。

しかし、この問題についての私の読書では、私は標準的なものに対する多くの批判に出くわし、非標準的なものを賞賛します。たとえば、(私が思うに)あまり考えられていないMFCライブラリでさえ、たとえば、そのCStringクラスには、(a)非標準であるにもかかわらず、一部の人々がそれを使い続けるのに十分役立つと考える機能があります。 (b)それは(私が思うに、多くの批判から)多くの重要な点で不十分であると。

私の質問は2つあります。

A.よく考えられていないライブラリには、それでも引き続き使用する価値のある機能が含まれています。それらの機能とは何ですか。また、それらの優れている点は何ですか。

B.リソースリークを抽象化する優れたインターフェイス、非STLライブラリインターフェイスからSTLに移行するアダプタなど、そのようなライブラリの使用を簡素化および/または強化する「アダプタ」ライブラリはありますか。

StackOverflowの比較的初心者として、この質問が十分に適切であるかどうかは100%確信できません。そのため、制限が多すぎる場合は、事前にお詫び申し上げます。

前もって感謝します

4

4 に答える 4

2

私の個人的なグランジはACEです。それは逆のようなものでした-素晴らしいアイデア、C ++でのクロスプラットフォームのスレッド化とネットワーク開発、幅広い展開、ライブラリ作成者による本など、当時は他に何も利用できませんでした。しかし、実装はひどく、使用パターンは複雑で、C ++のほとんどすべての便利な機能が抑制されています(または当時は存在しませんでした)。このライブラリだけで、C++は難しくて醜いと考える多くの人々の責任があると思います。ごく最近ブーストコレクションはスレッド、ipc、およびネットワーキングに追いつき始めたので、少なくとも代替手段があります。しかし、そうは言っても、ACEを使用する人が多すぎて、アイデアが優れており、ライブラリ設計の大きな否定的な例として役立つ可能性があるため、その分野にいる場合はACEに精通する価値があると思います。

于 2009-05-23T05:12:05.457 に答える
2

IMOのMFCの最も優れている点は、歴史的に、STLが利用可能になる前に利用可能であり、何もないよりも優れていることです。

既存のMFCコードベースと互換性のあるコードを記述している場合、MFCは引き続き有効です。

それを除けば、MFCにはほとんどメリットがありませんが、Windows用の(最もではないにしても)明らかなC++クラスライブラリの1つである可能性があります。

于 2009-05-23T03:24:14.390 に答える
1

より一般的な注意点として、人々が古くて厄介で、おそらく時代遅れのライブラリに固執する理由の1つは、ライブラリがそれに慣れてきて、新しくて光沢のあるものなら何でもうまくいくかもしれないが、最初は把握/理解するのが難しいからだと思います。そのため、使い慣れたものにとどまり、生産性を維持できます。

それは仕事を成し遂げることと仕事を「正しく」成し遂げることの間のバランスだと思います。その間のどこかで、おそらく私たちのほとんどが最終的になる場所です。

于 2009-05-23T09:25:37.460 に答える
0

MFCはクロスプラットフォームではないため、CStringは非標準だと思います。std :: string()は標準ですが、すべてを標準で使用する場合、なぜMSがMFCを開発したのでしょうか。

于 2009-05-23T03:20:33.757 に答える