【发布时间】:2018-07-07 11:33:21
【问题描述】:
在一个关于boost::mpl::map 的简单问题How to get *any* example of boost::mpl::map working? 上花了很多时间后,我不明白为什么boost 在他们的MPL 实现中不包含std::pair。我知道,他们可能会遗漏标准对中的点点滴滴,但肯定可以包含适应std::pair 的代码。
毕竟,std::pair 是语言的一部分。
这种现象不仅限于std::pair。据我了解,std::tuple 与boost::mpl::vector 非常相似,但两种类型都不会在 boost 库中互操作。
正如How to get *any* example of boost::mpl::map working? 上的@lisyarus 所指出的,不同之处在于,与std:: 版本相比,boost::mpl::pair 从未打算存储值。但我仍然不明白 - 不存储值是否也意味着它必须保持正确的类型?如果我关心的只是类型,我仍然可以使用std::pair 及其::first 和::second 成员并简单地丢弃运行时值。
【问题讨论】:
-
“问题 2:有没有希望,Boost 最终会在他们的 MPL 中使用标准容器?” - 您将不得不向 Boost 人员询问。你为什么不呢?他们可以回答,我们不能。
-
@PasserBy 你是对的。问题已编辑。
标签: c++ boost metaprogramming c++-standard-library