C std::string . , , , std::string . , , , , .
class my_class {
std::string data() const { return self._data; }
const char* data_as_c_str() const
{ return self._data; }
private:
int _type;
char _data[1];
};
. : _data , , factory . IIRC, C99 :
struct my_struct {
int type;
char data[];
};
++. ( ++ 11?)
, , factory, , factory my_class - . operator= .
, , .
, , , char , . ,
class structured_data_reference {
public:
structured_data_reference(const char *data):_data(data) {}
std::string get_first_field() const {
}
private:
const char *_data;
};
(, - ). (, std::shared_ptr) , .
- std::string, ( ). , .