#include <string>
#include <vector>
#include <memory>
using namespace std;
struct ore : public string {};
static_assert(sizeof(ore) == sizeof(string), "");
int main()
{
vector<string> v;
v.emplace_back();
auto &&aho = allocator_traits<decltype(v.get_allocator())>::rebind_alloc<ore>{};
v[0].~string();
aho.construct(&v[0]); // expecting SSO.
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPG1lbW9yeT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBvcmUgOiBwdWJsaWMgc3RyaW5nIHt9OwpzdGF0aWNfYXNzZXJ0KHNpemVvZihvcmUpID09IHNpemVvZihzdHJpbmcpLCAiIik7CgppbnQgbWFpbigpCnsKCXZlY3RvcjxzdHJpbmc+IHY7Cgl2LmVtcGxhY2VfYmFjaygpOwoKCWF1dG8gJiZhaG8gPSBhbGxvY2F0b3JfdHJhaXRzPGRlY2x0eXBlKHYuZ2V0X2FsbG9jYXRvcigpKT46OnJlYmluZF9hbGxvYzxvcmU+e307Cgl2WzBdLn5zdHJpbmcoKTsKCWFoby5jb25zdHJ1Y3QoJnZbMF0pOyAvLyBleHBlY3RpbmcgU1NPLgp9Cg==