Boost logo

Boost :

From: Peter Dimov (pdimov_at_[hidden])
Date: 2001-07-11 08:04:03


I have identified the cause of the problem with the boost::bind<R>(f, ...)
notation on MSVC.

Several boost libraries (graph, type_traits) use 'bind' as a name of a
nested class/struct; example from conversion_traits.hpp (included indirectly
from function.hpp):

  struct from_not_void_conversion {
    template <class From, class To>
    struct bind {
      static no_type _m_check(...);
      static yes_type _m_check(To);
    public:
      void foo(); // avoid warning about all members being private
      static From _m_from;
      enum { exists = sizeof( _m_check(_m_from) ) == sizeof(yes_type) };
    };
  };

This confuses MSVC.

I suggest that the 'bind' internal classes be renamed to something less
common, like 'bind_17' (works for me) or 'inner.'

--
Peter Dimov
Multi Media Ltd.

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