class MyClass {
public:
register_callback(int, void*);
}
typedef boost::shared_ptr<MyClass> myClass_p;
class MyOtherClass {
public:
registerItem(std::pair<std::string, myClass_p>insertItem) {
auto foo = insertItem.second;
void *bar = static_cast<void*>(foo);
}
鑑於上面的代碼,爲什麼會收到「的static_cast:。不能從myClass_p轉換爲void *我想你可以施放任何指針爲void *不能轉換爲void *
'foo'不是指針;它是一個'boost :: shared_ptr'。 –
Justin
@CaptainObvlious我不認爲隱式轉換爲void *'在C++中 – NathanOliver
@NathanOliver這並不完全清楚。我指的是不是'boost :: shared_ptr'的指針。 –