count.hpp
来自「Boost provides free peer-reviewed portab」· HPP 代码 · 共 67 行
HPP
67 行
// Copyright 2008 Daniel James.// Distributed under the Boost Software License, Version 1.0. (See accompanying// file LICENSE_1_0.txt or move at http://www.boost.org/LICENSE_1_0.txt)#if !defined(BOOST_UNORDERED_TEST_HELPERS_COUNT_HEAD)#define BOOST_UNORDERED_TEST_HELPERS_COUNT_HEADnamespace test { struct object_count { int instances; int constructions; object_count() : instances(0), constructions(0) {} void reset() { *this = object_count(); } void construct() { ++instances; ++constructions; } void destruct() { if(instances == 0) { BOOST_ERROR("Unbalanced constructions."); } else { --instances; } } bool operator==(object_count const& x) const { return instances == x.instances && constructions == x.constructions; } bool operator!=(object_count const& x) const { return !(*this == x); } }; template <class T> struct counted_object { static object_count count_; counted_object() { count_.construct(); } counted_object(counted_object const&) { count_.construct(); } ~counted_object() { count_.destruct(); } }; template <class T> object_count counted_object<T>::count_; struct globally_counted_object : counted_object<globally_counted_object> {}; // This won't be a problem as I'm only using a single compile unit // in each test (this is actually require by the minimal test // framework). // // boostinspect:nounnamed namespace { object_count& global_object_count = globally_counted_object::count_; }}#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?