remove \r
[extl.git] / extl / utility / unit_test / operator_bool_test.h
blob7a6d2ec3b7ce70d32070dd363be63b7c925f82a6
1 /* ///////////////////////////////////////////////////////////////////////
2 * File: operator_bool_test.h
4 * Created: 08.03.01
5 * Updated: 08.05.05
7 * Brief: Unit-testing
9 * [<Home>]
10 * Copyright (c) 2008-2020, Waruqi All rights reserved.
11 * //////////////////////////////////////////////////////////////////// */
12 #ifndef EXTL_UTILITY_OPERATOR_BOOL_TEST_H
13 #define EXTL_UTILITY_OPERATOR_BOOL_TEST_H
15 #ifndef EXTL_UTILITY_OPERATOR_BOOL_H
16 # error This file must be included of operator_bool.h
17 #endif
19 /* ///////////////////////////////////////////////////////////////////////
20 * ::extl::detail namespace
22 EXTL_TEST_BEGIN_NAMESPACE
24 /* ///////////////////////////////////////////////////////////////////////
25 * Unit-testing
27 struct operator_bool_test
29 struct test_ptr
31 EXTL_OPERATOR_BOOL_DEFINE_TYPE(test_ptr, safe_bool_t);
33 operator safe_bool_t() const
35 return EXTL_OPERATOR_BOOL_RETURN_RESULT(1);
38 e_bool_t operator! () const
40 return e_false_v;
44 struct non_ptr
46 operator e_bool_t() const
48 return e_true_v;
52 operator_bool_test()
54 test_ptr p;
55 EXTL_ASSERT(p);
56 EXTL_ASSERT(p && 1);
57 EXTL_ASSERT(p || 0);
58 EXTL_ASSERT(!!p);
60 #if !defined(EXTL_COMPILER_IS_MSVC) || _MSC_VER >1200
61 EXTL_ASSERT(!(p == NULL));
62 EXTL_ASSERT(p != NULL);
63 #endif
65 /* Prohibit the promotion of the integer type*/
66 /* int i = p + p; */
68 /* non_ptr np;
69 EXTL_ASSERT(np != p); */
73 #if !defined(EXTL_COMPILER_IS_BORLAND)
74 operator_bool_test g_operator_bool_test;
75 #endif
76 /* ///////////////////////////////////////////////////////////////////////
77 * ::extl::detail namespace
79 EXTL_TEST_END_NAMESPACE
81 /* //////////////////////////////////////////////////////////////////// */
82 #endif /* EXTL_UTILITY_OPERATOR_BOOL_TEST_H */
83 /* //////////////////////////////////////////////////////////////////// */