Mixins and policies are no longer supported

[SVN r13822]
This commit is contained in:
Douglas Gregor
2002-05-11 15:33:00 +00:00
parent 64b6e85a94
commit 83481662bb
4 changed files with 8 additions and 115 deletions

View File

@ -1,6 +1,6 @@
// Boost.Function library
// Copyright (C) 2001 Doug Gregor (gregod@cs.rpi.edu)
// Copyright (C) 2001-2002 Doug Gregor (gregod@cs.rpi.edu)
//
// Permission to copy, use, sell and distribute this software is granted
// provided this copyright notice appears in all copies.
@ -93,7 +93,7 @@ test_zero_args()
// Invocation and self-assignment
global_int = 0;
v1.set(v1);
v1 = (v1);
v1();
BOOST_TEST(global_int == 5);
@ -152,7 +152,7 @@ test_zero_args()
BOOST_TEST(global_int == 3);
// Assignment to a non-empty function
v2.set(five);
v2 = (five);
// Invocation
global_int = 0;
@ -163,7 +163,7 @@ test_zero_args()
BOOST_TEST(v2.empty());
// Assignment to an empty function from a free function
v2.set(&write_five);
v2 = (&write_five);
BOOST_TEST(v2);
// Invocation

View File

@ -1,6 +1,6 @@
// Boost.Function library
// Copyright (C) 2001 Doug Gregor (gregod@cs.rpi.edu)
// Copyright (C) 2001-2002 Doug Gregor (gregod@cs.rpi.edu)
//
// Permission to copy, use, sell and distribute this software is granted
// provided this copyright notice appears in all copies.
@ -93,7 +93,7 @@ test_zero_args()
// Invocation and self-assignment
global_int = 0;
v1.set(v1);
v1 = (v1);
v1();
BOOST_TEST(global_int == 5);
@ -152,7 +152,7 @@ test_zero_args()
BOOST_TEST(global_int == 3);
// Assignment to a non-empty function
v2.set(five);
v2 = (five);
// Invocation
global_int = 0;
@ -163,7 +163,7 @@ test_zero_args()
BOOST_TEST(v2.empty());
// Assignment to an empty function from a free function
v2.set(BOOST_FUNCTION_TARGET_FIX(&) write_five);
v2 = (BOOST_FUNCTION_TARGET_FIX(&) write_five);
BOOST_TEST(v2);
// Invocation

View File

@ -1,60 +0,0 @@
// Boost.Function library
// Copyright (C) 2001 Doug Gregor (gregod@cs.rpi.edu)
//
// Permission to copy, use, sell and distribute this software is granted
// provided this copyright notice appears in all copies.
// Permission to modify the code and to distribute modified code is granted
// provided this copyright notice appears in all copies, and a notice
// that the code was modified is included with the copyright notice.
//
// This software is provided "as is" without express or implied warranty,
// and with no claim as to its suitability for any purpose.
// For more information, see http://www.boost.org
#define BOOST_INCLUDE_MAIN
#include <boost/test/test_tools.hpp>
#include <cassert>
#include <functional>
#include <boost/function.hpp>
struct id_mixin
{
id_mixin(const id_mixin& rhs) : id(rhs.id) {}
id_mixin& operator=(const id_mixin& rhs){id = rhs.id; return *this;}
id_mixin(int i = 0){ id = i;}
int id;
};
static int do_plus(int x, int y) { return x+y; }
typedef boost::function<int,int,int>::mixin<id_mixin>::type func;
int test_main(int, char*[])
{
func f(id_mixin(3));
f = std::plus<int>();
BOOST_TEST(f.id == 3);
f = &do_plus;
BOOST_TEST(f.id == 3);
f.clear();
f.id = 7;
BOOST_TEST(f.id == 7);
func g(f);
BOOST_TEST(g.id == 7);
f.id = 21;
BOOST_TEST(f.id == 21);
boost::swap(f,g);
BOOST_TEST(f.id == 7);
BOOST_TEST(g.id == 21);
g = f;
BOOST_TEST(g.id == 7);
return 0;
}

View File

@ -1,47 +0,0 @@
// Boost.Function library
// Copyright (C) 2001 Doug Gregor (gregod@cs.rpi.edu)
//
// Permission to copy, use, sell and distribute this software is granted
// provided this copyright notice appears in all copies.
// Permission to modify the code and to distribute modified code is granted
// provided this copyright notice appears in all copies, and a notice
// that the code was modified is included with the copyright notice.
//
// This software is provided "as is" without express or implied warranty,
// and with no claim as to its suitability for any purpose.
// For more information, see http://www.boost.org
#define BOOST_INCLUDE_MAIN
#include <boost/test/test_tools.hpp>
#include <cassert>
#include <iostream>
#include <functional>
#include <boost/function.hpp>
using namespace std;
using namespace boost;
struct counting_policy
{
static int count;
void precall(const function_base*) { count++; }
void postcall(const function_base*) { count+=2; }
};
int counting_policy::count = 0;
int
test_main(int, char*[])
{
function<int, int, int>::policy<counting_policy>::type f;
f = plus<int>();
BOOST_TEST(5 == f(2,3));
BOOST_TEST(counting_policy::count==3);
return 0;
}