c++ - 元编程是否用于现实世界的 C++ 软件项目?

标签 c++ metaprogramming

<分区>

Possible Duplicate:
What's the use of metaprogramming?

我知道在 C++ 中,有提供元编程功能的库,例如 Boost MPL。 但它们在现实世界的 C++ 项目中真的有用吗(或者只是在极少数情况下使用)? (我觉得元编程代码很奇怪,会产生难以调试的编译错误)

谢谢。

最佳答案

当然有用。你用过 std::distance 或者 std::advance 吗?他们使用元编程为双向/随机访问迭代器做正确的事情。 (即,双向迭代器重复++ 或 --,随机访问迭代器重复 += 或 -=)。

TMP 对于需要为类型参数做一件事或为不同类型参数做另一件事(即距离/提前)的库最有用。

元编程可以做一些疯狂的事情(例如 Boost::Spirit::Qi)吗?当然。但这不是一般情况。

关于c++ - 元编程是否用于现实世界的 C++ 软件项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3595387/

相关文章:

c++ - 什么更有效率? vector.assign 与 vector.erase

c++ - std::map 中键类型的赋值运算符要求

java - 什么是 Spring 的元数据编程?

c++ - 为什么使用两个 sizeof 来检查一个类是否是默认可构造的,而一个却不行?

ruby - 给定一个 Ruby 对象的实例,我如何获得它的元类?

ruby - Ruby 中的猴子修补和重载方法

c++ - for_each 和转换

c++ - 为什么有些图书馆提供无指针访问而其他图书馆不提供?

c++ - 我如何将 C++ 与 Flex 结合使用?

c++ - 如何在 C++ 中展开一个短循环