Merge pull request #3495 from pherl/c++11

Add std::forward and std::move autoconf check
diff --git a/m4/ax_cxx_compile_stdcxx.m4 b/m4/ax_cxx_compile_stdcxx.m4
index b61fcb6..d3288e2 100644
--- a/m4/ax_cxx_compile_stdcxx.m4
+++ b/m4/ax_cxx_compile_stdcxx.m4
@@ -180,6 +180,8 @@
 
 #else
 
+#include <utility>
+
 namespace cxx11
 {
 
@@ -445,6 +447,23 @@
 
   }
 
+  namespace test_std_move_and_forward
+  {
+    struct message {};
+    char foo(message&) { return '\0'; }
+    int foo(message&&) { return 0; }
+
+    template<typename Arg, typename RT>
+    void check(Arg&& arg, RT rt) {
+      static_assert(sizeof(rt) == sizeof(foo(std::forward<Arg>(arg))), "");
+    }
+    void test() {
+      message a;
+      check(a, char());
+      check(std::move(a), int());
+    }
+  }
+
 }  // namespace cxx11
 
 #endif  // __cplusplus >= 201103L