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.
180 lines
3.8 KiB
C++
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_
|
|
|
|
|
|
|