【发布时间】:2020-01-06 08:55:40
【问题描述】:
我检查了所有主要的编译器,sizeof(std::tuple<int, char, int, char>) 对它们来说都是 16。大概他们只是将元素按顺序放入元组中,因此由于对齐而浪费了一些空间。
如果元组内部存储的元素如:int, int, char, char,那么它的 sizeof 可能是 12。
实现是否有可能做到这一点,还是被标准中的某些规则禁止?
【问题讨论】:
-
评论不用于扩展讨论;这个对话是moved to chat。
-
@phuclv:
struct和tuple之间有很大区别 => 一个是语言结构,另一个是库类型。你为什么认为他们必须遵守同样的规则? -
@MatthieuM。我在哪里说过他们遵守相同的规则?
-
@phuclv:那么相关问题的意义何在?如果它们遵循不同的规则,那么查看 struct 的规则也无济于事。
标签: c++ tuples language-lawyer padding