diff --git a/bind.html b/bind.html
index d06d707..d08cdd2 100644
--- a/bind.html
+++ b/bind.html
@@ -272,7 +272,7 @@ bind(&X::f, p, _1)(i); // (internal copy of p)->f(i)
This feature of bind can be used to perform function composition. See
bind_as_compose.cpp for an example that demonstrates how to use bind
- to achieve similar functionality to Boost.Compose.
+ to achieve similar functionality to Boost.Compose.
Note that the first argument - the bound function object - is not evaluated,
even when it's a function object that is produced by bind or a
diff --git a/include/boost/bind/arg.hpp b/include/boost/bind/arg.hpp
index 0d5cd03..c879bb4 100644
--- a/include/boost/bind/arg.hpp
+++ b/include/boost/bind/arg.hpp
@@ -21,6 +21,7 @@
#include
#include
+#include
namespace boost
{
@@ -33,8 +34,7 @@ template< int I > struct arg
template< class T > arg( T const & /* t */ )
{
- // static assert I == is_placeholder::value
- typedef char T_must_be_placeholder[ I == is_placeholder::value? 1: -1 ];
+ BOOST_STATIC_ASSERT( I == is_placeholder::value );
}
};
diff --git a/mem_fn.html b/mem_fn.html
index b54f906..0e9eb12 100644
--- a/mem_fn.html
+++ b/mem_fn.html
@@ -145,7 +145,7 @@ void k(std::vector<boost::shared_ptr<X> > const & v)
Yes. For simple uses, mem_fn provides additional functionality that the
standard adaptors do not. Complicated expressions that use std::bind1st, std::bind2nd
- or Boost.Compose along with the
+ or Boost.Compose along with the
standard adaptors can be rewritten using boost::bind
that automatically takes advantage of mem_fn.
diff --git a/test/mem_fn_eq_test.cpp b/test/mem_fn_eq_test.cpp
index 17f41f2..544d6ff 100644
--- a/test/mem_fn_eq_test.cpp
+++ b/test/mem_fn_eq_test.cpp
@@ -39,128 +39,128 @@ struct X
// 0
int mf0_1() { return 0; }
- int mf0_2() { return 0; }
+ int mf0_2() { return 1; }
int cmf0_1() const { return 0; }
- int cmf0_2() const { return 0; }
+ int cmf0_2() const { return 1; }
void mf0v_1() {}
- void mf0v_2() {}
+ void mf0v_2() { static int x; ++x; }
void cmf0v_1() const {}
- void cmf0v_2() const {}
+ void cmf0v_2() const { static int x; ++x; }
// 1
int mf1_1(int) { return 0; }
- int mf1_2(int) { return 0; }
+ int mf1_2(int) { return 1; }
int cmf1_1(int) const { return 0; }
- int cmf1_2(int) const { return 0; }
+ int cmf1_2(int) const { return 1; }
void mf1v_1(int) {}
- void mf1v_2(int) {}
+ void mf1v_2(int) { static int x; ++x; }
void cmf1v_1(int) const {}
- void cmf1v_2(int) const {}
+ void cmf1v_2(int) const { static int x; ++x; }
// 2
int mf2_1(int, int) { return 0; }
- int mf2_2(int, int) { return 0; }
+ int mf2_2(int, int) { return 1; }
int cmf2_1(int, int) const { return 0; }
- int cmf2_2(int, int) const { return 0; }
+ int cmf2_2(int, int) const { return 1; }
void mf2v_1(int, int) {}
- void mf2v_2(int, int) {}
+ void mf2v_2(int, int) { static int x; ++x; }
void cmf2v_1(int, int) const {}
- void cmf2v_2(int, int) const {}
+ void cmf2v_2(int, int) const { static int x; ++x; }
// 3
int mf3_1(int, int, int) { return 0; }
- int mf3_2(int, int, int) { return 0; }
+ int mf3_2(int, int, int) { return 1; }
int cmf3_1(int, int, int) const { return 0; }
- int cmf3_2(int, int, int) const { return 0; }
+ int cmf3_2(int, int, int) const { return 1; }
void mf3v_1(int, int, int) {}
- void mf3v_2(int, int, int) {}
+ void mf3v_2(int, int, int) { static int x; ++x; }
void cmf3v_1(int, int, int) const {}
- void cmf3v_2(int, int, int) const {}
+ void cmf3v_2(int, int, int) const { static int x; ++x; }
// 4
int mf4_1(int, int, int, int) { return 0; }
- int mf4_2(int, int, int, int) { return 0; }
+ int mf4_2(int, int, int, int) { return 1; }
int cmf4_1(int, int, int, int) const { return 0; }
- int cmf4_2(int, int, int, int) const { return 0; }
+ int cmf4_2(int, int, int, int) const { return 1; }
void mf4v_1(int, int, int, int) {}
- void mf4v_2(int, int, int, int) {}
+ void mf4v_2(int, int, int, int) { static int x; ++x; }
void cmf4v_1(int, int, int, int) const {}
- void cmf4v_2(int, int, int, int) const {}
+ void cmf4v_2(int, int, int, int) const { static int x; ++x; }
// 5
int mf5_1(int, int, int, int, int) { return 0; }
- int mf5_2(int, int, int, int, int) { return 0; }
+ int mf5_2(int, int, int, int, int) { return 1; }
int cmf5_1(int, int, int, int, int) const { return 0; }
- int cmf5_2(int, int, int, int, int) const { return 0; }
+ int cmf5_2(int, int, int, int, int) const { return 1; }
void mf5v_1(int, int, int, int, int) {}
- void mf5v_2(int, int, int, int, int) {}
+ void mf5v_2(int, int, int, int, int) { static int x; ++x; }
void cmf5v_1(int, int, int, int, int) const {}
- void cmf5v_2(int, int, int, int, int) const {}
+ void cmf5v_2(int, int, int, int, int) const { static int x; ++x; }
// 6
int mf6_1(int, int, int, int, int, int) { return 0; }
- int mf6_2(int, int, int, int, int, int) { return 0; }
+ int mf6_2(int, int, int, int, int, int) { return 1; }
int cmf6_1(int, int, int, int, int, int) const { return 0; }
- int cmf6_2(int, int, int, int, int, int) const { return 0; }
+ int cmf6_2(int, int, int, int, int, int) const { return 1; }
void mf6v_1(int, int, int, int, int, int) {}
- void mf6v_2(int, int, int, int, int, int) {}
+ void mf6v_2(int, int, int, int, int, int) { static int x; ++x; }
void cmf6v_1(int, int, int, int, int, int) const {}
- void cmf6v_2(int, int, int, int, int, int) const {}
+ void cmf6v_2(int, int, int, int, int, int) const { static int x; ++x; }
// 7
int mf7_1(int, int, int, int, int, int, int) { return 0; }
- int mf7_2(int, int, int, int, int, int, int) { return 0; }
+ int mf7_2(int, int, int, int, int, int, int) { return 1; }
int cmf7_1(int, int, int, int, int, int, int) const { return 0; }
- int cmf7_2(int, int, int, int, int, int, int) const { return 0; }
+ int cmf7_2(int, int, int, int, int, int, int) const { return 1; }
void mf7v_1(int, int, int, int, int, int, int) {}
- void mf7v_2(int, int, int, int, int, int, int) {}
+ void mf7v_2(int, int, int, int, int, int, int) { static int x; ++x; }
void cmf7v_1(int, int, int, int, int, int, int) const {}
- void cmf7v_2(int, int, int, int, int, int, int) const {}
+ void cmf7v_2(int, int, int, int, int, int, int) const { static int x; ++x; }
// 8
int mf8_1(int, int, int, int, int, int, int, int) { return 0; }
- int mf8_2(int, int, int, int, int, int, int, int) { return 0; }
+ int mf8_2(int, int, int, int, int, int, int, int) { return 1; }
int cmf8_1(int, int, int, int, int, int, int, int) const { return 0; }
- int cmf8_2(int, int, int, int, int, int, int, int) const { return 0; }
+ int cmf8_2(int, int, int, int, int, int, int, int) const { return 1; }
void mf8v_1(int, int, int, int, int, int, int, int) {}
- void mf8v_2(int, int, int, int, int, int, int, int) {}
+ void mf8v_2(int, int, int, int, int, int, int, int) { static int x; ++x; }
void cmf8v_1(int, int, int, int, int, int, int, int) const {}
- void cmf8v_2(int, int, int, int, int, int, int, int) const {}
+ void cmf8v_2(int, int, int, int, int, int, int, int) const { static int x; ++x; }
};