首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >什么样的C++模板编程可以称为“元编程”?

什么样的C++模板编程可以称为“元编程”?
EN

Stack Overflow用户
提问于 2016-06-12 02:34:11
回答 2查看 160关注 0票数 1
  1. 使用什么样的模板技术,可以称为“元编程”吗?
  2. 对于什么是元编程和什么不是元编程,有一个很好的定义吗?
  3. 我们的C++11 STL包含很多元编程吗?
  4. "type_traits“是元编程吗?

非常感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-12 03:50:28

“元编程”在非正式演讲中用于指各种编程技巧:

  • 关于类型的信息,即“类型特征”。这是最直接的元类型,在这里" meta“的意思是”关于某物“。
  • (Ab)使用C预处理程序或模板。您实际上不是在“用”C++编程,而是在编写一种子语言。IOCCC有很多使用C预处理程序来完成各种完整程序的例子,比如河内塔和计算素数。模板元程序的“经典”示例是计算fibonacci。换句话说,您将“超出”C++的正常范围来创建程序,这使得这种用法类似于元标记。
  • Quines,创建程序来制作程序、自托管编译器等等。这里的"meta“意思是”自引用“,就像分形一样。

标准库是否包含“元编程”是实现定义的。有些实现是疯狂的,而另一些则不然。

也没有一个很好的定义,具有讽刺意味的是,"meta“这个词有点模糊。

票数 1
EN

Stack Overflow用户

发布于 2016-06-12 04:24:22

Q1.使用什么样的模板技术,可以称为“元编程”吗?

模板元编程是指使用模板和编译器来执行编程过程中的一些关键元素:循环、if-否则分支、C/C++开关,如分支、递归等。

第一个这样的元程序用于生成前几个素数作为编译器错误消息。请参阅http://www.erwin-unruh.de/primorig.html

Q2.对什么是元编程和什么不是元编程有一个很好的定义吗?

维基百科可以找到一个很好的定义。

模板元编程(TMP)是一种元编程技术,编译器使用模板生成临时源代码,编译器将其与其他源代码合并,然后编译。这些模板的输出包括编译时常量、数据结构和完整函数。模板的使用可以看作是编译时的执行。这种技术被许多语言所使用,其中最著名的语言是C++,但也包括Curl、D和XL。

Q3.我们的C++11 STL包含很多元编程吗?

很有可能但那只是猜测。我还没有深入研究标准库的任何实现。

Q4.是"type_traits“元编程?

再一次,我还没有深入研究它,但我认为"type_traits“的大部分功能都是使用元编程技术实现的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37770194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档