Add std::forward and std::move autoconf check

Protobuf now uses these two features, which are not available on some
platforms.
pull/3495/head
Jisi Liu 7 years ago
parent eaeca0d42b
commit 4a4c67b6a2
  1. 19
      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

Loading…
Cancel
Save