我们可以在boost :: shared_ptr中保留char [undetermined_during_compile_time_size]吗?

时间:2011-08-24 13:24:09

标签: c++ pointers boost char shared-ptr

我可以拥有queue<char*> file_queue;但我需要在每个char*之后清理一下。我有一个dinamic变量int buff_length;,它是file_queue中每个字符的长度。它将在创建config之前从queue文件设置一次。所以我想知道 - 是否可以将char[buff_length]保留在一个boost::shared_ptr内以及如何做到这一点?

2 个答案:

答案 0 :(得分:4)

使用boost :: shared_array&lt; ..&gt;,请参阅here了解文档。

答案 1 :(得分:0)

您可以使用shared_array

boost::shared_array<char> ptr(new char[buff_length]);

为什么std::stringstd::vector<char>不适合您的情况?


注意,使用C ++ 11,您可以使用以下内容:

std::unique_ptr<char[]> ptr(new char[buff_length]);

std::unique_ptr有专门处理数组。我错误地认为boost::shared_ptr也做了,但显然这是不正确的。