boost::shared_ptr void->type type->void
От: Caracrist https://1pwd.org/
Дата: 07.09.09 16:27
Оценка:
Вот этот код кричит как ни пытаюсь, shared_ptr<int> в shared_ptr<void> откастилось, а вот обратно никак...

    boost::shared_ptr<int> g(new int(5));
    boost::shared_ptr<void> f(g);
    boost::shared_ptr<int> g2(f); // error C2664: 'boost::shared_ptr<T>::shared_ptr(const boost::shared_ptr<T> &)' : cannot convert parameter 1 from 'boost::shared_ptr<T>' to 'const boost::shared_ptr<T> &'    
    g = boost::shared_ptr<int>(f); // error C2440: '<function-style-cast>' : cannot convert from 'boost::shared_ptr<T>' to 'boost::shared_ptr<T>'    
    f = boost::shared_ptr<void>(g);
    g = f; // error C2440: '<function-style-cast>' : cannot convert from 'const boost::shared_ptr<T>' to 'boost::shared_ptr<T>'    c:\program files\boost\boost_1_39_0\boost\smart_ptr\shared_ptr.hpp    305

Как это сделать правильно ?
~~~~~
~lol~~
~~~ Single Password Solution
Re: boost::shared_ptr void->type type->void
От: -MyXa- Россия  
Дата: 07.09.09 16:46
Оценка: 2 (1)
boost::static_pointer_cast
Если не поможет, будем действовать током... 600 Вольт (C)
Re: boost::shared_ptr void->type type->void
От: Rakafon Украина http://rakafon.blogspot.com/
Дата: 08.09.09 08:21
Оценка:
Здравствуйте, Caracrist, Вы писали:
C>Вот этот код кричит как ни пытаюсь, shared_ptr<int> в shared_ptr<void> откастилось, а вот обратно никак...
C>Как это сделать правильно ?

Для приведения типов интеллектуальных указателей из boost, используйте boost'овские касты: boost::static_pointer_cast, boost::const_pointer_cast и boost::dynamic_pointer_cast.
"Дайте мне возможность выпускать и контролировать деньги в государстве и – мне нет дела до того, кто пишет его законы." (c) Мейер Ансельм Ротшильд , банкир.
boost smart_ptr shared_ptr cast
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.