【发布时间】:2015-04-23 10:49:54
【问题描述】:
我是 boost 新手,我遇到了 boost 指针。
float *value = new float[9];
value[0] = 5; ...
以上是我最初的c++代码。
我将上面的内容转换为提升共享指针
boost::shared_ptr<float> value (new float);
但是当我尝试添加值时,它给了我错误,我不能使用 operator[]。
我想这太基本了,但我能得到一些关于如何向 boost 指针指向的内存添加值的信息。
【问题讨论】:
-
@iharob 为什么幸运?
-
提升丑陋?它是最受尊敬的 C++ 库之一。 Boost 中的许多东西都进入了标准(例如 shared_ptr),这就是 C++ 社区的权威级别。 Spirit EBNF 语法解析库简直太棒了。
-
这很糟糕,原因有两个。 C++ 现在有一个标准共享点,
std::shared_ptr,所以你应该使用它而不是提升产品。此外,除非您有其他重要原因,否则您应该std::vector或std::array处理“类似数组”的内容。 -
@Bathsheba:这是对权威的诉求。 Boost 的废话和其他任何地方一样多——有时甚至更多。找到进入标准的途径并不是质量的标志 - 请参阅
std::async、std::future、std::thread、std::vector<bool>、u8文字等等。