コード例 #1
0
int main()
{
    using boost::get_pointer;

    {
        X * p = new X;
        BOOST_TEST( get_pointer( p ) == p );

        delete p;
    }

#if !defined( BOOST_NO_AUTO_PTR )
    {
        std::auto_ptr< X > p( new X );
        BOOST_TEST( get_pointer( p ) == p.get() );
    }
#endif

#if !defined( BOOST_NO_CXX11_SMART_PTR )

    {
        std::unique_ptr< X > p( new X );
        BOOST_TEST( get_pointer( p ) == p.get() );
    }

    {
        std::shared_ptr< X > p( new X );
        BOOST_TEST( get_pointer( p ) == p.get() );
    }

#endif

    return boost::report_errors();
}
コード例 #2
0
inline void check_value_const ( optional<T> const& opt, T const& v, T const& z )
{
  BOOST_TEST( *opt == v ) ;
  BOOST_TEST( *opt != z ) ;
  BOOST_TEST( opt.get() == v ) ;
  BOOST_TEST( opt.get() != z ) ;
  BOOST_TEST( (*(opt.operator->()) == v) ) ;
  BOOST_TEST( *get_pointer(opt) == v ) ;
}
コード例 #3
0
inline void check_uninitialized_const ( optional<T> const& opt )
{
#ifndef BOOST_OPTIONAL_NO_NULL_COMPARE
  BOOST_TEST( opt == 0 ) ;
#endif
  BOOST_TEST( !opt ) ;
  BOOST_TEST( !get_pointer(opt) ) ;
  BOOST_TEST( !opt.get_ptr() ) ;
}
コード例 #4
0
inline void check_initialized_const ( optional<T> const& opt )
{
  BOOST_CHECK( opt ) ;

#ifndef BOOST_OPTIONAL_NO_NULL_COMPARE
  BOOST_CHECK( opt != 0 ) ;
#endif

  BOOST_CHECK ( !!opt ) ;
  BOOST_CHECK ( get_pointer(opt) ) ;
  BOOST_CHECK ( opt.get_ptr() ) ;
}
コード例 #5
0
void test()
{
    {
        boost::intrusive_ptr<X> px;
        BOOST_TEST(px? false: true);
        BOOST_TEST(!px);

#if defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP)
        using boost::get_pointer;
#endif

        BOOST_TEST(get_pointer(px) == px.get());
    }

    {
        boost::intrusive_ptr<X> px(0);
        BOOST_TEST(px? false: true);
        BOOST_TEST(!px);

#if defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP)
        using boost::get_pointer;
#endif

        BOOST_TEST(get_pointer(px) == px.get());
    }

    {
        boost::intrusive_ptr<X> px(new X);
        BOOST_TEST(px? true: false);
        BOOST_TEST(!!px);
        BOOST_TEST(&*px == px.get());
        BOOST_TEST(px.operator ->() == px.get());

#if defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP)
        using boost::get_pointer;
#endif

        BOOST_TEST(get_pointer(px) == px.get());
    }
}
コード例 #6
0
inline void check_value ( optional<T>& opt, T const& v, T const& z )
{
#if BOOST_WORKAROUND(BOOST_MSVC, <= 1200) // 1200 == VC++ 6.0
  // For some reason, VC6.0 is creating a temporary while evaluating (*opt == v),
  // so we need to turn throw on copy off first.
  reset_throw_on_copy( ARG(T) ) ;
#endif

  BOOST_TEST( *opt == v ) ;
  BOOST_TEST( *opt != z ) ;
  BOOST_TEST( opt.get() == v ) ;
  BOOST_TEST( opt.get() != z ) ;
  BOOST_TEST( (*(opt.operator->()) == v) ) ;
  BOOST_TEST( *get_pointer(opt) == v ) ;

  check_value_const(opt,v,z);
}