| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | |
| | |
| | |
| |
|
| | #pragma once |
| |
|
| | namespace thrust |
| | { |
| |
|
| | |
| | |
| | |
| |
|
| | |
| | |
| | |
| | template <typename... Z> |
| | struct test_predefined_friend_struct {}; |
| |
|
| | |
| | |
| | |
| | template <typename Z> |
| | void test_predefined_friend_function(); |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | template <typename T, typename U> |
| | class test_class |
| | { |
| | public: |
| | template <typename Z> |
| | struct test_nested_struct {}; |
| |
|
| | int test_member_variable = 0; |
| |
|
| | [[deprecated]] static constexpr int test_member_constant = 42; |
| |
|
| | template <typename X, typename Y> |
| | using test_type_alias = test_class<X, Y>; |
| |
|
| | enum class test_enum_class { |
| | A = 15, |
| | B, |
| | C |
| | }; |
| |
|
| | |
| | |
| | test_class() = default; |
| |
|
| | |
| | |
| | __host__ __device__ constexpr |
| | test_class(int); |
| |
|
| | |
| | |
| | |
| | __host__ __device__ constexpr |
| | int test_member_function() = 0; |
| |
|
| | |
| | |
| | |
| | __host__ __device__ |
| | virtual int test_virtual_member_function() = 0; |
| |
|
| | |
| | |
| | |
| | |
| | template <typename A = test_predefined_friend_struct<int, int, int, int, int, int, int, int, int, int, int, int>, |
| | typename B = test_predefined_friend_struct<int, int, int, int, int, int, int, int, int, int, int, int>, |
| | typename C = test_predefined_friend_struct<int, int, int, int, int, int, int, int, int, int, int, int>> |
| | test_predefined_friend_struct<int, int, int, int, int, int, int, int, int, int, int, int, int, int, int> |
| | test_parameter_overflow_member_function(test_predefined_friend_struct<int, int, int, int, int, int, int, int, int, int, int, int, int, int, int> a, |
| | test_predefined_friend_struct<int, int, int, int, int, int, int, int, int, int, int, int, int, int, int> b, |
| | test_predefined_friend_struct<int, int, int, int, int, int, int, int, int, int, int, int, int, int, int> c); |
| |
|
| | template <typename Z> |
| | friend void test_friend_function() {} |
| |
|
| | template <typename Z> |
| | friend void test_predefined_friend_function(); |
| |
|
| | template <typename... Z> |
| | friend struct thrust::test_predefined_friend_struct; |
| |
|
| | protected: |
| |
|
| | template <typename Z> |
| | class test_protected_nested_class {}; |
| |
|
| | |
| | |
| | |
| | __device__ |
| | auto test_protected_member_function(); |
| | }; |
| |
|
| | |
| | |
| | |
| | class test_derived_class : test_class<int, double> |
| | { |
| | template <typename Z> |
| | struct test_derived_nested_struct {}; |
| |
|
| | double test_derived_member_variable = 3.14; |
| |
|
| | typedef double test_typedef; |
| |
|
| | |
| | |
| | |
| | __host__ __device__ constexpr |
| | double test_derived_member_function(int, int); |
| | }; |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | template <typename T> |
| | void test_function(T const& a, test_class<T, T const>&& b); |
| |
|
| | |
| | |
| | |
| | |
| | template <typename T = test_predefined_friend_struct<int, int, int, int, int, int, int, int, int, int, int, int>, |
| | typename U = test_predefined_friend_struct<int, int, int, int, int, int, int, int, int, int, int, int>, |
| | typename V = test_predefined_friend_struct<int, int, int, int, int, int, int, int, int, int, int, int> |
| | > |
| | test_predefined_friend_struct<int, int, int, int, int, int, int, int, int, int, int, int, int, int, int> |
| | test_parameter_overflow_function(test_predefined_friend_struct<int, int, int, int, int, int, int, int, int, int, int, int> t, |
| | test_predefined_friend_struct<int, int, int, int, int, int, int, int, int, int, int, int> u, |
| | test_predefined_friend_struct<int, int, int, int, int, int, int, int, int, int, int, int> v); |
| |
|
| | |
| | |
| | |
| | enum class test_enum { |
| | X = 1, |
| | Y = X, |
| | Z = 2 |
| | }; |
| |
|
| | |
| | |
| | |
| | using test_alias = test_class<int, double>; |
| |
|
| | |
| | |
| | |
| | namespace test_namespace { |
| |
|
| | inline constexpr int test_constant = 12; |
| |
|
| | |
| | |
| | |
| | template <typename T, typename U> |
| | auto test_nested_function(T t, U u) noexcept(noexcept(t + u)) -> decltype(t + u) |
| | { return t + u; } |
| |
|
| | |
| | |
| | |
| | template <typename Z> |
| | struct test_struct |
| | { |
| | test_struct& operator=(test_struct const&) = default; |
| |
|
| | |
| | |
| | |
| | bool operator<(test_struct const& t); |
| | }; |
| |
|
| | } |
| |
|
| | |
| | |
| | |
| | #define THRUST_TEST_MACRO(x, y) thrust::test_namespace::nested_function(x, y) |
| |
|
| | |
| | |
| |
|
| | } |
| |
|
| |
|