diff --git a/m4/ax_cxx_compile_stdcxx.m4 b/m4/ax_cxx_compile_stdcxx.m4 index b61fcb6314..d3288e2fb2 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 + 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 + void check(Arg&& arg, RT rt) { + static_assert(sizeof(rt) == sizeof(foo(std::forward(arg))), ""); + } + void test() { + message a; + check(a, char()); + check(std::move(a), int()); + } + } + } // namespace cxx11 #endif // __cplusplus >= 201103L