mirror of
https://github.com/mat007/turtle.git
synced 2026-06-22 12:13:43 +00:00
Refactoring to prevent ADL to pick up operator== for map iterators with certain compilers
git-svn-id: https://svn.code.sf.net/p/turtle/code/trunk@442 860be788-9bd5-4423-9f1e-828f051e677b
This commit is contained in:
parent
1324ad0a35
commit
966c415953
4 changed files with 12 additions and 9 deletions
|
|
@ -18,10 +18,10 @@
|
||||||
|
|
||||||
namespace mock
|
namespace mock
|
||||||
{
|
{
|
||||||
class verifiable;
|
|
||||||
|
|
||||||
namespace detail
|
namespace detail
|
||||||
{
|
{
|
||||||
|
class verifiable;
|
||||||
|
|
||||||
class context : boost::noncopyable
|
class context : boost::noncopyable
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
|
||||||
|
|
@ -139,7 +139,7 @@ namespace mock
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
class function_impl : public verifiable
|
class function_impl : public detail::verifiable
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef MOCK_ERROR_POLICY< result_type > error_type;
|
typedef MOCK_ERROR_POLICY< result_type > error_type;
|
||||||
|
|
|
||||||
|
|
@ -33,10 +33,10 @@ namespace mock
|
||||||
{}
|
{}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
class object_impl : public detail::context, private verifiable
|
class object_impl : public detail::context, private detail::verifiable
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual void add( const void* /*p*/, verifiable& v,
|
virtual void add( const void* /*p*/, detail::verifiable& v,
|
||||||
boost::unit_test::const_string instance,
|
boost::unit_test::const_string instance,
|
||||||
const boost::optional< detail::type_name >& type,
|
const boost::optional< detail::type_name >& type,
|
||||||
boost::unit_test::const_string name )
|
boost::unit_test::const_string name )
|
||||||
|
|
@ -45,11 +45,11 @@ namespace mock
|
||||||
mock::detail::root.add( *this );
|
mock::detail::root.add( *this );
|
||||||
children_[ &v ].update( parent_, instance, type, name );
|
children_[ &v ].update( parent_, instance, type, name );
|
||||||
}
|
}
|
||||||
virtual void add( verifiable& v )
|
virtual void add( detail::verifiable& v )
|
||||||
{
|
{
|
||||||
group_.add( v );
|
group_.add( v );
|
||||||
}
|
}
|
||||||
virtual void remove( verifiable& v )
|
virtual void remove( detail::verifiable& v )
|
||||||
{
|
{
|
||||||
group_.remove( v );
|
group_.remove( v );
|
||||||
children_.erase( &v );
|
children_.erase( &v );
|
||||||
|
|
@ -58,7 +58,7 @@ namespace mock
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void serialize( std::ostream& s,
|
virtual void serialize( std::ostream& s,
|
||||||
const verifiable& v ) const
|
const detail::verifiable& v ) const
|
||||||
{
|
{
|
||||||
children_cit it = children_.find( &v );
|
children_cit it = children_.find( &v );
|
||||||
if( it != children_.end() )
|
if( it != children_.end() )
|
||||||
|
|
@ -77,7 +77,7 @@ namespace mock
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
typedef std::map< const verifiable*, detail::child > children_t;
|
typedef std::map< const detail::verifiable*, detail::child > children_t;
|
||||||
typedef children_t::const_iterator children_cit;
|
typedef children_t::const_iterator children_cit;
|
||||||
|
|
||||||
detail::group group_;
|
detail::group group_;
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,8 @@
|
||||||
#include <boost/noncopyable.hpp>
|
#include <boost/noncopyable.hpp>
|
||||||
|
|
||||||
namespace mock
|
namespace mock
|
||||||
|
{
|
||||||
|
namespace detail
|
||||||
{
|
{
|
||||||
class verifiable : private boost::noncopyable
|
class verifiable : private boost::noncopyable
|
||||||
{
|
{
|
||||||
|
|
@ -25,5 +27,6 @@ namespace mock
|
||||||
virtual void reset() = 0;
|
virtual void reset() = 0;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endif // MOCK_VERIFIABLE_HPP_INCLUDED
|
#endif // MOCK_VERIFIABLE_HPP_INCLUDED
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue