2
0
mirror of https://github.com/boostorg/python.git synced 2026-01-19 04:22:16 +00:00
Files
python/test/test_class.hpp
Nikita Kniazev fdc9ec760f Fixed module tests fail
Since recently lightweight_test introduced a sanitation to ensure that
`boost::report_errors()` is called, and it does not in module tests.

The problem could be fixed by exporting the function and calling it from
these python tests, but as it already done in other module tests I just
turned those usages lightweight_test to a regular assertation.
2019-03-31 20:36:56 -04:00

33 lines
1013 B
C++

// Copyright David Abrahams 2002.
// Distributed under the Boost Software License, Version 1.0. (See
// accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
#ifndef TEST_CLASS_DWA2002326_HPP
# define TEST_CLASS_DWA2002326_HPP
# include <boost/assert.hpp>
template <int n = 0>
struct test_class
{
explicit test_class(int x) : x(x), magic(7654321 + n) { ++counter; }
test_class(test_class const& rhs) : x(rhs.x), magic(7654321 + n) { ++counter; }
virtual ~test_class() { BOOST_ASSERT(magic == 7654321 + n); magic = 6666666; x = 9999; --counter; }
void set(int _x) { BOOST_ASSERT(magic == 7654321 + n); this->x = _x; }
int value() const { BOOST_ASSERT(magic == 7654321 + n); return x; }
operator int() const { return x; }
static int count() { return counter; }
int x;
long magic;
static int counter;
private:
void operator=(test_class const&);
};
template <int n>
int test_class<n>::counter;
#endif // TEST_CLASS_DWA2002326_HPP