Dea*_*ean 2 c++ arrays sizeof c++11 c++14
看起来这个代码工作(所以它编译得很好),我在这里问的是:它是否保证sizeof(std :: array)与sizeof(equivalent_Carray)相同?
struct MyClass {
std::array<float, 4> arr;
float carr[4];
std::array<float, 4> cfunction() {
std::array<float, sizeof(carr) / sizeof(float)> out;
return out;
}
std::array<float, 4> function() {
// Is this guaranteed to be the same as sizeof(carr) / sizeof(float)??
std::array<float, sizeof(arr) / sizeof(float)> out;
std::cout << sizeof(arr);
return out;
}
};
int main()
{
MyClass obj;
obj.function();
}
Run Code Online (Sandbox Code Playgroud)
没有.
我们得到的唯一保证std::array<T, N>是:
size()是N;&a[n] == &a[0] + n为了所有人0 <= n < N;数组是可以使用语法初始化的聚合(8.5.1)
array<T, N> a = { initializer-list };
Run Code Online (Sandbox Code Playgroud)没有什么可以阻止实现者添加一个尾随成员,虽然我知道没有理由为什么会这样做.
| 归档时间: |
|
| 查看次数: |
744 次 |
| 最近记录: |