c++ - 递归模板

标签 c++ templates recursion

是否可以为此数据类型编写模板定义?

myclass<int, myclass<int> > data;

第二个模板变量应该是可选的,具有相同类型的默认值。

澄清

现在我使用这个定义:

class defaultClass { };
template <typename T, typename C=defaultClass>
class myclass { ... };

我想预定义 defaultClassmyclass<T>

我想实现类似自动实现的属性之类的东西:第二个参数应该是定义包装变量的上下文。如果省略上下文,则它应该位于模板类本身创建的对象中。 (我意识到可以用另一种方式解决这个问题,这只是用例。)

最佳答案

看起来很相似

http://en.wikipedia.org/wiki/Curiously_recurring_template_pattern

您可以通过使用模板基类型创建类层次结构来完成您想要的操作,然后每个类都可以从该基类派生

template<class T> class base { ... };

class derived: public base<derived> {...};

关于c++ - 递归模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10671737/

相关文章:

c++ - Clang 在折叠表达式中找不到模板二元运算符

java - 可以在递归方法中编写基本条件的地方

c++ - 异构HashMap c++

c++ - 在 C++ 中将 unix 时间戳转换为星期几?

c++ - 具有不同参数的多态性

c++ - 依赖于模板的基本成员未正确解析

c++ - g++ 中 ">"之前的预期主表达式,但在微软编译器中没有

javascript - 递归删除具有相同 id 的 JSON 对象

c++ - 我已经在C++中创建了一个函数来递归地反转字符串,但是如何使函数在以后打印endl?

c++ - 获取指向基类 C++ 的指针或引用