2

場合によっては、単に不透明な前方宣言ではなく、公開された機能を公開したクラス宣言を提供したいことがありますが、プライベートまたは実装固有のフィールドとメソッドにコミットしたくない場合があります。これに対する 1 つの解決策は、pimpl イディオムです。内部クラスへのポインターを使用して、公開されているクラスの実装を格納します。

私は pimpl を使用するのが本当に好きではなく、言語が本当にプライベートなメンバーを持つことを許可することを望みます-クラスを使用するコードがそれらの宣言を「見ない」ようにします(したがって、実装の詳細時に再コンパイルする必要はおそらくありません)変化する)。また、最近、C++ の進化の速度が大幅に速くなっていることに気付きました。これは、標準的な更新では 3 年間のカチカチというパターンです。それで...そのような機能をC++に追加する提案はありますか? 一部のコンパイラは現在それをサポートしていますか?

4

1 に答える 1

1

はい、そのような提案は存在します。以前のバージョンもいくつかありましたが、最新のものは昨年のものです。

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4173.pdf

この提案はoperator.、いくつかのユースケースをリストして、オーバーロードすることを許可します:

  • スマート参照
  • スマートポインターの類似品
  • プロキシ
  • インターフェースの改良
  • にきび
  • ハンドル

詳細については、リンクされた提案を読むことができます。もちろん、これが受け入れられるとは限りませんし、受け入れられたとしても、C++17 にはならないでしょう。

于 2015-05-24T10:08:07.817 に答える