我包裝,其具有負載函數返回一個Value*
對象,它指向Value
對象的動態陣列的C接口:添加的std ::矢量<bool>到容器的Variant
typedef struct Value {
union {
int8_t i8;
int16_t i16;
int32_t i32;
int64_t i64;
bool b;
} value;
} Value_T;
目的在給定的數組中始終是相同的類型。
我的想法是代表本作中,C++如下:
typedef boost::variant<std::vector<bool>, std::vector<int8_t>, std::vector<int16_t>, std::vector<int32_t>, std::vector<int64_t>, std::vector<std::string> > Container;
這是合理的,哪些陷阱我應該知道的?是否有關於如何定義bool的編譯器特定問題?我意識到std :: vector在內部使用位來表示,並且在這方面還有其他問題。
我正在使用C++ 98編譯器。
既然你問「陷阱」,請注意std :: vector首先被打破。見http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2160.html。有關替代方法的討論,請參閱http://stackoverflow.com/questions/670308/alternative-to-vectorbool。 –