Может кто-нибудь объяснить мне, почему функция offsetof
не работает на STD :: векторов, как показано ниже:Offsetof Функция с станд :: вектор
#include <windows.h>
#include <iostream>
#include <vector>
using namespace std;
struct FooStruct {
double x;
double y[10];
std::vector<double> z;
};
int main() {
cout << offsetof(FooStruct, x) << endl;
cout << offsetof(FooStruct, y[2]) << endl;
cout << offsetof(FooStruct, z[2]) << endl;
system("Pause");
}
Вызов offsetof(FooStruct, z[2])
производит следующее сообщение об ошибке компиляции:
cannot apply 'offsetof' when 'operator[]' is overloaded
ошибка кажется довольно ясным. – chris