gpt4 book ai didi

java - C++模板化方法

转载 作者:行者123 更新时间:2023-11-30 09:48:38 25 4
gpt4 key购买 nike

如何在 C++ 中实现模板化方法?

我正在考虑在 JVM 中实现模板,并且已经为模板化类考虑了一个可能的实现,但不确定方法。

例如,如果您这样做了:

class Test
{
public static boolean isIterable<T>(T variable)
{
return T instanceof Iterable;
}
}

System.out.println(Test.isIterable(new int[] { 0 }));

我会创建一个版本的 Test 来回复 int[] 吗? (在我的实现中,该类将这样命名:$g$Test$A_Java_lang_int)

请忽略泛型的任何问题(例如只需要盒装对象),因为我打算删除它们。

我计划动态创建这些已解析的模板,并跟踪引用的数量,以便在不使用时删除它们。我相信这就是 .Net 管理它的方式,尽管我很乐意在这里犯错!

最佳答案

Would I create a version of Test that replied to int[]?

基本上,是的。 C++ 中的模板纯粹是一种编译时机制,它使用(美化的)宏机制为实例化的每种类型生成基于模板的代码。

(由于特化的可能性,C++ 实际上做的更多,但这是它的要点。)

关于java - C++模板化方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6151968/

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