を初期化するとき、私は関数インタフェースがあります。避けコピー参照
struct iFace {
virtual Type& getType() = 0;
}
をし、アイデアは次のようにそれを取得することです:
iFace& iface = getIface();
Type& type = iface.getType();
しかし、私は時折、私はミスを行うと書き込み:
Type type = iface.getType();
私は避けたい値でコピーします。しかし、私はそのような間違いを犯すと、コンパイラはその法的な構文のために警告を出しません。私はこのためにコンパイル時のエラーを引き起こしたいと思います質問私の選択肢は何ですか?
私はコピーコンストラクタを宣言することを考えましたが、それを使用するとリンク時エラーが発生しましたが、コピーコンストラクタを使用することができません。ANY状況は、
あなたは本当にそれを両方の方法で持つことはできません。 –
それは私が恐れているものなので、私は確認するためにここでそれを求めると思った。それを確認していただきありがとうございます – lurscher
それはタイプによって異なります。タイプ抽象化を行うことができれば、インスタンスを作成することはできません。 –