提问者:小点点

从数组<shared_ptr<void>>构造SPAN<shared_ptr<t>>[关闭]


我有一个std::array>,n>,并且我有一些方法可以作为不同类型访问此缓冲区的部分,我希望使用std::span>

有没有一种方法可以在不调用UB的情况下构造这样的跨度?


共1个答案

匿名用户

不,这是不可能的:无论将void*转换为t*的能力如何,您都无法将void*(指向第一个指针的指针)转换为t*,因为那里没有实际的t*对象,并且您当然无法将任何不同的abstd::shared_ptr*转换为std::shared_ptr*-