view release on metacpan or search on metacpan
include/boost/lambda/detail/member_ptr.hpp view on Meta::CPAN
// guarantee, that A and B are
// such types, that for objects a and b of corresponding types, a->*b leads
// to the builtin ->* to be called. So types that would end in a call to
// a user defined ->* do not create a member_pointer_caller object.
template<class RET, class A, class B>
class member_pointer_caller {
A a; B b;
public:
member_pointer_caller(const A& aa, const B& bb) : a(aa), b(bb) {}
RET operator()() const { return (a->*b)(); }
template<class A1>
RET operator()(const A1& a1) const { return (a->*b)(a1); }
template<class A1, class A2>
RET operator()(const A1& a1, const A2& a2) const { return (a->*b)(a1, a2); }
template<class A1, class A2, class A3>
include/boost/python/detail/caller.hpp view on Meta::CPAN
template <class F, class CallPolicies, class Sig>
struct caller
: caller_base_select<F,CallPolicies,Sig>::type
{
typedef typename caller_base_select<
F,CallPolicies,Sig
>::type base;
typedef PyObject* result_type;
caller(F f, CallPolicies p) : base(f,p) {}
};
}}} // namespace boost::python::detail
# endif // CALLER_DWA20021121_HPP
#else
# define N BOOST_PP_ITERATION()
include/boost/python/object/py_function.hpp view on Meta::CPAN
virtual PyObject* operator()(PyObject*, PyObject*) = 0;
virtual unsigned min_arity() const = 0;
virtual unsigned max_arity() const;
virtual python::detail::signature_element const* signature() const = 0;
};
template <class Caller>
struct caller_py_function_impl : py_function_impl_base
{
caller_py_function_impl(Caller const& caller)
: m_caller(caller)
{}
PyObject* operator()(PyObject* args, PyObject* kw)
{
return m_caller(args, kw);
}
virtual unsigned min_arity() const
{
return m_caller.min_arity();
}
virtual python::detail::signature_element const* signature() const
{
return m_caller.signature();
}
private:
Caller m_caller;
};
template <class Caller, class Sig>
struct signature_py_function_impl : py_function_impl_base
{
signature_py_function_impl(Caller const& caller)
: m_caller(caller)
{}
PyObject* operator()(PyObject* args, PyObject* kw)
{
return m_caller(args, kw);
}
virtual unsigned min_arity() const
{
return mpl::size<Sig>::value - 1;
}
virtual python::detail::signature_element const* signature() const
{
return python::detail::signature<Sig>::elements();
}
private:
Caller m_caller;
};
template <class Caller, class Sig>
struct full_py_function_impl : py_function_impl_base
{
full_py_function_impl(Caller const& caller, unsigned min_arity, unsigned max_arity)
: m_caller(caller)
, m_min_arity(min_arity)
, m_max_arity(max_arity > min_arity ? max_arity : min_arity)
{}
PyObject* operator()(PyObject* args, PyObject* kw)
{
return m_caller(args, kw);
}
virtual unsigned min_arity() const
{
return m_min_arity;
}
virtual unsigned max_arity() const
{
return m_max_arity;
include/boost/signals/signal_template.hpp view on Meta::CPAN
BOOST_SIGNALS_COMMA_IF_NONZERO_ARGS
typename F>
struct caller {
typedef BOOST_SIGNALS_ARGS_STRUCT<BOOST_SIGNALS_TEMPLATE_ARGS>*
args_type;
args_type args;
typedef R result_type;
caller() {}
caller(args_type a) : args(a) {}
template<typename Pair>
R operator()(const Pair& slot) const
{
F* target = const_cast<F*>(any_cast<F>(&slot.second));
return (*target)(BOOST_SIGNALS_BOUND_ARGS);
}
};
};
include/boost/signals/signal_template.hpp view on Meta::CPAN
BOOST_SIGNALS_COMMA_IF_NONZERO_ARGS
typename F>
struct caller {
typedef BOOST_SIGNALS_ARGS_STRUCT<BOOST_SIGNALS_TEMPLATE_ARGS>*
args_type;
args_type args;
typedef unusable result_type;
caller(args_type a) : args(a) {}
template<typename Pair>
unusable operator()(const Pair& slot) const
{
F* target = const_cast<F*>(any_cast<F>(&slot.second));
(*target)(BOOST_SIGNALS_BOUND_ARGS);
return unusable();
}
};
};
include/boost/test/impl/cpp_main.ipp view on Meta::CPAN
#ifdef BOOST_NO_STDC_NAMESPACE
namespace std { using ::getenv; }
#endif
int cpp_main( int argc, char* argv[] ); // prototype for user's cpp_main()
namespace {
struct cpp_main_caller {
cpp_main_caller( int argc, char** argv ) : m_argc( argc ), m_argv( argv ) {}
int operator()() { return cpp_main( m_argc, m_argv ); }
private:
// Data members
int m_argc;
char** m_argv;
};
} // local namespace
include/boost/test/impl/cpp_main.ipp view on Meta::CPAN
int BOOST_TEST_CALL_DECL main( int argc, char* argv[] )
{
int result;
boost::unit_test::const_string p( std::getenv( "BOOST_TEST_CATCH_SYSTEM_ERRORS" ) );
bool catch_system_errors = p != "no";
try {
::boost::execution_monitor ex_mon;
result = ex_mon.execute( ::boost::unit_test::callback0<int>( cpp_main_caller( argc, argv ) ), catch_system_errors );
if( result == 0 )
result = ::boost::exit_success;
else if( result != ::boost::exit_success ) {
std::cout << "\n**** error return code: " << result << std::endl;
result = ::boost::exit_failure;
}
}
catch( ::boost::execution_exception const& exex ) {
std::cout << "\n**** exception(" << exex.code() << "): " << exex.what() << std::endl;
include/boost/test/impl/test_main.ipp view on Meta::CPAN
// Boost
#include <boost/cstdlib.hpp>
#include <boost/test/detail/suppress_warnings.hpp>
//____________________________________________________________________________//
extern int test_main( int argc, char* argv[] ); // prototype for user's test_main()
struct test_main_caller {
test_main_caller( int argc, char** argv ) : m_argc( argc ), m_argv( argv ) {}
void operator()() {
int test_main_result = test_main( m_argc, m_argv );
// translate a test_main non-success return into a test error
BOOST_CHECK( test_main_result == 0 || test_main_result == boost::exit_success );
}
private:
// Data members
include/boost/test/impl/test_main.ipp view on Meta::CPAN
// ************************************************************************** //
// ************** test main ************** //
// ************************************************************************** //
::boost::unit_test::test_suite*
init_unit_test_suite( int argc, char* argv[] ) {
using namespace ::boost::unit_test;
test_suite* test = BOOST_TEST_SUITE( "Test Program" );
test->add( BOOST_TEST_CASE( test_main_caller( argc, argv ) ) );
return test;
}
//____________________________________________________________________________//
#include <boost/test/detail/enable_warnings.hpp>
// ***************************************************************************
// Revision History :
include/boost/test/minimal.hpp view on Meta::CPAN
report_critical_error( const char* msg, const char* file, int line, const_string func_name, bool is_msg = false )
{
report_error( msg, file, line, func_name, is_msg );
throw boost::execution_aborted();
}
class caller {
public:
// constructor
caller( int argc, char** argv )
: m_argc( argc ), m_argv( argv ) {}
// execution monitor hook implementation
int operator()() { return test_main( m_argc, m_argv ); }
private:
// Data members
int m_argc;
char** m_argv;
}; // monitor
include/boost/test/minimal.hpp view on Meta::CPAN
} // namespace boost
//____________________________________________________________________________//
int BOOST_TEST_CALL_DECL main( int argc, char* argv[] )
{
using namespace boost::minimal_test;
try {
::boost::execution_monitor ex_mon;
int run_result = ex_mon.execute( caller( argc, argv ) );
BOOST_CHECK( run_result == 0 || run_result == boost::exit_success );
}
catch( boost::execution_exception const& exex ) {
if( exex.code() != boost::execution_exception::no_error )
BOOST_ERROR( (std::string( "exception \"" ).
append( exex.what().begin(), exex.what().end() ).
append( "\" caught" ) ).c_str() );
std::cerr << "\n**** Testing aborted.";
}