我有这个结构模板
template<typename N>
struct Succ{};
Run Code Online (Sandbox Code Playgroud)
和这个函数模板
template<typename N> N dec(Succ<N> s_n){
N n;
return n;
}
Run Code Online (Sandbox Code Playgroud)
这正是我想要的,如果我经常递减一次,我会收到编译器错误。
现在,我想在我的项目中使用这种风格的代码来捕获错误,但是创建初始“值”非常繁琐,我的意思是, 2 已经是Succ<Succ<SomeType>>。
如何使用 C++ 模板来完成此任务?就像是
Nat<2,SomeType> two;
Run Code Online (Sandbox Code Playgroud)
这与以下相同
Succ<Succ<SomeType>> two;
Run Code Online (Sandbox Code Playgroud)
有人可以给我这种模板编程的链接或其他资源吗?例如,如何使用 C++ 模板实现 Peano 算术以及如何更轻松地创建类型数字。