Tuple DIP
Atila Neves
atila.neves at gmail.com
Tue Jan 23 11:04:33 UTC 2018
On Sunday, 14 January 2018 at 18:17:38 UTC, Timon Gehr wrote:
> On 14.01.2018 19:14, Timothee Cour wrote:
>> actually I just learned that indeed sizeof(typeof(tuple()))=1,
>> but why
>> is that? (at least for std.typecons.tuple)
>> maybe worth mentioning that in the DIP (with rationale)
>
> It's inherited from C, where all struct instances have size at
> least 1. (Such that each of them has a distinct address.)
Inherited from C++. In C empty structs have size 0. This caused
me all sorts of problems when importing C headers from C++ in
funky codebases.
foo.c:
#include <stdio.h>
struct Foo {};
int main() {
printf("%zu\n", sizeof(struct Foo));
return 0;
}
% clear && gcc foo.c && ./a.out
0
% clear && gcc -xc++ foo.c && ./a.out
1
Atila
More information about the Digitalmars-d
mailing list