根据http://flamingdangerzone.com/cxx11/2012/07/06/optimal-tuple-i.html,关于std :: tuple ......
libstdc ++总是以相反的顺序放置成员,而libc ++总是按照给定的顺序放置成员
假设这是真的,是否存在(历史或其他)libstdc ++使用逆序的原因?
奖励:是否有任何实现因任何原因改变了它的std :: tuple顺序?
答案 0 :(得分:11)
请参阅this answer了解libc ++选择转发订单的原因。至于为什么libstdc ++选择了逆向顺序,这可能是因为它在变量模板提案中的表现方式,并且是更明显的实现。
奖金:不。这两个图书馆的订单都很稳定。
<强>更新强>
libc ++选择了转发存储顺序,因为:
简而言之,libc ++ tuple
的实现者只是觉得按照客户端(隐式)指定的顺序存储对象是件好事。