@@ -10,36 +10,36 @@ int main(int argc, char **argv) {
1010 std::shared_ptr<int > ptrs[]{shared, shared, shared};
1111
1212 std::weak_ptr<int > observer = shared;
13- ASSERT (observer.use_count () == ? , " " );
13+ ASSERT (observer.use_count () == 4 , " " );
1414
1515 ptrs[0 ].reset ();
16- ASSERT (observer.use_count () == ? , " " );
16+ ASSERT (observer.use_count () == 3 , " " );
1717
1818 ptrs[1 ] = nullptr ;
19- ASSERT (observer.use_count () == ? , " " );
19+ ASSERT (observer.use_count () == 2 , " " );
2020
2121 ptrs[2 ] = std::make_shared<int >(*shared);
22- ASSERT (observer.use_count () == ? , " " );
22+ ASSERT (observer.use_count () == 1 , " " );
2323
2424 ptrs[0 ] = shared;
2525 ptrs[1 ] = shared;
2626 ptrs[2 ] = std::move (shared);
27- ASSERT (observer.use_count () == ? , " " );
27+ ASSERT (observer.use_count () == 3 , " " );
2828
2929 std::ignore = std::move (ptrs[0 ]);
3030 ptrs[1 ] = std::move (ptrs[1 ]);
3131 ptrs[1 ] = std::move (ptrs[2 ]);
32- ASSERT (observer.use_count () == ? , " " );
32+ ASSERT (observer.use_count () == 2 , " " );
3333
3434 shared = observer.lock ();
35- ASSERT (observer.use_count () == ? , " " );
35+ ASSERT (observer.use_count () == 3 , " " );
3636
3737 shared = nullptr ;
3838 for (auto &ptr : ptrs) ptr = nullptr ;
39- ASSERT (observer.use_count () == ? , " " );
39+ ASSERT (observer.use_count () == 0 , " " );
4040
4141 shared = observer.lock ();
42- ASSERT (observer.use_count () == ? , " " );
42+ ASSERT (observer.use_count () == 0 , " " );
4343
4444 return 0 ;
4545}
0 commit comments