This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: hashtable local iterator
On Mon, 19 Dec 2011, Jonathan Wakely wrote:
If you use std::tuple to store the members it will automatically use
EBO if possible.
If two types might be the same use std::tuple<X,Y,X> where X might be
empty and Y is not empty, that ensures the two X objects will not have
the same address so can have zero size.
I just tried this:
#include <iostream>
#include <tuple>
struct A{};
int main(){
std::cout << sizeof(std::tuple<A,A,int>) << std::endl;
std::cout << sizeof(std::tuple<A,int,A>) << std::endl;
std::cout << sizeof(std::tuple<int,A,A>) << std::endl;
}
and it output 8, 8 and 4.
(if I have more than 4 A at the end, the size will increase)
--
Marc Glisse