$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
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.