【发布时间】:2020-10-25 15:17:51
【问题描述】:
我有一个std::array<std::shared_ptr<void>, N>,我有方法可以将这个缓冲区的一部分作为不同的类型访问,我想使用std::span<std::shared_ptr<T>>。
有没有办法在不调用 UB 的情况下构建这样的跨度?
【问题讨论】:
-
如果我理解正确,是的,它应该可以工作。你试过了吗?它奏效了吗?如果没有,您能否发布您尝试过的完整代码,以及哪些不起作用?
-
@JohnZwinck 看起来我可以用整个数组构造跨度,但不能使用迭代器/大小组合。我想我可以使用 subspan() ,所以这可能会起作用。我通常仍然无法编译 C++20,所以我还不能比我的 IDE 告诉我的更进一步测试
标签: c++ shared-ptr c++20 std-span