gpt4 book ai didi

java - C++ 中的模板继承(移植 Java 代码)

转载 作者:行者123 更新时间:2023-11-30 01:19:56 24 4
gpt4 key购买 nike

我想将一个 Java 程序移植到在一个类中使用泛型的 C++。

public class Graph<T extends Node> {
...
}

我几年前就遇到过这个问题,但无法解决,因为当时 C++ 不支持这个问题。现在这在 C++11 中是否可行,或者是否有任何方法强制编译器检查泛型类型是否继承了基类 Node?

template <typename T : public Node>
class Graph {
...
};

感谢您的帮助!

最佳答案

is there any method to force the compiler to check if the generic type has the baseclass Node inherited?

您正在寻找std::is_base_of .现在,要使其成为编译时检查,您可以将其与 static_assert 一起使用.

在我看来,是否强制T必须派生自Node是一个判断问题。如果 T 实现所有必要的方法以便 Graph 类编译,我认为没有理由强制 T 必须派生自 节点.

关于java - C++ 中的模板继承(移植 Java 代码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20149672/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com