#include "Test.h" const int Test::COUNTDOWN[] = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; const int* Test::COUNTDOWN_PTR = Test::COUNTDOWN; unsigned VirtualDestructor::sDestructorCount = 0; VirtualDestructor::~VirtualDestructor() { sDestructorCount++; } unsigned InheritsFromVirtualDestructor::sDestructorCount = 0; InheritsFromVirtualDestructor::InheritsFromVirtualDestructor() = default; InheritsFromVirtualDestructor::~InheritsFromVirtualDestructor() { sDestructorCount++; } const int* Test::countdown() { return COUNTDOWN; } const char* Test::name() { return "Test"; } Test::Test(int foo) : m_int(foo) , m_double(0.0) {} Test::Test(double foo) : m_int(0) , m_double(foo) {} AutoRestoreBool::AutoRestoreBool(bool* ptr) : m_ptr(ptr) , m_value(*ptr) {} AutoRestoreBool::~AutoRestoreBool() { *m_ptr = m_value; } namespace bitfields { bool First::assert(unsigned char first, unsigned char second, unsigned char third) { return three_bits_byte_one == first && six_bits_byte_two == second && two_bits_byte_two == third; } bool Second::assert(int first, bool second) { return thirty_one_bits == first && one_bit == second; } bool Third::assert(int first, bool second, ItemKind third) { return flags == first && is_whatever == second && kind == third; } bool Fourth::assert(MyEnum tag, unsigned long ptr) { return this->tag == tag && this->ptr == ptr; } bool Date2::assert(unsigned short nWeekDay, unsigned short nMonthDay, unsigned short nMonth, unsigned short nYear, unsigned short byte) { return this->nWeekDay == nWeekDay && this->nMonthDay == nMonthDay && this->nMonth == nMonth && this->nYear == nYear && this->byte == byte; } bool Fifth::assert(unsigned short nWeekDay, unsigned short nMonthDay, unsigned short nMonth, unsigned short nYear, unsigned char byte) { return this->nWeekDay == nWeekDay && this->nMonthDay == nMonthDay && this->nMonth == nMonth && this->nYear == nYear && this->byte == byte; } bool Sixth::assert(unsigned char byte, unsigned char nWeekDay, unsigned char nMonth, unsigned char nMonthDay) { return this->nWeekDay == nWeekDay && this->nMonthDay == nMonthDay && this->nMonth == nMonth && this->byte == byte; }; bool Seventh::assert(bool first, int second, unsigned short third, unsigned int fourth, unsigned short fifth, bool sixth, int seventh) { return this->first_one_bit == first && this->second_thirty_bits == second && this->third_two_bits == third && this->fourth_thirty_bits == fourth && this->fifth_two_bits == fifth && this->sixth_one_bit == sixth && this->seventh_thirty_bits == seventh; }; } // namespace bitfields int my_prefixed_function_name() { return 4; } Coord coord(double x, double y, double z, double t) { Coord res; res.v[0] = x; res.v[1] = y; res.v[2] = z; res.v[3] = t; return res; }