我有一个std::array>,n>,并且我有一些方法可以作为不同类型访问此缓冲区的部分,我希望使用std::span>。
std::array>,n>
std::span>
有没有一种方法可以在不调用UB的情况下构造这样的跨度?
不,这是不可能的:无论将void*转换为t*的能力如何,您都无法将void*(指向第一个指针的指针)转换为t*,因为那里没有实际的t*对象,并且您当然无法将任何不同的a和b的std::shared_ptr*转换为std::shared_ptr*-
void*
t*
a
b
std::shared_ptr*