【发布时间】:2016-01-14 11:43:24
【问题描述】:
我想知道是否有办法以编程方式禁用字符串SSO 以使其不使用本地缓冲区来处理短字符串?
【问题讨论】:
我想知道是否有办法以编程方式禁用字符串SSO 以使其不使用本地缓冲区来处理短字符串?
【问题讨论】:
由于 SSO 是一种可选优化,因此没有标准方法可以将其关闭。
实际上,您可以只reserve 一个不适合 SSO 缓冲区的字符串来强制动态分配缓冲区:
std::string str;
str.reserve(sizeof(str) + 1);
这似乎至少适用于 gcc,甚至应该可以移植,因为内部缓冲区需要适合字符串。 (Live)
【讨论】: