如何将 std::string 内容克隆到新的 char[] 数组

How do I clone std::string contents to a new char[] array

给定一个 std::string,我如何简明扼要地(即单个 line/function 调用)分配一个可用 delete[] 大小合适的 char 数组,并将字符串的内容克隆到字符数组作为空终止字符串?

我能做到:

m_name = new char[name.size() + 1];
(void)name.copy(m_name, name.size());
m_name[name.size()] = '[=11=]';

但是不够简洁。我真正需要的是这样的功能:

size_type std::basic_string::clone(CharT** dest);
CharT* std::basic_string::clone();

据我所知,这不存在。

我曾经工作过的一家公司实现了他们自己的标准库,其中包括一个 strnewdup() 函数,它的工作方式与 strdup() 相同,但使用 new,以避免代码重复。类似的东西可以正常工作,但我在标准 C++ 库中找不到任何对类似东西的引用。

我更喜欢只使用标准 C++ 库的解决方案,而不是像 Boost 或编写我自己的代码的解决方案。

C++ 库没有实现所需的功能。

无赖。