struct Data {
int a;
std::string b;
float c;
};
std::string* allocateDataAndGetString() {
Data* dataPtr(someAllocator.allocate<Data>());
return &dataPtr.b;
}
Data* getBaseDataPtrFromString(std::string* mStringMember) {
// ???
}
int main() {
std::string* stringPtr(allocateDataAndGetString());
Data* dataPtr(getBaseDataPtrFromString
}
我Data
在堆上分配了一个实例,以及一个指向其std::string b;
成员的指针。如何Data
以标准方式获取字符串所属实例的基地址,同时考虑偏移和填充?
我试过从指针中减去sizeof(int)
和,但我无法让它工作。std::offsetof(Data, std::string)
std::string*