私は関数インターフェースを持っています:
struct iFace {
virtual Type& getType() = 0;
}
アイデアは次のように取得することです:
iFace& iface = getIface();
Type& type = iface.getType();
しかし、私は時々間違いをして次のように書きます。
Type type = iface.getType();
これは値でコピーしますが、これは避けたいものです。しかし、私がそのような間違いをしたとき、コンパイラはその正当な構文のために警告を出しません。これに対してコンパイル時エラーをトリガーしたいのですが、私の代替案は何ですか?
コピーコンストラクターを宣言することを考えましたが、どこにも定義しないと、使用するとリンク時エラーが発生しますが、どのような状況でもコピーコンストラクターを使用できなくなります。これは望ましいことではありません。