summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/function/test/mem_fun_cxx98.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/boost/libs/function/test/mem_fun_cxx98.cpp')
-rw-r--r--src/boost/libs/function/test/mem_fun_cxx98.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/boost/libs/function/test/mem_fun_cxx98.cpp b/src/boost/libs/function/test/mem_fun_cxx98.cpp
new file mode 100644
index 000000000..927403631
--- /dev/null
+++ b/src/boost/libs/function/test/mem_fun_cxx98.cpp
@@ -0,0 +1,45 @@
+// Function library
+
+// Copyright (C) 2001-2003 Douglas Gregor
+
+// Use, modification and distribution is subject to the Boost Software
+// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+// For more information, see http://www.boost.org/
+
+
+#include <boost/function.hpp>
+#include <boost/core/lightweight_test.hpp>
+#include <iostream>
+#include <functional>
+
+struct Y {
+ Y(int y = 0) : y_(y) {}
+ bool operator==(const Y& rhs) { return y_ == rhs.y_; }
+private:
+ int y_;
+ };
+
+struct X {
+ int foo(int);
+ Y& foo2(Y&) const;
+};
+int X::foo(int x) { return -x; }
+Y& X::foo2(Y& x) const { return x; }
+
+int main()
+{
+ boost::function<int (X*, int)> f;
+ boost::function<Y& (X*, Y&)> f2;
+ Y y1;
+
+ f = &X::foo;
+ f2 = &X::foo2;
+
+ X x;
+ BOOST_TEST(f(&x, 5) == -5);
+ BOOST_TEST(f2(&x, boost::ref(y1)) == y1);
+
+ return ::boost::report_errors();
+}