我有,如果我使用普通的舊的C,將實現爲是否可以使用零長度數組成員編寫「完整」C++類?
typedef struct {
...many other members here...
unsigned short _size;
char _buf[0];
} my_data;
我想怎麼辦,是一些數據類型基本上做出一個類並添加通常的運營商如少,平等,拷貝構造函數,運營商分配,等等。正如你可以想象的那樣,我會在關聯容器中使用類,例如std :: map,因爲它的鍵。我需要緩衝區理想地位於對象本身的相同級別,否則當我必須比較它們中的兩個(緩衝區)時,我會讓CPU取指針並將其加載到內存中;我不想使用std :: vector,因爲分配的內存不會與其餘數據成員連續。
對我來說主要問題是,在C我會有一個函數,考慮到緩衝區的大小會爲它分配適當的內存大小。在C++這樣的事情是不能做到的。
我對不對? 乾杯
零數組長度數組成員在C++中無效,因此標題中問題的答案爲「否」。 – 2012-08-10 07:29:51
理論上 - 沒有。實際上 - 是的,這絕對沒有問題 – valdo 2012-08-10 07:30:39
'_buf'的目的是什麼?也許你可以使用一些標準容器來代替? – 2012-08-10 07:32:25