<分区>
Possible Duplicate:
What's the use of metaprogramming?
我知道在 C++ 中,有提供元编程功能的库,例如 Boost MPL。 但它们在现实世界的 C++ 项目中真的有用吗(或者只是在极少数情况下使用)? (我觉得元编程代码很奇怪,会产生难以调试的编译错误)
谢谢。
<分区>
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/