diff --git a/src/Common/examples/cow_columns.cpp b/src/Common/examples/cow_columns.cpp index a0cfc1f12d1..de639b49b83 100644 --- a/src/Common/examples/cow_columns.cpp +++ b/src/Common/examples/cow_columns.cpp @@ -35,18 +35,12 @@ public: void set(int value) override { data = value; } }; -void print(const ColumnPtr & x, const ColumnPtr & y) +template +void print(const ColumnPtr & x, const ColPtr & y) { - std::cerr << "values: " << x->get() << ", " << y->get() << "\n"; - std::cerr << "refcounts: " << x->use_count() << ", " << y->use_count() << "\n"; - std::cerr << "addresses: " << x.get() << ", " << y.get() << "\n"; -} - -void print(const ColumnPtr & x, const MutableColumnPtr & mut) -{ - std::cerr << "values: " << x->get() << ", " << mut->get() << "\n"; - std::cerr << "refcounts: " << x->use_count() << ", " << mut->use_count() << "\n"; - std::cerr << "addresses: " << x.get() << ", " << mut.get() << "\n"; + std::cerr << "values: " << x->get() << ", " << y->get() << "\n"; + std::cerr << "refcounts: " << x->use_count() << ", " << y->use_count() << "\n"; + std::cerr << "addresses: " << x.get() << ", " << y.get() << "\n"; } int main(int, char **) @@ -54,8 +48,8 @@ int main(int, char **) ColumnPtr x = ConcreteColumn::create(1); ColumnPtr y = x; print(x, y); - chassert(x->get() == y->get() == 1); - chassert(x->use_count() == y->use_count() == 2); + chassert(x->get() == 1 && y->get() == 1); + chassert(x->use_count() == 2 && y->use_count() == 2); chassert(x.get() == y.get()); { @@ -63,20 +57,20 @@ int main(int, char **) mut->set(2); print(x, mut); chassert(x->get() == 1 && mut->get() == 2); - chassert(x->use_count() == mut->use_count() == 1); + chassert(x->use_count() == 1 && mut->use_count() == 1); chassert(x.get() != mut.get()); y = std::move(mut); } print(x, y); chassert(x->get() == 1 && y->get() == 2); - chassert(x->use_count() == y->use_count() == 1); + chassert(x->use_count() == 1 && y->use_count() == 1); chassert(x.get() != y.get()); x = ConcreteColumn::create(0); print(x, y); chassert(x->get() == 0 && y->get() == 2); - chassert(x->use_count() == y->use_count() == 1); + chassert(x->use_count() == 1 && y->use_count() == 1); chassert(x.get() != y.get()); { @@ -84,14 +78,14 @@ int main(int, char **) mut->set(3); print(x, mut); chassert(x->get() == 0 && mut->get() == 3); - chassert(x->use_count() == mut->use_count() == 1); + chassert(x->use_count() == 1 && mut->use_count() == 1); chassert(x.get() != mut.get()); y = std::move(mut); } print(x, y); chassert(x->get() == 0 && y->get() == 3); - chassert(x->use_count() == y->use_count() == 1); + chassert(x->use_count() == 1 && y->use_count() == 1); chassert(x.get() != y.get()); return 0; diff --git a/src/Common/examples/cow_compositions.cpp b/src/Common/examples/cow_compositions.cpp index 335ec1412e7..a45de10f437 100644 --- a/src/Common/examples/cow_compositions.cpp +++ b/src/Common/examples/cow_compositions.cpp @@ -62,18 +62,12 @@ public: void set(int value) override { wrapped->set(value); } }; -void print(const ColumnPtr & x, const ColumnPtr & y) +template +void print(const ColumnPtr & x, const ColPtr & y) { - std::cerr << "values: " << x->get() << ", " << y->get() << "\n"; - std::cerr << "refcounts: " << x->use_count() << ", " << y->use_count() << "\n"; - std::cerr << "addresses: " << x.get() << ", " << y.get() << "\n"; -} - -void print(const ColumnPtr & x, const MutableColumnPtr & mut) -{ - std::cerr << "values: " << x->get() << ", " << mut->get() << "\n"; - std::cerr << "refcounts: " << x->use_count() << ", " << mut->use_count() << "\n"; - std::cerr << "addresses: " << x.get() << ", " << mut.get() << "\n"; + std::cerr << "values: " << x->get() << ", " << y->get() << "\n"; + std::cerr << "refcounts: " << x->use_count() << ", " << y->use_count() << "\n"; + std::cerr << "addresses: " << x.get() << ", " << y.get() << "\n"; } int main(int, char **) @@ -81,8 +75,8 @@ int main(int, char **) ColumnPtr x = ColumnComposition::create(1); ColumnPtr y = x; print(x, y); - chassert(x->get() == y->get() == 1); - chassert(x->use_count() == y->use_count() == 2); + chassert(x->get() == 1 && y->get() == 1); + chassert(x->use_count() == 2 && y->use_count() == 2); chassert(x.get() == y.get()); { @@ -90,20 +84,20 @@ int main(int, char **) mut->set(2); print(x, mut); chassert(x->get() == 1 && mut->get() == 2); - chassert(x->use_count() == mut->use_count() == 1); + chassert(x->use_count() == 1 && mut->use_count() == 1); chassert(x.get() != mut.get()); y = std::move(mut); } print(x, y); chassert(x->get() == 1 && y->get() == 2); - chassert(x->use_count() == y->use_count() == 1); + chassert(x->use_count() == 1 && y->use_count() == 1); chassert(x.get() != y.get()); x = ColumnComposition::create(0); print(x, y); chassert(x->get() == 0 && y->get() == 2); - chassert(x->use_count() == y->use_count() == 1); + chassert(x->use_count() == 1 && y->use_count() == 1); chassert(x.get() != y.get()); { @@ -111,14 +105,14 @@ int main(int, char **) mut->set(3); print(x, mut); chassert(x->get() == 0 && mut->get() == 3); - chassert(x->use_count() == mut->use_count() == 1); + chassert(x->use_count() == 1 && mut->use_count() == 1); chassert(x.get() != mut.get()); y = std::move(mut); } print(x, y); chassert(x->get() == 0 && y->get() == 3); - chassert(x->use_count() == y->use_count() == 1); + chassert(x->use_count() == 1 && y->use_count() == 1); chassert(x.get() != y.get()); return 0;