C++ C++;将std::string调整为最大16字节

C++ C++;将std::string调整为最大16字节,c++,stdstring,C++,Stdstring,我正在将MSVC6应用程序移植到MSVC9,因为std::string的旧大小是16字节(这一个来自1998年的软件包),而新大小是32字节,这完全使我的应用程序无法工作,因为它是使用4字节对齐选项构建的,并且使用一些与旧大小兼容的大小检查/比较 我需要重新实现这个MSVC6std::string。。。或者只使用一些较小的字符串实现 是否可以使std::string的当前大小变小,例如通过使用不同的分配器或其他方法?我需要让它工作 //MSVC6 Works //MSVC9 Not... cla

我正在将MSVC6应用程序移植到MSVC9,因为
std::string
的旧大小是16字节(这一个来自1998年的软件包),而新大小是32字节,这完全使我的应用程序无法工作,因为它是使用4字节对齐选项构建的,并且使用一些与旧大小兼容的大小检查/比较

我需要重新实现这个MSVC6
std::string
。。。或者只使用一些较小的字符串实现

是否可以使
std::string
的当前大小变小,例如通过使用不同的分配器或其他方法?我需要让它工作

//MSVC6 Works
//MSVC9 Not...
class myappstring : std::string
{

};

默认分配器未存储在
std::string
实例中,因此它不会对
std::string
s的大小产生任何影响。您只需切换到另一个字符串实现,可能是为了满足您的需求而编写的实现。

我会扔掉旧代码……如果std::string的大小确实存在问题,您将不得不使用某种替换。但更理想的是,我认为一个程序永远不应该以一种重要的方式编写。@TheUndeadFish事实上,甚至连序列化程序都不应该:D