有人可以告诉我如何在C++中实现此Java代码吗?
public class MyClass<T extends OtherClass>{
....
}
我已经在C++中对此进行了测试:
template<class T, class OtherClass>
class MyClass
{
public:
MyClass();
}
但是我得到了错误:
invalid use of template-name 'MyClass' without an argument list
问候
最佳答案
您可以将 std::is_base_of
与static_assert
结合使用:
template<class T>
class MyClass
{
static_assert( std::is_base_of< OtherClass, T >::value, "T does not extend OtherClass");
public:
MyClass();
};
(当然,您还可以将
OtherClass
用作其他模板参数,以防您需要更加灵活)