在Java泛型中,当我想要确保某个泛型类的类型必须继承自一个类时,我可以按照以下方式编码:
这意味着
如何在C++11中实现相同的功能?我的意思是,如果我按照以下方式编写C++11代码:
在这段代码中,
public class MyHandler<T extends Serializable> {}
这意味着
T
必须扩展/实现类/接口Serializable
,否则编译器将生成错误。如何在C++11中实现相同的功能?我的意思是,如果我按照以下方式编写C++11代码:
template<typename T>
class MyHandler {}
在这段代码中,
T
可以是任何类。但是,如果我想告诉类的使用者 T
必须继承类 boost::archive::text_oarchive
(就像在 Java 中的 <T extends Serializable>
),我该怎么办?
std::enable_if
来解决这个问题,所以我才提出了那个问题。或者是我漏掉了什么吗? - asmmostd::enable_if
和发布的答案中的技术都是100%编译时的。 - cdhowie