gpt4 book ai didi

c++ - 其核心是如何实现 boost 元组(没有 boost header 中的所有额外细节)

转载 作者:行者123 更新时间:2023-11-30 02:04:23 25 4
gpt4 key购买 nike

它似乎是一个包含 10 个东西的硬编码模板,但也有一个与 Lokki 的 Typelist 非常相似的 cons 模板类的实现。那么 boost 元组模板只是 Typelist/cons 实现的包装器吗?或者它的要点是什么?

最佳答案

在 C++03 中(因为否则我们会谈论 std::tuple )没有可变参数模板功能,因此它是用足够数量的参数 (*) 和特定的默认值来模拟的。

您可以通过阅读 Design decisions rationale 获得实际实现的提示。 :

The end mark of the cons list (nil, null_type, ...)

Tuples are internally represented as cons lists:

tuple<int, int>

inherits from

cons<int, cons<int, null_type> >

null_type is the end mark of the list. Original proposition was nil, but the name is used in MacOS, and might have caused problems, so null_type was chosen instead. Other names considered were null_t and unit (the empty tuple type in SML).

Note that null_type is the internal representation of an empty tuple: tuple<> inherits from null_type.

(*) 通常在 Boost 中,代码是使用宏生成的,因此上限是可配置的。

关于c++ - 其核心是如何实现 boost 元组(没有 boost header 中的所有额外细节),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10722950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com