нужно определить на этапе компиляции, что тип передаваемых данных std::string или std::vector<POD_type> или std::vector<integral_type>.
Это нужно, чтоб можно было бы писать, например, в файл данные как буфер.
З.Ы. Хотя std::string не гарантирует этого, но вроде реализация в MSVC как раз располагает в непрерывной памяти