The following code:
CS_VALUE_TYPE class DLL_API value_type {
public:
std::string string_member;
};
does not generate a default constructor on the C# side of things, meaning it is impossible to initialize the object correctly and causing uninitialized memory reads after a write.
See #1730 for usecase.