0

我遇到了一件让我思考的事情......也许这是一个完全新手要问的问题,但我想要实现的是一个可以像这样工作的模板:

ForwardedReference<int****> x(somePointerWithFourStars);
int& y = x.Ref;

但我不想要任何运行时循环函数调用。我试图制作一些部分指定的结构模板,但还没有成功(我仍然会努力实现这个目标)。

我最初的想法是有两种类型的模板说A<T>,并B<T, U>用另一种来改变。第一个的专业化是 for T*,另一个是 for T*, T

我想得到 A<T*>一个领域B<T*, T>,并B<T*, T>A<T>实例。

我在一些编译错误上失败了,现在不能深入研究(尽管我以后肯定会研究这个),因为我在工作 T_T 但如果这个我很想得到答案有可能做,怎么做。我不知道我是否会在最近的将来使用它,但我喜欢用类似的东西扩展我的知识。

如果您觉得没有足够的细节,请告诉我 - 我会不时查看此线程。

4

1 回答 1

1

但我不想要任何运行时循环函数调用

硬的狗屎。您可以使用 TMP 相对容易地定义类型int&int****但如果不使用递归则无法访问它,因为每个中间阶段的类型不同,您不知道有多少中间阶段。您必须使用递归来取消引用指针。

于 2013-07-15T11:49:26.300 回答