1//
2// bind_ref_test.cpp - reference_wrapper
3//
4// Copyright (c) 2009 Peter Dimov
5//
6// Distributed under the Boost Software License, Version 1.0.
7// See accompanying file LICENSE_1_0.txt or copy at
8// http://www.boost.org/LICENSE_1_0.txt
9//
10
11#include <boost/bind/bind.hpp>
12#include <boost/ref.hpp>
13#include <boost/core/lightweight_test.hpp>
14
15using namespace boost::placeholders;
16
17//
18
19struct X
20{
21 int f( int x )
22 {
23 return x;
24 }
25
26 int g( int x ) const
27 {
28 return -x;
29 }
30};
31
32int main()
33{
34 X x;
35
36 BOOST_TEST( boost::bind( &X::f, _1, 1 )( boost::ref( x ) ) == 1 );
37 BOOST_TEST( boost::bind( &X::g, _1, 2 )( boost::cref( x ) ) == -2 );
38
39 return boost::report_errors();
40}
41

source code of boost/libs/bind/test/bind_ref_test.cpp