Boost logo

Boost :

From: Peter Dimov (pdimov_at_[hidden])
Date: 2004-02-24 08:19:47


I've taken the liberty to apply the following patch to
boost/lambda/detail/operator_return_type_traits.hpp:

*** 19,24 ****
--- 19,26 ----
  #include "boost/lambda/detail/is_instance_of.hpp"
  #include "boost/type_traits/same_traits.hpp"

+ #include "boost/indirect_reference.hpp"
+
  #include <cstddef> // needed for the ptrdiff_t
  #include <iosfwd> // for istream and ostream

***************
*** 221,227 ****

    // A is a nonreference type
  template <class A> struct contentsof_type {
! typedef typename std::iterator_traits<A>::reference type;
  };

    // this is since the nullary () in lambda_functor is always instantiated
--- 223,229 ----

    // A is a nonreference type
  template <class A> struct contentsof_type {
! typedef typename boost::indirect_reference<A>::type type;
  };

    // this is since the nullary () in lambda_functor is always instantiated

This (hopefully) makes *_1 work for smart pointers.

Feel free to revert the patch if it breaks something; I don't have a full
regression test system set up.

--
Peter Dimov
http://www.pdimov.com

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk