Merge pull request #1075 from mhbliao/hliao/master/test_fix2

[test] Add device variant of `std::declval`.
Этот коммит содержится в:
Maneesh Gupta
2019-05-07 16:15:01 +05:30
коммит произвёл GitHub
родитель 7f759750d1 32f69c8bc4
Коммит 51e158c633
+8 -5
Просмотреть файл
@@ -37,9 +37,12 @@ THE SOFTWARE.
using namespace std;
template <class T> __device__
typename std::add_rvalue_reference<T>::type _declval() noexcept;
template<
typename V,
Enable_if_t<!is_integral<decltype(declval<V>().x)>{}>* = nullptr>
Enable_if_t<!is_integral<decltype(_declval<V>().x)>{}>* = nullptr>
__device__
constexpr
bool integer_unary_tests(const V&, const V&) {
@@ -48,7 +51,7 @@ bool integer_unary_tests(const V&, const V&) {
template<
typename V,
Enable_if_t<is_integral<decltype(declval<V>().x)>{}>* = nullptr>
Enable_if_t<is_integral<decltype(_declval<V>().x)>{}>* = nullptr>
__device__
bool integer_unary_tests(V& f1, V& f2) {
f1 %= f2;
@@ -73,7 +76,7 @@ bool integer_unary_tests(V& f1, V& f2) {
template<
typename V,
Enable_if_t<!is_integral<decltype(declval<V>().x)>{}>* = nullptr>
Enable_if_t<!is_integral<decltype(_declval<V>().x)>{}>* = nullptr>
__device__
constexpr
bool integer_binary_tests(const V&, const V&, const V&) {
@@ -82,7 +85,7 @@ bool integer_binary_tests(const V&, const V&, const V&) {
template<
typename V,
Enable_if_t<is_integral<decltype(declval<V>().x)>{}>* = nullptr>
Enable_if_t<is_integral<decltype(_declval<V>().x)>{}>* = nullptr>
__device__
bool integer_binary_tests(V& f1, V& f2, V& f3) {
f3 = f1 % f2;
@@ -201,4 +204,4 @@ int main() {
else {
failed("Failed some vector test.");
}
}
}