Mangle the names of internal classes so they're less likely to conflict with derived class names and members.

Fixes #4453.

[SVN r64251]
This commit is contained in:
John Maddock
2010-07-22 10:29:49 +00:00
parent 4588039349
commit c9406a97fe

View File

@ -37,37 +37,37 @@ template<typename Base, typename Derived>
struct is_virtual_base_of_impl<Base, Derived, mpl::true_>
{
#ifdef __BORLANDC__
struct X : public virtual Derived, public virtual Base
struct boost_type_traits_internal_struct_X : public virtual Derived, public virtual Base
{
X();
X(const X&);
X& operator=(const X&);
~X()throw();
boost_type_traits_internal_struct_X();
boost_type_traits_internal_struct_X(const boost_type_traits_internal_struct_X&);
boost_type_traits_internal_struct_X& operator=(const boost_type_traits_internal_struct_X&);
~boost_type_traits_internal_struct_X()throw();
};
struct Y : public virtual Derived
struct boost_type_traits_internal_struct_Y : public virtual Derived
{
Y();
Y(const Y&);
Y& operator=(const Y&);
~Y()throw();
boost_type_traits_internal_struct_Y();
boost_type_traits_internal_struct_Y(const boost_type_traits_internal_struct_Y&);
boost_type_traits_internal_struct_Y& operator=(const boost_type_traits_internal_struct_Y&);
~boost_type_traits_internal_struct_Y()throw();
};
#else
struct X : Derived, virtual Base
struct boost_type_traits_internal_struct_X : Derived, virtual Base
{
X();
X(const X&);
X& operator=(const X&);
~X()throw();
boost_type_traits_internal_struct_X();
boost_type_traits_internal_struct_X(const boost_type_traits_internal_struct_X&);
boost_type_traits_internal_struct_X& operator=(const boost_type_traits_internal_struct_X&);
~boost_type_traits_internal_struct_X()throw();
};
struct Y : Derived
struct boost_type_traits_internal_struct_Y : Derived
{
Y();
Y(const Y&);
Y& operator=(const Y&);
~Y()throw();
boost_type_traits_internal_struct_Y();
boost_type_traits_internal_struct_Y(const boost_type_traits_internal_struct_Y&);
boost_type_traits_internal_struct_Y& operator=(const boost_type_traits_internal_struct_Y&);
~boost_type_traits_internal_struct_Y()throw();
};
#endif
BOOST_STATIC_CONSTANT(bool, value = (sizeof(X)==sizeof(Y)));
BOOST_STATIC_CONSTANT(bool, value = (sizeof(boost_type_traits_internal_struct_X)==sizeof(boost_type_traits_internal_struct_Y)));
};
template<typename Base, typename Derived>