我有一个函数接口:
struct iFace {
virtual Type& getType() = 0;
}
这个想法是像这样检索它:
iFace& iface = getIface();
Type& type = iface.getType();
但是,我偶尔会犯错误并写道:
Type type = iface.getType();
按值复制,这是我想要避免的。但是,当我犯这样的错误时,编译器不会发出警告,因为它的语法是合法的。我想为此触发编译时错误,请问我的替代方案是什么?
我考虑过声明一个复制构造函数但没有在任何地方定义它,如果使用它会导致链接时错误,但是我将无法在任何情况下使用复制构造函数,这是不可取的