Merge branch 'develop' of github.com:ChaiScript/ChaiScript into develop
This commit is contained in:
commit
0b28603cdc
@ -10,6 +10,9 @@
|
|||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
#define CHAISCRIPT_MSVC _MSC_VER
|
#define CHAISCRIPT_MSVC _MSC_VER
|
||||||
#define CHAISCRIPT_HAS_DECLSPEC
|
#define CHAISCRIPT_HAS_DECLSPEC
|
||||||
|
#if _MSC_VER <= 1800
|
||||||
|
#define CHAISCRIPT_MSVC_12
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(_WIN32) || defined(__CYGWIN__)
|
#if defined(_WIN32) || defined(__CYGWIN__)
|
||||||
|
@ -40,17 +40,25 @@ namespace chaiscript
|
|||||||
template<typename Ret, typename Class, typename ... Args>
|
template<typename Ret, typename Class, typename ... Args>
|
||||||
std::function<Ret (Class &, Args...) > to_function(Ret (Class::*func)(Args...))
|
std::function<Ret (Class &, Args...) > to_function(Ret (Class::*func)(Args...))
|
||||||
{
|
{
|
||||||
|
#ifdef CHAISCRIPT_MSVC_12
|
||||||
/// \todo this std::mem_fn wrap shouldn't be necessary but type conversions for
|
/// \todo this std::mem_fn wrap shouldn't be necessary but type conversions for
|
||||||
/// std::function for member function pointers seems to be broken in MSVC
|
/// std::function for member function pointers seems to be broken in MSVC
|
||||||
return std::function<Ret(Class &, Args...)>(std::mem_fn(func));
|
return std::function<Ret(Class &, Args...)>(std::mem_fn(func));
|
||||||
|
#else
|
||||||
|
return std::function<Ret(Class &, Args...)>(func);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename Ret, typename Class, typename ... Args>
|
template<typename Ret, typename Class, typename ... Args>
|
||||||
std::function<Ret (const Class &, Args...) > to_function(Ret (Class::*func)(Args...) const)
|
std::function<Ret (const Class &, Args...) > to_function(Ret (Class::*func)(Args...) const)
|
||||||
{
|
{
|
||||||
|
#ifdef CHAISCRIPT_MSVC_12
|
||||||
/// \todo this std::mem_fn wrap shouldn't be necessary but type conversions for
|
/// \todo this std::mem_fn wrap shouldn't be necessary but type conversions for
|
||||||
/// std::function for member function pointers seems to be broken in MSVC
|
/// std::function for member function pointers seems to be broken in MSVC
|
||||||
return std::function<Ret (const Class &, Args...)>(std::mem_fn(func));
|
return std::function<Ret(const Class &, Args...)>(std::mem_fn(func));
|
||||||
|
#else
|
||||||
|
return std::function<Ret(const Class &, Args...)>(func);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
template<bool Object>
|
template<bool Object>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user