将
std::is_empty<std::tuple<Args...>>::value
如果Args
中的每个类型都为空,则返回true? gcc 4.9中的快速测试表明情况确实如此,但标准是否需要?
答案 0 :(得分:6)
不,没有要求tuple
使用继承来启用空基类优化。
元组库的唯一文本规范是:
本小节描述了一个元组库,它提供了一个元组类型作为可以的类模板元组 用任意数量的参数实例化。每个模板参数指定元素的类型 在元组中。因此,元组是异构的,固定大小的值集合。实例化 具有两个参数的元组类似于具有相同两个参数的对的实例化。
没有提及任何实施细节;并且模板规范开始:
template <class... Types>
class tuple {
没有指定它必须从任何东西继承。