【问题标题】:Is metaprogramming being used in real-world c++ software projects? [duplicate]元编程是否用于现实世界的 C++ 软件项目? [复制]
【发布时间】:2011-04-05 10:54:42
【问题描述】:

可能重复:
What's the use of metaprogramming?

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

谢谢。

【问题讨论】:

  • 我不认为这是一个骗局。该问题询问为什么使用元编程,而该问题询问使用 TMP 的特定情况。
  • 是的,我想知道使用 Boost.MPL 之类的实际项目的示例,但这些链接非常有用。

标签: c++ metaprogramming


【解决方案1】:

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

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

元编程是否有一些疯狂的事情(例如 Boost::Spirit::Qi)?当然。不过,这不是一般情况。

【讨论】:

    猜你喜欢
    • 2023-03-27
    • 1970-01-01
    • 2011-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-12
    相关资源
    最近更新 更多