比方說,我有以下幾種類型:const正確性和shared_ptr的轉換
using pointer = std::shared_ptr<MyType>;
using pointer_to_const = std::shared_ptr<const MyType>;
現在,如果我有一段代碼如下所示:
void fun(pointer_to_const ptr);
pointer myObj = SomeFactoryMethod();
fun(myObj);
有pointer
和pointer_to_const
之間的自動轉換?如果有,在此轉換期間是否會複製底層的MyType
對象?
因爲,如果有一個的轉換,而且也沒有拷貝,則在多線程上下文另一個線程可以使用原始myObj
指針修改基礎對象,從而違反其由fun
預期const
。