You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
concurrentqueue/benchmarks/dlib/member_function_pointer/make_mfp.h

180 lines
3.8 KiB
C++

// Copyright (C) 2011 Davis E. King (davis@dlib.net)
// License: Boost Software License See LICENSE.txt for the full license.
#ifndef DLIB_MAKE_MFp_H_
#define DLIB_MAKE_MFp_H_
#include "member_function_pointer_kernel_1.h"
#include "make_mfp_abstract.h"
namespace dlib
{
// ----------------------------------------------------------------------------------------
template <
typename T
>
member_function_pointer<> make_mfp (
T& object,
void (T::*cb)()
)
{
member_function_pointer<> temp;
temp.set(object, cb);
return temp;
}
template <
typename T
>
member_function_pointer<> make_mfp (
const T& object,
void (T::*cb)()const
)
{
member_function_pointer<> temp;
temp.set(object, cb);
return temp;
}
// ----------------------------------------------------------------------------------------
template <
typename T,
typename A1
>
member_function_pointer<A1> make_mfp (
T& object,
void (T::*cb)(A1)
)
{
member_function_pointer<A1> temp;
temp.set(object, cb);
return temp;
}
template <
typename T,
typename A1
>
member_function_pointer<A1> make_mfp (
const T& object,
void (T::*cb)(A1)const
)
{
member_function_pointer<A1> temp;
temp.set(object, cb);
return temp;
}
// ----------------------------------------------------------------------------------------
template <
typename T,
typename A1,
typename A2
>
member_function_pointer<A1,A2> make_mfp (
T& object,
void (T::*cb)(A1,A2)
)
{
member_function_pointer<A1,A2> temp;
temp.set(object, cb);
return temp;
}
template <
typename T,
typename A1,
typename A2
>
member_function_pointer<A1,A2> make_mfp (
const T& object,
void (T::*cb)(A1,A2)const
)
{
member_function_pointer<A1,A2> temp;
temp.set(object, cb);
return temp;
}
// ----------------------------------------------------------------------------------------
template <
typename T,
typename A1,
typename A2,
typename A3
>
member_function_pointer<A1,A2,A3> make_mfp (
T& object,
void (T::*cb)(A1,A2,A3)
)
{
member_function_pointer<A1,A2,A3> temp;
temp.set(object, cb);
return temp;
}
template <
typename T,
typename A1,
typename A2,
typename A3
>
member_function_pointer<A1,A2,A3> make_mfp (
const T& object,
void (T::*cb)(A1,A2,A3)const
)
{
member_function_pointer<A1,A2,A3> temp;
temp.set(object, cb);
return temp;
}
// ----------------------------------------------------------------------------------------
template <
typename T,
typename A1,
typename A2,
typename A3,
typename A4
>
member_function_pointer<A1,A2,A3,A4> make_mfp (
T& object,
void (T::*cb)(A1,A2,A3,A4)
)
{
member_function_pointer<A1,A2,A3,A4> temp;
temp.set(object, cb);
return temp;
}
template <
typename T,
typename A1,
typename A2,
typename A3,
typename A4
>
member_function_pointer<A1,A2,A3,A4> make_mfp (
const T& object,
void (T::*cb)(A1,A2,A3,A4)const
)
{
member_function_pointer<A1,A2,A3,A4> temp;
temp.set(object, cb);
return temp;
}
// ----------------------------------------------------------------------------------------
}
#endif // DLIB_MAKE_MFp_H_