我有一些数据类型,如果我使用普通的旧 C,将被实现为
typedef struct {
...many other members here...
unsigned short _size;
char _buf[0];
} my_data;
我想做的,基本上是把它变成一个类,并添加常用的运算符,如less、equal、copy constructor、operator assignment等。正如您可以想象的那样,我将在std::map等关联容器中使用此类作为其key。
我需要缓冲区在理想情况下与对象本身处于同一级别,否则当我必须比较其中两个(缓冲区)时,我会让 CPU 获取指针并将其加载到内存中;我不想使用std::vector因为分配的内存不会与其余的数据成员连续。
对我来说主要问题是在C 语言中我会有一个函数,给定缓冲区的大小,它会为其分配适当的内存大小。在C++中,这样的事情是做不到的。
我对吗?干杯