@@ -25,7 +25,7 @@ TEMPLATE_TEST_CASE_METHOD(test_fixture, "shared_resource", "[container][resource
25
25
Counts expected{};
26
26
CHECK (this ->counts == expected);
27
27
{
28
- cudax::shared_resource<TestResource> mr{ 42 , this };
28
+ cudax::shared_resource mr{cuda::std::in_place_type <TestResource>, 42 , this };
29
29
++expected.object_count ;
30
30
CHECK (this ->counts == expected);
31
31
}
@@ -42,7 +42,7 @@ TEMPLATE_TEST_CASE_METHOD(test_fixture, "shared_resource", "[container][resource
42
42
Counts expected{};
43
43
CHECK (this ->counts == expected);
44
44
{
45
- cudax::shared_resource<TestResource> mr{ 42 , this };
45
+ cudax::shared_resource mr{cuda::std::in_place_type <TestResource>, 42 , this };
46
46
++expected.object_count ;
47
47
CHECK (this ->counts == expected);
48
48
@@ -51,15 +51,20 @@ TEMPLATE_TEST_CASE_METHOD(test_fixture, "shared_resource", "[container][resource
51
51
CHECK (mr == mr2); // pointers compare equal, no call to TestResource::operator==
52
52
CHECK (this ->counts == expected);
53
53
54
- auto mr3 = std::move (mr) ;
54
+ cudax::shared_resource mr3{mr} ;
55
55
CHECK (this ->counts == expected);
56
- CHECK (mr2 == mr3); // pointers compare equal, no call to TestResource::operator==
56
+ CHECK (mr == mr3); // pointers compare equal, no call to TestResource::operator==
57
57
CHECK (this ->counts == expected);
58
58
59
- cudax::shared_resource<TestResource> mr4{TestResource{42 , this }};
59
+ auto mr4 = std::move (mr);
60
+ CHECK (this ->counts == expected);
61
+ CHECK (mr2 == mr4); // pointers compare equal, no call to TestResource::operator==
62
+ CHECK (this ->counts == expected);
63
+
64
+ cudax::shared_resource mr5{cuda::std::in_place_type<TestResource>, TestResource{42 , this }};
60
65
++expected.object_count ;
61
66
++expected.move_count ;
62
- CHECK (mr3 == mr4 ); // pointers are not equal, calls TestResource::operator==
67
+ CHECK (mr4 == mr5 ); // pointers are not equal, calls TestResource::operator==
63
68
++expected.equal_to_count ;
64
69
CHECK (this ->counts == expected);
65
70
}
@@ -76,7 +81,7 @@ TEMPLATE_TEST_CASE_METHOD(test_fixture, "shared_resource", "[container][resource
76
81
Counts expected{};
77
82
CHECK (this ->counts == expected);
78
83
{
79
- cudax::shared_resource<TestResource> mr{ 42 , this };
84
+ cudax::shared_resource mr{cuda::std::in_place_type <TestResource>, 42 , this };
80
85
++expected.object_count ;
81
86
CHECK (this ->counts == expected);
82
87
@@ -101,7 +106,7 @@ TEMPLATE_TEST_CASE_METHOD(test_fixture, "shared_resource", "[container][resource
101
106
{
102
107
Counts expected{};
103
108
{
104
- cudax::shared_resource<TestResource> mr{ 42 , this };
109
+ cudax::shared_resource mr{cuda::std::in_place_type <TestResource>, 42 , this };
105
110
++expected.object_count ;
106
111
CHECK (this ->counts == expected);
107
112
@@ -130,7 +135,7 @@ TEMPLATE_TEST_CASE_METHOD(test_fixture, "shared_resource", "[container][resource
130
135
{
131
136
bytes (42 * sizeof (int ));
132
137
cudax::uninitialized_buffer<int , cudax::host_accessible> buffer{
133
- cudax::shared_resource<TestResource>(42 , this ), 42 };
138
+ cudax::shared_resource<TestResource>(cuda::std::in_place_type<TestResource>, 42 , this ), 42 };
134
139
++expected.object_count ;
135
140
++expected.allocate_count ;
136
141
CHECK (this ->counts == expected);
0 commit comments