我想知道是否有一种方法可以以编程方式禁用字符串SSO以使其不使用本地缓冲区来存储短字符串?
由于 SSO 是一项可选优化,因此没有标准方法可以将其关闭。
实际上,您可以仅使用
reserve
std::string str; str.reserve(sizeof(str) + 1);
这似乎至少适用于 gcc,甚至应该可以移植,因为内部缓冲区需要适合字符串。 (直播)