Toolbox snapshot
The Reactive C++ Toolbox
Loading...
Searching...
No Matches
RefCount.ut.cpp
Go to the documentation of this file.
1// The Reactive C++ Toolbox.
2// Copyright (C) 2013-2019 Swirly Cloud Limited
3// Copyright (C) 2021 Reactive Markets Limited
4//
5// Licensed under the Apache License, Version 2.0 (the "License");
6// you may not use this file except in compliance with the License.
7// You may obtain a copy of the License at
8//
9// http://www.apache.org/licenses/LICENSE-2.0
10//
11// Unless required by applicable law or agreed to in writing, software
12// distributed under the License is distributed on an "AS IS" BASIS,
13// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14// See the License for the specific language governing permissions and
15// limitations under the License.
16
17#include "RefCount.hpp"
18
19#include <boost/test/unit_test.hpp>
20
21using namespace std;
22using namespace toolbox;
23
24namespace {
25class Foo : public RefCount<Foo, ThreadUnsafePolicy> {
26 public:
27 explicit Foo(int& alive) noexcept
28 : alive_{alive}
29 {
30 ++alive;
31 }
32 ~Foo() { --alive_; }
33
34 private:
35 int& alive_;
36};
37} // namespace
38
40
42{
43 int alive{0};
44 {
47 BOOST_CHECK_EQUAL(ptr1->ref_count(), 1);
48 {
49 auto ptr2 = ptr1;
50 BOOST_CHECK_EQUAL(ptr1->ref_count(), 2);
51 }
52 BOOST_CHECK_EQUAL(ptr1->ref_count(), 1);
53 }
55}
56
BOOST_CHECK_EQUAL(v.size(), 10U)
BOOST_AUTO_TEST_CASE(RefCountCase)
Base class for atomic referenced counted objects.
Definition RefCount.hpp:61
STL namespace.
constexpr auto bind() noexcept
Definition Slot.hpp:92