给定std::string
,我如何简洁地(即单行/函数调用)分配一个可用适当大小的delete[]
可用的char数组,并将字符串的内容克隆到char数组中null终止字符串?
我可以这样做:
m_name = new char[name.size() + 1];
(void)name.copy(m_name, name.size());
m_name[name.size()] = '\0';
但它并不简洁。我真正需要的是一个像:
这样的功能size_type std::basic_string::clone(CharT** dest);
CharT* std::basic_string::clone();
就我所见,这根本不存在。
我曾经工作过的公司实施了自己的标准库,其中包含strnewdup()
函数,其工作方式与strdup()
类似,但使用new
,以避免代码重复。这样的东西可以正常工作,但我在标准C ++库中找不到类似的东西。
我更喜欢只使用标准C ++库而不是Boost或编写自己的代码的解决方案。
答案 0 :(得分:0)
C ++库未实现所需的功能。
糟糕,