diff --git a/test/stateless_test.cpp b/test/stateless_test.cpp new file mode 100644 index 0000000..91a4b7d --- /dev/null +++ b/test/stateless_test.cpp @@ -0,0 +1,47 @@ +// 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 +#include +#include + +struct stateless_integer_add { + int operator()(int x, int y) const { return x+y; } + + void* operator new(std::size_t, stateless_integer_add*) + { + throw std::runtime_error("Cannot allocate a stateless_integer_add"); + } + + void operator delete(void*, stateless_integer_add*) + { + } +}; + +namespace boost { + template<> + struct is_stateless { + BOOST_STATIC_CONSTANT(bool, value = true); + }; +} + +int test_main(int, char*[]) +{ + boost::function f; + f = stateless_integer_add(); + + return 0; +}