我想在c ++中实现没有继承的golang接口。
例如: -
jq
有没有办法实现这个?
答案 0 :(得分:3)
是的,您可以使用模板:
template <typename T>
void Copy(T item) {
item.copy();
}
然后你根本不需要课程Copyable
。
如果类型T
没有copy()
方法,则无法编译(如您所料)。
C++ Concepts是一个建议的功能,有一天它可能会成为标准语言,但目前只有某些编译器支持,例如GCC(6或更高版本)。