Lazy Data Types in C++ Template Metaprograms by Adam Sipos, Norbert Pataki, and Zoltan Porkolab

本文探讨了C++中模板元编程的概念及其如何支持编译时期的惰性数据类型实现。通过使用模式匹配及模板的部分特化等技术手段,文章详细介绍了如何创建可以表示无限数量元素的数据结构,例如所有自然数的序列,并给出素数筛选算法的实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C++ supports among others the generative paradigm by enabling the creation of programs executed in compile-time.This is called template metaprogramming(TMP), and is based on the language's flexible generic constructl, the

template.

One of the main reasons for our research is the introduction of compile-time lazy data types. Note that the aforementioned typelist and Boost::MPL containers are ¯nite structures, holding a limited number of types at the same
time. Contrarily, lazy data types are ¯nite structures representing an infnitenumber of elements, e.g. all natural numbers. A common example for the usage of lazy lists is the implementation of the Eratosthenes sieve algorithm producing arbitrarily many primes.

Our implementation relies on pattern matching using template partial spe-
cializations.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值