C++ InputIterator是最有限类型的迭代器概念之一。它只保证支持取消引用、相等比较、前后增量和后增量(以及后增量和取消引用)。因为InputIterator对象经常在任意流上迭代,所以您甚至不能确定对相同输入进行两次迭代会产生相同的值。但是,如果取消引用操作符operator *保证每次取消引用时都返回相同的值,我会感到困惑,前提是您从不增加迭代器。例如,假设std::begin(som
ABI标准中的内存布局相关规范通常只适用于ABI边界,还是也适用于翻译单元,或者如果不是这样,编译器通常会提供这样的附加保证吗?它还指定long double的对齐是16。那么,如果调用C++标准,下面的函数是否具有未定义的行为,可以在System x86 ABI下安全地使用,即使storage数组从未跨翻译单元边界公开?,因为B和A不是标准布局,因此未指定A子对象是否位于与b相同的</em