Permalink
Browse files

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

Protobuf now uses these two features, which are not available on some
platforms.
  • Loading branch information...
liujisi committed Aug 15, 2017
1 parent eaeca0d commit 4a4c67b6a2aa7d2c5051a53c25a96008956b587f
Showing with 19 additions and 0 deletions.
  1. +19 −0 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

0 comments on commit 4a4c67b

Please sign in to comment.