0

「ドット」演算子「.」をオーバーロードする方法はありますか。

ORM レイヤーを書き換える際に、古いコード ベースを使用したいと考えています。そのため、オブジェクトをラップして、メンバー選択演算子「.」に新しいセマンティックを追加するというアイデアがありました。

ここSOを含め、理論的には問題ないと言っているサイトがいくつか見つかりましたが、現在のC++標準では許可されていません。

たぶん、それを行うコンパイラがすでにありますか?

編集

素早い回答ありがとうございます。そのようなコンパイラを見つけるのは、不可能ではないにしても難しいかもしれません。さらなるヒントをいただければ幸いです。私たちがすでに読んだあなたの投稿されたすべてのリソース...

達成したいことを簡単に: ラッパーは独自のメンバーを持たず、別の方法で以前の実際のオブジェクトを提供する必要があります。下位互換性の理由から、新しいレイヤーを実装することは非常に便利です。約 4000 回以上発生する従来のクライアント コードを変更することを避けることができます。

別の方法で進める方法が他にある場合は、教えてください。この制限は C++11 にもありますか?

編集2

まだわかりませんが、私たちが何をしているかを報告するつもりです。

4

1 に答える 1

0

ドット演算子をオーバーロードすることはできず、このプロパティをサポートする C++ コンパイラはありません。C++ での演算子のオーバーロードについて詳しく説明しているウィキペディアのこのリンクを確認してください。http://en.wikipedia.org/wiki/C%2B%2B_operators

于 2012-10-11T17:12:58.167 に答える