From 367728cafe3caf11990c6614a615c08d5dbc07a8 Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Wed, 23 Apr 2003 22:14:40 +0000 Subject: [PATCH] Bound arguments are now no more const than the object itself. [SVN r18296] --- include/boost/bind.hpp | 50 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/include/boost/bind.hpp b/include/boost/bind.hpp index 3aeb5f8..6b57eca 100644 --- a/include/boost/bind.hpp +++ b/include/boost/bind.hpp @@ -141,6 +141,11 @@ public: template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } + template R operator()(type, F f, A &) + { + return unwrap(f, 0)(); + } + template R operator()(type, F f, A &) const { return unwrap(f, 0)(); @@ -181,6 +186,11 @@ public: template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } + template R operator()(type, F f, A & a) + { + return unwrap(f, 0)(a[a1_]); + } + template R operator()(type, F f, A & a) const { return unwrap(f, 0)(a[a1_]); @@ -229,6 +239,11 @@ public: template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } + template R operator()(type, F f, A & a) + { + return unwrap(f, 0)(a[a1_], a[a2_]); + } + template R operator()(type, F f, A & a) const { return unwrap(f, 0)(a[a1_], a[a2_]); @@ -281,6 +296,11 @@ public: template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } + template R operator()(type, F f, A & a) + { + return unwrap(f, 0)(a[a1_], a[a2_], a[a3_]); + } + template R operator()(type, F f, A & a) const { return unwrap(f, 0)(a[a1_], a[a2_], a[a3_]); @@ -337,6 +357,11 @@ public: template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } + template R operator()(type, F f, A & a) + { + return unwrap(f, 0)(a[a1_], a[a2_], a[a3_], a[a4_]); + } + template R operator()(type, F f, A & a) const { return unwrap(f, 0)(a[a1_], a[a2_], a[a3_], a[a4_]); @@ -397,6 +422,11 @@ public: template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } + template R operator()(type, F f, A & a) + { + return unwrap(f, 0)(a[a1_], a[a2_], a[a3_], a[a4_], a[a5_]); + } + template R operator()(type, F f, A & a) const { return unwrap(f, 0)(a[a1_], a[a2_], a[a3_], a[a4_], a[a5_]); @@ -461,6 +491,11 @@ public: template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } + template R operator()(type, F f, A & a) + { + return unwrap(f, 0)(a[a1_], a[a2_], a[a3_], a[a4_], a[a5_], a[a6_]); + } + template R operator()(type, F f, A & a) const { return unwrap(f, 0)(a[a1_], a[a2_], a[a3_], a[a4_], a[a5_], a[a6_]); @@ -529,6 +564,11 @@ public: template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } + template R operator()(type, F f, A & a) + { + return unwrap(f, 0)(a[a1_], a[a2_], a[a3_], a[a4_], a[a5_], a[a6_], a[a7_]); + } + template R operator()(type, F f, A & a) const { return unwrap(f, 0)(a[a1_], a[a2_], a[a3_], a[a4_], a[a5_], a[a6_], a[a7_]); @@ -601,6 +641,11 @@ public: template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } + template R operator()(type, F f, A & a) + { + return unwrap(f, 0)(a[a1_], a[a2_], a[a3_], a[a4_], a[a5_], a[a6_], a[a7_], a[a8_]); + } + template R operator()(type, F f, A & a) const { return unwrap(f, 0)(a[a1_], a[a2_], a[a3_], a[a4_], a[a5_], a[a6_], a[a7_], a[a8_]); @@ -677,6 +722,11 @@ public: template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } + template R operator()(type, F f, A & a) + { + return unwrap(f, 0)(a[a1_], a[a2_], a[a3_], a[a4_], a[a5_], a[a6_], a[a7_], a[a8_], a[a9_]); + } + template R operator()(type, F f, A & a) const { return unwrap(f, 0)(a[a1_], a[a2_], a[a3_], a[a4_], a[a5_], a[a6_], a[a7_], a[a8_], a[a9_]);