Commit 4a4c67b6 authored by Jisi Liu's avatar Jisi Liu

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

Protobuf now uses these two features, which are not available on some
platforms.
parent eaeca0d4
......@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment