Не могу понять, почему в указанном коде не работает последняя строка. Ведь при преобразовании должен использоваться operator data::pcursor_maker_t()?
typedef boost::shared_ptr<class data::cursor_maker> pcursor_maker_t;
data::pcursor_maker_ref ref=collection_.access();
data::pcursor_maker_t maker1 = ref.operator data::pcursor_maker_t(); // ок
data::pcursor_maker_t maker2 = (data::pcursor_maker_t)ref;
//error C2440: 'type cast' : cannot convert from 'class data::pcursor_maker_ref' to
//'class boost::shared_ptr<class data::cursor_maker>'
// No constructor could take the source type, or constructor overload resolution was ambiguous
ЗЫЖ VC6.0
... << RSDN@Home 1.1.4 beta 3 rev. 185>>