From 53108463dfc4541901253d5d7ff938c6a2a7612d Mon Sep 17 00:00:00 2001 From: Jason Turner Date: Sat, 10 Sep 2011 10:19:55 -0600 Subject: [PATCH] Move from boost::bind to std::bind --- include/chaiscript/dispatchkit/bind_first.hpp | 10 +++---- include/chaiscript/dispatchkit/bootstrap.hpp | 6 ++--- include/chaiscript/dispatchkit/boxed_cast.hpp | 6 ++--- .../dispatchkit/boxed_cast_helper.hpp | 1 - .../chaiscript/dispatchkit/boxed_value.hpp | 3 --- .../chaiscript/dispatchkit/dispatchkit.hpp | 1 - .../chaiscript/dispatchkit/function_call.hpp | 3 --- .../dispatchkit/function_call_detail.hpp | 7 ++--- .../dispatchkit/proxy_constructors.hpp | 3 --- .../dispatchkit/proxy_functions.hpp | 1 - .../dispatchkit/proxy_functions_detail.hpp | 2 -- .../dispatchkit/register_function.hpp | 2 -- include/chaiscript/dispatchkit/type_info.hpp | 2 +- .../language/chaiscript_algebraic.hpp | 1 - .../chaiscript/language/chaiscript_common.hpp | 1 - .../chaiscript/language/chaiscript_eval.hpp | 26 +++++++++---------- samples/example.cpp | 3 +-- src/multithreaded.cpp | 2 +- 18 files changed, 27 insertions(+), 53 deletions(-) diff --git a/include/chaiscript/dispatchkit/bind_first.hpp b/include/chaiscript/dispatchkit/bind_first.hpp index 12c09a0..06a6411 100644 --- a/include/chaiscript/dispatchkit/bind_first.hpp +++ b/include/chaiscript/dispatchkit/bind_first.hpp @@ -13,8 +13,6 @@ #ifndef CHAISCRIPT_BIND_FIRST_HPP_ #define CHAISCRIPT_BIND_FIRST_HPP_ -#include -#include #include #define BOOST_PP_ITERATION_LIMITS ( 0, 8 ) @@ -42,7 +40,7 @@ namespace chaiscript std::function bind_first(Ret (Class::*f)(BOOST_PP_ENUM_PARAMS(n, Param)), const O &o) { - return boost::bind(boost::mem_fn(f), o BOOST_PP_COMMA_IF(n) BOOST_PP_ENUM(n, param, _)); + return std::bind(boost::mem_fn(f), o BOOST_PP_COMMA_IF(n) BOOST_PP_ENUM(n, param, std::placeholders::_)); } /// \brief Helper function for binding the first parameter of a const class method pointer. Used in chaiscript::fun overloads @@ -55,7 +53,7 @@ namespace chaiscript std::function bind_first(Ret (Class::*f)(BOOST_PP_ENUM_PARAMS(n, Param)) const, const O &o) { - return boost::bind(boost::mem_fn(f), o BOOST_PP_COMMA_IF(n) BOOST_PP_ENUM(n, param, _)); + return std::bind(boost::mem_fn(f), o BOOST_PP_COMMA_IF(n) BOOST_PP_ENUM(n, param, std::placeholders::_)); } /// \brief Helper function for binding the first parameter of a function pointer. Used in chaiscript::fun overloads @@ -68,7 +66,7 @@ namespace chaiscript std::function bind_first(Ret (*f)(BOOST_PP_ENUM_PARAMS(m, Param)), const O &o) { - return boost::bind(f, o BOOST_PP_COMMA_IF(n) BOOST_PP_ENUM(n, param, _)); + return std::bind(f, o BOOST_PP_COMMA_IF(n) BOOST_PP_ENUM(n, param, std::placeholders::_)); } /// \brief Helper function for binding the first parameter of a std::function object. Used in chaiscript::fun overloads @@ -81,7 +79,7 @@ namespace chaiscript std::function bind_first(const std::function &f, const O &o) { - return boost::bind(f, o BOOST_PP_COMMA_IF(n) BOOST_PP_ENUM(n, param, _)); + return std::bind(f, o BOOST_PP_COMMA_IF(n) BOOST_PP_ENUM(n, param, std::placeholders::_)); } } diff --git a/include/chaiscript/dispatchkit/bootstrap.hpp b/include/chaiscript/dispatchkit/bootstrap.hpp index 5aafd1b..43da17d 100644 --- a/include/chaiscript/dispatchkit/bootstrap.hpp +++ b/include/chaiscript/dispatchkit/bootstrap.hpp @@ -357,7 +357,7 @@ namespace chaiscript template static std::function (const dispatch::Proxy_Function_Base*)> return_boxed_value_vector(const Function &f) { - return boost::bind(&do_return_boxed_value_vector, f, _1); + return std::bind(&do_return_boxed_value_vector, f, std::placeholders::_1); } public: @@ -462,14 +462,14 @@ namespace chaiscript m->add(fun(&print), "print_string"); m->add(fun(&println), "println_string"); - m->add(Proxy_Function(new dispatch::Dynamic_Proxy_Function(boost::bind(&bind_function, _1))), + m->add(Proxy_Function(new dispatch::Dynamic_Proxy_Function(std::bind(&bind_function, std::placeholders::_1))), "bind"); m->add(fun(&shared_ptr_unconst_clone), "clone"); m->add(fun(&ptr_assign::type>), "="); m->add(fun(&ptr_assign::type>), "="); - m->add(Proxy_Function(new dispatch::Dynamic_Proxy_Function(boost::bind(&call_exists, _1))), + m->add(Proxy_Function(new dispatch::Dynamic_Proxy_Function(std::bind(&call_exists, std::placeholders::_1))), "call_exists"); m->add(fun(&type_match), "type_match"); diff --git a/include/chaiscript/dispatchkit/boxed_cast.hpp b/include/chaiscript/dispatchkit/boxed_cast.hpp index de4ccc3..be13422 100644 --- a/include/chaiscript/dispatchkit/boxed_cast.hpp +++ b/include/chaiscript/dispatchkit/boxed_cast.hpp @@ -4,8 +4,8 @@ // and Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com -#ifndef __boxed_cast_hpp__ -#define __boxed_cast_hpp__ +#ifndef CHAISCRIPT_BOXED_CAST_HPP_ +#define CHAISCRIPT_BOXED_CAST_HPP_ #include "type_info.hpp" #include "boxed_value.hpp" @@ -13,9 +13,7 @@ #include "dynamic_cast_conversion.hpp" #include "../chaiscript_threading.hpp" -#include #include -#include #include #include #include diff --git a/include/chaiscript/dispatchkit/boxed_cast_helper.hpp b/include/chaiscript/dispatchkit/boxed_cast_helper.hpp index 3a61862..2800c74 100644 --- a/include/chaiscript/dispatchkit/boxed_cast_helper.hpp +++ b/include/chaiscript/dispatchkit/boxed_cast_helper.hpp @@ -10,7 +10,6 @@ #include "type_info.hpp" #include "boxed_value.hpp" -#include #include #include #include diff --git a/include/chaiscript/dispatchkit/boxed_value.hpp b/include/chaiscript/dispatchkit/boxed_value.hpp index 087ecf5..6d9a8f0 100644 --- a/include/chaiscript/dispatchkit/boxed_value.hpp +++ b/include/chaiscript/dispatchkit/boxed_value.hpp @@ -12,11 +12,8 @@ #include "../chaiscript_threading.hpp" #include -#include #include -#include #include -#include #include #include #include diff --git a/include/chaiscript/dispatchkit/dispatchkit.hpp b/include/chaiscript/dispatchkit/dispatchkit.hpp index 0dd657a..b9afa54 100644 --- a/include/chaiscript/dispatchkit/dispatchkit.hpp +++ b/include/chaiscript/dispatchkit/dispatchkit.hpp @@ -11,7 +11,6 @@ #include #include #include -#include #include #include #include diff --git a/include/chaiscript/dispatchkit/function_call.hpp b/include/chaiscript/dispatchkit/function_call.hpp index ec62c4c..d98698a 100644 --- a/include/chaiscript/dispatchkit/function_call.hpp +++ b/include/chaiscript/dispatchkit/function_call.hpp @@ -7,9 +7,6 @@ #ifndef CHAISCRIPT_FUNCTION_CALL_HPP_ #define CHAISCRIPT_FUNCTION_CALL_HPP_ -#include -#include -#include #include #include #include "proxy_functions.hpp" diff --git a/include/chaiscript/dispatchkit/function_call_detail.hpp b/include/chaiscript/dispatchkit/function_call_detail.hpp index 23c4d20..c20049f 100644 --- a/include/chaiscript/dispatchkit/function_call_detail.hpp +++ b/include/chaiscript/dispatchkit/function_call_detail.hpp @@ -7,16 +7,13 @@ #include #define addparam(z,n,text) params.push_back((boost::is_reference::value&&!(boost::is_same::type>::type>::value))?Boxed_Value(boost::ref(BOOST_PP_CAT(p, n))):Boxed_Value(BOOST_PP_CAT(p, n) )); -#define curry(z,n,text) BOOST_PP_CAT(_, BOOST_PP_INC(n)) +#define curry(z,n,text) BOOST_PP_CAT(std::placeholders::_, BOOST_PP_INC(n)) #ifndef BOOST_PP_IS_ITERATING #ifndef CHAISCRIPT_FUNCTION_CALL_DETAIL_HPP_ #define CHAISCRIPT_FUNCTION_CALL_DETAIL_HPP_ -#include -#include -#include #include #include #include "proxy_functions.hpp" @@ -107,7 +104,7 @@ namespace chaiscript // we cannot make any other guesses or assumptions really, so continuing } - return boost::bind(&function_caller, funcs + return std::bind(&function_caller, funcs BOOST_PP_ENUM_TRAILING(n, curry, ~)); } } diff --git a/include/chaiscript/dispatchkit/proxy_constructors.hpp b/include/chaiscript/dispatchkit/proxy_constructors.hpp index 9fabd51..b555489 100644 --- a/include/chaiscript/dispatchkit/proxy_constructors.hpp +++ b/include/chaiscript/dispatchkit/proxy_constructors.hpp @@ -10,9 +10,6 @@ #ifndef CHAISCRIPT_PROXY_CONSTRUCTORS_HPP_ #define CHAISCRIPT_PROXY_CONSTRUCTORS_HPP_ -#include -#include -#include #define BOOST_PP_ITERATION_LIMITS ( 0, 10 ) diff --git a/include/chaiscript/dispatchkit/proxy_functions.hpp b/include/chaiscript/dispatchkit/proxy_functions.hpp index e6f0e1a..df15372 100644 --- a/include/chaiscript/dispatchkit/proxy_functions.hpp +++ b/include/chaiscript/dispatchkit/proxy_functions.hpp @@ -12,7 +12,6 @@ #include "boxed_value.hpp" #include "type_info.hpp" #include -#include #include #include #include diff --git a/include/chaiscript/dispatchkit/proxy_functions_detail.hpp b/include/chaiscript/dispatchkit/proxy_functions_detail.hpp index 235a935..ae697d2 100644 --- a/include/chaiscript/dispatchkit/proxy_functions_detail.hpp +++ b/include/chaiscript/dispatchkit/proxy_functions_detail.hpp @@ -19,8 +19,6 @@ #include "type_info.hpp" #include "handle_return.hpp" #include -#include -#include #include #include diff --git a/include/chaiscript/dispatchkit/register_function.hpp b/include/chaiscript/dispatchkit/register_function.hpp index 65a83ee..0c1f8e8 100644 --- a/include/chaiscript/dispatchkit/register_function.hpp +++ b/include/chaiscript/dispatchkit/register_function.hpp @@ -9,8 +9,6 @@ #include "dispatchkit.hpp" #include "bind_first.hpp" -#include -#include #include #include #include diff --git a/include/chaiscript/dispatchkit/type_info.hpp b/include/chaiscript/dispatchkit/type_info.hpp index d1f7be5..aed318c 100644 --- a/include/chaiscript/dispatchkit/type_info.hpp +++ b/include/chaiscript/dispatchkit/type_info.hpp @@ -9,7 +9,7 @@ #include #include -#include +#include #include #include #include diff --git a/include/chaiscript/language/chaiscript_algebraic.hpp b/include/chaiscript/language/chaiscript_algebraic.hpp index 37cc0ba..fe76359 100644 --- a/include/chaiscript/language/chaiscript_algebraic.hpp +++ b/include/chaiscript/language/chaiscript_algebraic.hpp @@ -8,7 +8,6 @@ #define CHAISCRIPT_ALGEBRAIC_HPP_ #include -#include namespace chaiscript { diff --git a/include/chaiscript/language/chaiscript_common.hpp b/include/chaiscript/language/chaiscript_common.hpp index 727c242..55d0203 100644 --- a/include/chaiscript/language/chaiscript_common.hpp +++ b/include/chaiscript/language/chaiscript_common.hpp @@ -8,7 +8,6 @@ #define CHAISCRIPT_COMMON_HPP_ #include -#include namespace chaiscript { diff --git a/include/chaiscript/language/chaiscript_eval.hpp b/include/chaiscript/language/chaiscript_eval.hpp index 7cef971..55ed373 100644 --- a/include/chaiscript/language/chaiscript_eval.hpp +++ b/include/chaiscript/language/chaiscript_eval.hpp @@ -556,7 +556,7 @@ namespace chaiscript } return Boxed_Value(Proxy_Function(new dispatch::Dynamic_Proxy_Function - (boost::bind(chaiscript::eval::detail::eval_function, boost::ref(t_ss), this->children.back(), t_param_names, _1), + (std::bind(chaiscript::eval::detail::eval_function, boost::ref(t_ss), this->children.back(), t_param_names, std::placeholders::_1), static_cast(numparams), this->children.back()))); } @@ -623,18 +623,18 @@ namespace chaiscript std::shared_ptr guard; if (guardnode) { guard = std::shared_ptr - (new dispatch::Dynamic_Proxy_Function(boost::bind(chaiscript::eval::detail::eval_function, + (new dispatch::Dynamic_Proxy_Function(std::bind(chaiscript::eval::detail::eval_function, boost::ref(t_ss), guardnode, - t_param_names, _1), static_cast(numparams), guardnode)); + t_param_names, std::placeholders::_1), static_cast(numparams), guardnode)); } try { const std::string & l_function_name = this->children[0]->text; const std::string & l_annotation = this->annotation?this->annotation->text:""; t_ss.add(Proxy_Function - (new dispatch::Dynamic_Proxy_Function(boost::bind(chaiscript::eval::detail::eval_function, + (new dispatch::Dynamic_Proxy_Function(std::bind(chaiscript::eval::detail::eval_function, boost::ref(t_ss), this->children.back(), - t_param_names, _1), static_cast(numparams), this->children.back(), + t_param_names, std::placeholders::_1), static_cast(numparams), this->children.back(), l_annotation, guard)), l_function_name); } catch (const exception::reserved_word_error &e) { @@ -1098,9 +1098,9 @@ namespace chaiscript std::shared_ptr guard; if (guardnode) { guard = std::shared_ptr - (new dispatch::Dynamic_Proxy_Function(boost::bind(chaiscript::eval::detail::eval_function, + (new dispatch::Dynamic_Proxy_Function(std::bind(chaiscript::eval::detail::eval_function, boost::ref(t_ss), guardnode, - t_param_names, _1), static_cast(numparams), guardnode)); + t_param_names, std::placeholders::_1), static_cast(numparams), guardnode)); } try { @@ -1110,9 +1110,9 @@ namespace chaiscript if (function_name == class_name) { t_ss.add(Proxy_Function (new dispatch::detail::Dynamic_Object_Constructor(class_name, Proxy_Function - (new dispatch::Dynamic_Proxy_Function(boost::bind(chaiscript::eval::detail::eval_function, + (new dispatch::Dynamic_Proxy_Function(std::bind(chaiscript::eval::detail::eval_function, boost::ref(t_ss), this->children.back(), - t_param_names, _1), static_cast(numparams), this->children.back(), + t_param_names, std::placeholders::_1), static_cast(numparams), this->children.back(), l_annotation, guard)))), function_name); } @@ -1125,9 +1125,9 @@ namespace chaiscript } t_ss.add(Proxy_Function (new dispatch::detail::Dynamic_Object_Function(class_name, Proxy_Function - (new dispatch::Dynamic_Proxy_Function(boost::bind(chaiscript::eval::detail::eval_function, + (new dispatch::Dynamic_Proxy_Function(std::bind(chaiscript::eval::detail::eval_function, boost::ref(t_ss), this->children.back(), - t_param_names, _1), static_cast(numparams), this->children.back(), + t_param_names, std::placeholders::_1), static_cast(numparams), this->children.back(), l_annotation, guard)), ti)), function_name); } @@ -1147,8 +1147,8 @@ namespace chaiscript virtual ~Attr_Decl_AST_Node() {} virtual Boxed_Value eval_internal(chaiscript::detail::Dispatch_Engine &t_ss){ try { - t_ss.add(fun(std::function(boost::bind(&dispatch::detail::Dynamic_Object_Attribute::func, this->children[0]->text, - this->children[1]->text, _1))), this->children[1]->text); + t_ss.add(fun(std::function(std::bind(&dispatch::detail::Dynamic_Object_Attribute::func, this->children[0]->text, + this->children[1]->text, std::placeholders::_1))), this->children[1]->text); } catch (const exception::reserved_word_error &) { diff --git a/samples/example.cpp b/samples/example.cpp index 2ea6e8b..33d0234 100644 --- a/samples/example.cpp +++ b/samples/example.cpp @@ -8,7 +8,6 @@ #include #include -#include #include #include @@ -165,7 +164,7 @@ int main(int /*argc*/, char * /*argv*/[]) { //Dynamic objects test chai.add(chaiscript::Proxy_Function(new dispatch::detail::Dynamic_Object_Function("TestType", fun(&hello_world))), "hello_world"); chai.add(chaiscript::Proxy_Function(new dispatch::detail::Dynamic_Object_Constructor("TestType", fun(&hello_constructor))), "TestType"); - chai.add(fun(std::function(boost::bind(&dispatch::detail::Dynamic_Object_Attribute::func, "TestType", "attr", _1))), "attr"); + chai.add(fun(std::function(std::bind(&dispatch::detail::Dynamic_Object_Attribute::func, "TestType", "attr", std::placeholders::_1))), "attr"); chai.eval("var x = TestType()"); // chai.eval("x.attr = \"hi\""); diff --git a/src/multithreaded.cpp b/src/multithreaded.cpp index 03e18b5..c1eddd4 100644 --- a/src/multithreaded.cpp +++ b/src/multithreaded.cpp @@ -29,7 +29,7 @@ int main(int argc, char *argv[]) { for (int i = 0; i < argc - 1; ++i) { - threads.push_back(std::shared_ptr(new boost::thread(boost::bind(do_work, boost::ref(chai))))); + threads.push_back(std::shared_ptr(new boost::thread(std::bind(do_work, boost::ref(chai))))); } for (int i = 0; i < argc - 1; ++i)