Is it possible in theory to have a memory efficient STL (and/or Boost) vector of strings using some allocators such that:
using String = std::basic_string<char, std::char_traits<char>, SomeAllocMaybe;
using Vector = std::vector<String, SomeOtherAllocMaybe>;
Vector vec( /* an allocator eventually */ );
vec.emplace_back("first string longer than SSO");
vec.emplace_back("second string");
vec.emplace_back("third string longer than SSO");
Will result in having in memory only one compact contiguous block of data like this:
"first string longer than SSO'\0'second string'\0'third string longer than SSO'\0'"
vec[1].append("boom")?std::string;)