30#ifndef SC_DYNAMIC_PROCESSES_H
31#define SC_DYNAMIC_PROCESSES_H
41using namespace std::placeholders;
46template<
typename F,
typename... Args>
48 ->
decltype( std::bind( std::forward<F>(f), std::forward<Args>(args)... ) )
49 {
return std::bind( std::forward<F>(f), std::forward<Args>(args)... ); }
51template<
typename R,
typename F,
typename... Args>
53 ->
decltype( std::bind<R>( std::forward<F>(f), std::forward<Args>(args)... ) )
54 {
return std::bind<R>( std::forward<F>(f), std::forward<Args>(args)... ); }
58 {
return std::ref( std::forward<T>(v) ); }
62 {
return std::cref( std::forward<T>(v) ); }
68#if ! (defined(SC_BIND_IN_GLOBAL_NAMESPACE) && SC_BIND_IN_GLOBAL_NAMESPACE == 0)
auto sc_bind(F &&f, Args &&... args) -> decltype(std::bind(std::forward< F >(f), std::forward< Args >(args)...))