See this answer for why libC ++ chose forward order. As to why libstdC ++ chose the reverse order, this is probably due to the way it was demonstrated in the Variadics template proposal, and is a more obvious implementation.
Bonus: None. These orderings were stable in both libraries.
Update
libC ++ chose the storage order because:
- It is possible.
- The implementation has good compile time performance.
- It provides libC ++ clients with something intuitive and controlled if they care about the storage order and are ready to depend on it when using libC ++, even though it is not defined.
In short, the libC ++ tuple developer simply felt that storing objects in the order that the client (implicitly) indicated the quality to be done.
Howard Hinnant Dec 27 '14 at 1:39 2014-12-27 01:39
source share