
boost-users-bounces@lists.boost.org, le 4 décembre 2007 22:46:
int main(int argc, char **argv){ typedef CRefPtr<CNode> CPNode; typedef std::multimap<std::string, CPNode> TPNodes; TPNodes Children; std::for_each( Children.begin(), Children.end(), boost::bind( &CNode::GetName, // problem in the next line boost::bind(&TPNodes::value_type::second,_1))); return 0; }
I get the following messages from MSVC8.0: error C2784: 'T *boost::get_pointer(const boost::shared_ptr<T> &)' : could not deduce template argument for 'const boost::shared_ptr<T> &' from 'const CPNode' error C2784: 'T *boost::get_pointer(const std::auto_ptr<_Ty> &)' : could not deduce template argument for 'const std::auto_ptr<_Ty> &' from 'const CPNode' error C2784: 'T *boost::get_pointer(T *)' : could not deduce template argument for 'T *' from 'const CPNode'
If I replace CRefPtr with boost::shared_ptr the code compiles.
Hi You probably need boost::get_pointer: http://lists.boost.org/boost-users/2007/09/30745.php HTH, Éric Malenfant --------------------------------------------- Si vous n'allez jamais à l'enterrement des gens, n'espérez pas qu'ils viennent au vôtre. - C. Lemprun