|
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