mirror of
https://github.com/llvm-mirror/libcxx.git
synced 2025-10-24 12:02:36 +08:00
Implement P0030R1: Introduce a 3-Argument Overload to std::hypot
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@269772 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -79,6 +79,7 @@ Ambiguous fma(Ambiguous, Ambiguous, Ambiguous){ return Ambiguous(); }
|
||||
Ambiguous fmax(Ambiguous, Ambiguous){ return Ambiguous(); }
|
||||
Ambiguous fmin(Ambiguous, Ambiguous){ return Ambiguous(); }
|
||||
Ambiguous hypot(Ambiguous, Ambiguous){ return Ambiguous(); }
|
||||
Ambiguous hypot(Ambiguous, Ambiguous, Ambiguous){ return Ambiguous(); }
|
||||
Ambiguous ilogb(Ambiguous){ return Ambiguous(); }
|
||||
Ambiguous lgamma(Ambiguous){ return Ambiguous(); }
|
||||
Ambiguous llrint(Ambiguous){ return Ambiguous(); }
|
||||
@@ -1010,6 +1011,28 @@ void test_hypot()
|
||||
static_assert((std::is_same<decltype(std::hypot((int)0, (int)0)), double>::value), "");
|
||||
static_assert((std::is_same<decltype(hypot(Ambiguous(), Ambiguous())), Ambiguous>::value), "");
|
||||
assert(std::hypot(3,4) == 5);
|
||||
|
||||
#if TEST_STD_VER > 14
|
||||
static_assert((std::is_same<decltype(std::hypot((float)0, (float)0, (float)0)), float>::value), "");
|
||||
static_assert((std::is_same<decltype(std::hypot((float)0, (bool)0, (float)0)), double>::value), "");
|
||||
static_assert((std::is_same<decltype(std::hypot((float)0, (unsigned short)0, (double)0)), double>::value), "");
|
||||
static_assert((std::is_same<decltype(std::hypot((float)0, (int)0, (long double)0)), long double>::value), "");
|
||||
static_assert((std::is_same<decltype(std::hypot((float)0, (unsigned int)0)), double>::value), "");
|
||||
static_assert((std::is_same<decltype(std::hypot((float)0, (double)0, (long)0)), double>::value), "");
|
||||
static_assert((std::is_same<decltype(std::hypot((float)0, (long double)0, (unsigned long)0)), long double>::value), "");
|
||||
static_assert((std::is_same<decltype(std::hypot((float)0, (int)0, (long long)0)), double>::value), "");
|
||||
static_assert((std::is_same<decltype(std::hypot((float)0, (int)0, (unsigned long long)0)), double>::value), "");
|
||||
static_assert((std::is_same<decltype(std::hypot((float)0, (double)0, (double)0)), double>::value), "");
|
||||
static_assert((std::is_same<decltype(std::hypot((float)0, (long double)0, (long double)0)), long double>::value), "");
|
||||
static_assert((std::is_same<decltype(std::hypot((float)0, (float)0, (double)0)), double>::value), "");
|
||||
static_assert((std::is_same<decltype(std::hypot((float)0, (float)0, (long double)0)), long double>::value), "");
|
||||
static_assert((std::is_same<decltype(std::hypot((float)0, (double)0, (long double)0)), long double>::value), "");
|
||||
static_assert((std::is_same<decltype(std::hypot((int)0, (int)0, (int)0)), double>::value), "");
|
||||
static_assert((std::is_same<decltype(hypot(Ambiguous(), Ambiguous(), Ambiguous())), Ambiguous>::value), "");
|
||||
|
||||
assert(std::hypot(2,3,6) == 7);
|
||||
assert(std::hypot(1,4,8) == 9);
|
||||
#endif
|
||||
}
|
||||
|
||||
void test_ilogb()
|
||||
|
||||
Reference in New Issue
Block a user