aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--m4/ax_cxx_compile_stdcxx.m419
1 files changed, 19 insertions, 0 deletions
diff --git a/m4/ax_cxx_compile_stdcxx.m4 b/m4/ax_cxx_compile_stdcxx.m4
index b61fcb63..d3288e2f 100644
--- a/m4/ax_cxx_compile_stdcxx.m4
+++ b/m4/ax_cxx_compile_stdcxx.m4
@@ -180,6 +180,8 @@ m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_11], [[
#else
+#include <utility>
+
namespace cxx11
{
@@ -445,6 +447,23 @@ namespace cxx11
}
+ 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