是std :: tuple需要使用空基类优化吗?

时间:2014-10-16 13:59:30

标签: c++

std::is_empty<std::tuple<Args...>>::value
如果Args中的每个类型都为空,则

返回true? gcc 4.9中的快速测试表明情况确实如此,但标准是否需要?

1 个答案:

答案 0 :(得分:6)

不,没有要求tuple使用继承来启用空基类优化。

元组库的唯一文本规范是:

  

本小节描述了一个元组库,它提供了一个元组类型作为可以的类模板元组   用任意数量的参数实例化。每个模板参数指定元素的类型   在元组中。因此,元组是异构的,固定大小的值集合。实例化   具有两个参数的元组类似于具有相同两个参数的对的实例化。

没有提及任何实施细节;并且模板规范开始:

template <class... Types>
class tuple {

没有指定它必须从任何东西继承。