From 4a4c67b6a2aa7d2c5051a53c25a96008956b587f Mon Sep 17 00:00:00 2001 From: Jisi Liu Date: Tue, 15 Aug 2017 11:44:16 -0700 Subject: Add std::forward and std::move autoconf check Protobuf now uses these two features, which are not available on some platforms. --- m4/ax_cxx_compile_stdcxx.m4 | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'm4') 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 + 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 -- cgit v1.2.3