Forward compatibility: flex
[foam-extend-3.2.git] / src / foam / global / controlSwitches / safeBoolI.H
blob717c9a308a225f8f168a9a016601d210de31fdb5
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     | Version:     3.2
5     \\  /    A nd           | Web:         http://www.foam-extend.org
6      \\/     M anipulation  | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
8 License
9     This file is part of foam-extend.
11     foam-extend is free software: you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation, either version 3 of the License, or (at your
14     option) any later version.
16     foam-extend is distributed in the hope that it will be useful, but
17     WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19     General Public License for more details.
21     You should have received a copy of the GNU General Public License
22     along with foam-extend.  If not, see <http://www.gnu.org/licenses/>.
24 \*---------------------------------------------------------------------------*/
26 // * * * * * * * * * * * * * * * Member Operators  * * * * * * * * * * * * * //
28 template <typename T>
29 inline bool operator==(const Foam::safeBool<T>& lhs, bool b)
31     if (b)
32     {
33         if (lhs)
34         {
35             return true;
36         }
37         else
38         {
39             return false;
40         }
41     }
42     else
43     {
44         if (lhs)
45         {
46             return false;
47         }
48         else
49         {
50             return true;
51         }
52     }
55 template <typename T>
56 inline bool operator==(bool b, const Foam::safeBool<T>& rhs)
58     if (b)
59     {
60         if (rhs)
61         {
62             return true;
63         }
64         else
65         {
66             return false;
67         }
68     }
69     else
70     {
71         if (rhs)
72         {
73             return false;
74         }
75         else
76         {
77             return true;
78         }
79     }
83 template <typename T, typename U>
84 inline bool operator==
86     const Foam::safeBool<T>& lhs,
87     const Foam::safeBool<U>& rhs
90     lhs.this_type_does_not_support_comparisons();
91     return false;
94 template <typename T,typename U>
95 inline  bool operator!=
97     const Foam::safeBool<T>& lhs,
98     const Foam::safeBool<U>& rhs
101     lhs.this_type_does_not_support_comparisons();
102     return false;
106 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
109 // ************************************************************************* //